如何使标准模式和怪异模式一样有效?

2023-12-02

以下 Html 在 FireFox 或 IE7/8 中非常适合我(带或不带样式标签)

<!-- Deliberately no DocType to induce Quirks Mode -->
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <style type="text/css">
        Input.quirks
        {
            margin: 1px 0px 1px 0px;
            border: solid black 1px;
        }
    </style>
</head>
<body>
Should work in Quirks Mode <br />
    <input class="quirks" type="text" style="width: 300px;" /><br />
    <input class="quirks" type="text" style="width: 147px;" /><img src="./Graphics/SpacerPixel.gif" border="0" /><input class="quirks" type="text" maxlength="25" style="width: 150px;" /><br />
    <input class="quirks" type="text" style="width: 94px;" /><img src="./Graphics/SpacerPixel.gif" border="0" /><input class="quirks" type="text" style="width: 100px;" /><img src="./Graphics/SpacerPixel.gif" border="0" /><input class="quirks" type="text" value="DA8 1DE" style="width: 100px;" />
</body>
</html>

然而我被告知,所述 HTML 顶部缺少 DocType 导致两个浏览器都在“Quirks”模式下工作。

有人告诉我这很糟糕。

我已经尝试了几种 DocType,但还没有找到可以在两种浏览器中产生正确渲染的 DocType/HTML 组合。

除了“Quirks”模式之外的任何模式都会导致浏览器对设置文本框宽度的尝试做出不同的反应。这似乎导致我可以纠正 FF 或 IE 的指令,但另一个会突然失败。

一些细节...

1.> 这里的目标是,在每个浏览器中呈现时,3 行的宽度应该完全相同。渲染的宽度在各个浏览器中都相同并不重要,只需它们在每个浏览器中正确地对齐/对齐即可。

2.> 引用的图像是 3 像素宽、1 像素高的间隔图像(替代方案也不错)

3.> 如果可能的话,我不想引入表格。

似乎 Quirks 模式是唯一在浏览器中保持一致的模式。然而,我担心 IE8 的最终版本或实际上在未来的某些浏览器中,怪异模式将不会成为默认模式。

我应该怎么办 ?如何指定 DocType(也许还可以更改我的 html)以在浏览器之间创建一致的外观?


“怪癖”和“标准合规性”模式之间的主要区别是不同的“盒子模型”,这导致基于宽度/高度、填充、边距和边框设置计算尺寸的不同方式。在标准合规模式下,盒子的有效宽度和高度是通过添加所有这些参数来计算的(请搜索网络以获取更多详细信息)。

因此,由于您指定了 1px 边框,因此您的第一个输入字段将为 302px 宽(左右边框为 300px + 2*1px)。您提到的FF和IE不一致可能是由于“padding”设置的“默认值”不同造成的。我刚刚使用 DOCTYPE 测试了您的代码,并且输入字段没有填充 - 两种浏览器都以相同的方式呈现它。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

现在,对于间隔图像:不要使用它们。你不需要它们。只需在间隙的输入字段中使用“3px”的右边距即可。

input.quirks {
    margin: 1px 3px 1px 0px;  /* 3px right margin */
    border: solid black 1px;
    padding: 0px;             /* so that IE and FF use the same padding */
}

然后进行数学计算以确定正确的“宽度”设置,以便每行中所有宽度(包括填充、边框和边距!)的总和相等,例如:

300px + 5px = 305px
145px + 150px + 2*5px = 305px
90px + 100px + 100px + 3*5px = 305px

请注意,“5px”由 3px 右边距和 2 倍边框 (1px) 组成。

就这样吧。如果您想使用不同的填充以获得更好的外观和感觉,只需将其包含在您的计算中即可!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使标准模式和怪异模式一样有效? 的相关文章

随机推荐

  • 如何在活动之间传递双数组(布尔[][])?

    我看不到将双布尔数组传递给另一个活动 我使用 putExtra 当我检索它并将其投射到boolean 它指出它无法投射并崩溃 然而 Boolean 是有效的 我该如何通过boolean 活动之间 如果您绝对需要一个 boolean 并且不能
  • C 静态变量初始化

    我学了一些 C 语言并发现了静态变量的解释 他们展示了这段代码 include
  • div 内的图像水平居中

    我正在尝试使用向上 向下箭头将图像设置为 div 的水平中心 我在这里阅读了一些教程和问题 但以下方法不起作用 img display block margin auto 它是用 Bootstrap 制作的 因此将部分集成在下面的代码片段中
  • 如何在Spring Security中编写自定义过滤器?

    我希望每个请求接收一些信息 所以我认为不要为每个请求提供一个函数并分别从请求中获取这些信息 最好有一个过滤器 所以每个请求都会通过这个过滤器 我就会得到我想要的 问题是 如何编写自定义过滤器 假设它不像任何预定义的 spring secur
  • Oracle10g中如何按顺序连接多行

    如果我有这样的数据 GROUP SEQUENCE COMMAND ONE 3
  • Jenkins groovy pipeline - 需要执行 jar 文件的命令标准输出

    我正在使用 Jenkins v 1 647 和 Pipeline 插件 v 1 14 我的管道作业提取了一个运行我的编排的常规脚本 我的问题是我有一个可执行的 jar 它将执行一些 Scalr API 操作并返回一个新的服务器主机名 传入标
  • 如何在组合框中添加换行符/制表符[重复]

    这个问题在这里已经有答案了 我有一个CSV包含各种项目的文件 我将其中一些项目放入组合框中 如何在中添加换行符和 或制表符CSV文件 以便它将在组合框中显示为换行符 选项卡 我努力了 t and n但它只显示组合框中的内容 基地ComboB
  • 查找 pandas 数据框中特定部分字符串第一次出现的索引位置

    我正在处理 AFRINIC whois 数据 我正在尝试查找子字符串第一次出现的位置 在示例中 pandas 数据框 左侧有一列 数据 是索引 我试图找到子字符串 inetnum 所以我正在寻找的结果是 2750383 data 20 mn
  • jQuery - 使用 .mouseout 或更合适的方法关闭下拉菜单,提示?

    我有以下代码 option box option name click function this siblings collapsible toggle this toggleClass hided option box attribut
  • Android,如何通过广播接收器接收主页按钮点击?

    在我的应用程序中 当用户通过单击注销按钮或按主页按钮关闭应用程序退出应用程序时 我需要向服务器发送注销请求 按钮没有问题 结果符合我的预期 问题是如何获得主页按钮 根据我的研究 不可能使用onKeyDown int keyCode KeyE
  • C# EWS - 已发送电子邮件的标识 - InternetMessageId

    我正在开发一个门票系统 我需要将票证 邮件 发送到电子邮件地址列表 并通过电子邮件接收有关此电子邮件 票证的答复 是否可以从我发送的新票证 电子邮件中获取 InternetMessageId 谢谢你 确保在发送消息时使用SendAndSav
  • 使用python的urllib2和Beautifulsoup爬取维基百科时删除html标签

    我正在尝试抓取维基百科以获取一些用于文本挖掘的数据 我正在使用 python 的 urllib2 和 Beautifulsoup 我的问题是 有没有一种简单的方法可以从我阅读的文本中删除不必要的标签 例如链接 a 或 span 对于这种情况
  • bash -c 变量未分配

    我正在尝试执行以下命令 bash c var test echo var 并且只打印一个空行 如果我执行相同的命令而不bash c var test echo var test 分配给的值 var正在打印 有人可以解释为什么我不能在第一个示
  • 什么是 ScalaSignature?

    将 Scala 文件反编译为 Java 代码时 经常会遇到带有以下注释的类ScalaSignatures 这些似乎只有一个注释值 一个经过某种编码的字符串 为什么 Scala 编译器创建如此奇怪的构造 而不是使用自定义的Attribute是
  • Blackberry 中的“尝试访问安全 API”错误

    当我在 Blackberry 9530 上安装 alx 文件时 收到错误 尝试访问安全 API 但是 我已经成功签署了该应用程序 可能需要 3 种类型的签名 RBB RCR RRT 我不确定它们各自的含义 但您需要使用它们 我认为您可能只安
  • Android:原始资源是否存储在本地文件系统上?

    我正在分析 APK 并在应用程序的 res raw 目录中看到一组 txt 资源 在模拟器上安装应用程序后 我希望在 data data app files 目录中看到相同的文件 但它们似乎不存在 原始资源存储在哪里 原始资源是在应用程序运
  • 在 Spring-boot 中运行 JSF 时出现 NoClassDefFoundError

    我正在尝试使用 primefaces 进行 Spring boot 工作 我按照这个例子https github com Zergleb Spring Boot JSF Example 我尝试将其从 gradle 移至 Maven 因为项目
  • Excel 中用户定义的 IFS 函数的 VBA 代码

    我们公司使用的是Excel 2016的打包版本 而不是Office 365版本 我最近了解到新版本中存在的 IFS 函数 它似乎非常有用 我在网站上以 VBA 形式找到了 CONCATENATEIF 函数 我想知道是否有办法以相同的方式在我
  • 如何将现有项目转换为 angular-cli?

    我刚刚尝试过ng2 admin而且看起来很棒 所有的功能都非常好 我怎样才能将这个项目转换为angular cli 我尝试过ng init 但它覆盖了现有的代码app文件夹 我怎样才能将这个项目转换为angular cli没有任何影响 只需
  • 如何使标准模式和怪异模式一样有效?

    以下 Html 在 FireFox 或 IE7 8 中非常适合我 带或不带样式标签 Should work in Quirks Mode br