DOCTYPE 影响行高的渲染

2023-12-22

这是一个令人头疼的问题。

我创建了一个带注释的 jsFiddle 来演示我最近在使用 Twitter 的 Bootstrap 框架创建一些下拉按钮时遇到的现象。

http://jsfiddle.net/jackwanders/WKvPv/ http://jsfiddle.net/jackwanders/WKvPv/

基本上,当使用 HTML5、HTML 4 Strict 或 XHTML Strict DOCTYPE 时,按钮将按设计呈现。但是,当使用 HTML4 或 XHTML过渡性的DOCTYPE,插入符号按钮以较短的高度呈现。这是来自 Bootstrap 的相关 CSS<span class="caret">(我删除了不重要的样式,例如颜色和渐变):

.caret {
  display: inline-block;
  width: 0;
  height: 0;
  vertical-align: top;
  border-top: 4px solid #000000;
  border-right: 4px solid transparent;
  border-left: 4px solid transparent;
  content: "";
}

.btn .caret {
  margin-top: 7px;
  margin-left: 0;
}

.btn {
  display: inline-block;
  *display: inline;
  padding: 4px 10px 4px;
  margin-bottom: 0;
  *margin-left: .3em;
  line-height: 18px;
  *line-height: 20px;
  text-align: center;
  vertical-align: middle;
}

为什么 DOCTYPE 会影响按钮的高度?如果line-height设置为18px,为什么高度会小于18px?

PS - 是的,我知道 Bootstrap 需要 HTML5,但我想这是关于所使用的 HTML5 功能,而不是 DOCTYPE 如何呈现 CSS 样式


在写这个问题和相关的 jsFiddle 演示时,我最终做了一些更多的挖掘并发现发生了什么。我想与其废弃这个问题,不如将其与这个答案一起发布。

切换 DOCTYPES 后,我通过检查 Chrome 中的元素得到的信息是:

  • .btn没有指定高度,仅line-height: 18px and padding: 4px 10px
  • 在 HTML5 中,仅插入符号按钮的最终高度为 18px,与定义的相同line-height
  • 在 Transitional DOCTYPE 中,仅插入符按钮的高度为 11px,与outerHeight() of the caret (border-top + margin-top),但小于line-height按钮的。

所以,我只能假设 Strict(和 HTML5)DOCTYPE 强制执行line-height作为某种min-height;即使元素中没有文本,它也适用line-height...而过渡性 DOCTYPES 则不然。

当我向仅插入符号的按钮添加一些文本时(&nbsp;例如),那么line-height在过渡 DOCTYPE 上启动,按钮以全高度呈现。

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

DOCTYPE 影响行高的渲染 的相关文章

  • 更改

    标签中一个单词的颜色

    我正在处理一份 html 文档 并且只想在我的文档中创建一个单词 p 标记不同的颜色 如果不做完全不同的事情 这可能吗 p p tag p p I want to make only THIS word blue p p style dis
  • 删除圆形图像周围的边框

    我有一个圆形图像 png 文件 中间是透明的 我需要将图像内的背景设置为纯色 为此 我将背景设为纯色 然后将border radius 50 但这会产生一条丑陋的小白线 有没有办法摆脱这个问题 或者我必须在图像编辑器中手动为图像着色 div
  • Javascript 使事件点击和语音识别与多个按钮一起工作

    所以我正在使用 webkitSpeechRecognition 并且它工作得很好 但问题是我想同时在多个地方使用它 当我将它添加到页面上的另一个部分时 它无法正常工作 这是它自己工作的情况 var final transcript var
  • Django:使用条件 {% extends %} 使 {% block "div" %} 成为条件

    我想分享一个 AJAX 和常规 HTTP 调用之间的模板 唯一的区别是一个模板需要扩展 base html html 而另一个则不需要 我可以用 extends request is ajax yesno app base ajax htm
  • 为什么我的反应路由器链接将我带到页面中间?

    我的网站上有很多链接 但只有一个可以执行此操作 它没有将我带到导航栏的顶部 而是转到内容的中间 知道为什么会这样吗 这是一个页面 其中有一个 map经历一些JSON 这是渲染div页面下方的文本元素 如果重要的话 这是一些可能相关的代码 路
  • 如何在通过 .ajaxForm() 提交表单之前执行一些操作?

    我正在使用 ajaxForm 框架来发送我的数据 而无需重新加载我的页面 ReplayForm ajaxForm success function data alert Success 现在 我想在提交表单之前检查一些条件 如果条件为假 则
  • 如何处理 Django 中的错误

    我想让我的 django 应用程序尽可能对用户友好 并且我想处理适当的错误并让它推出类似于 javascript 中的警报的错误消息 我想在没有上传文件时执行此操作 因此 当按下上传按钮并且尚未上传任何内容时 将会发出一条警报消息 我的看法
  • 将 Bootstrap 与 Bower 一起使用

    我正在尝试将 Bootstrap 与 Bower 一起使用 但由于它克隆了整个存储库 因此没有 CSS 和其他内容 这是否意味着我需要在我自己的构建过程中包含构建 Bootstrap 或者如果我错了 正确的工作流程是什么 I finally
  • CSS 无法从带有 php“includes”的相对路径工作

    文件夹结构 index php includes header html css style css 我的主项目文件夹中有 2 个子文件夹 一个是名为 includes 的文件夹 另一个名为 css 我有我的 index php主文件夹中的
  • 我怎样才能让这个脚本在 WordPress 上运行?

    我有这个脚本 document ready function text1 click function this hide 代码html div class div1 p class text1 text to appear when th
  • 如何在 select 和 option 标签中添加 JSON 数据?

    我有这个html代码 div class searchfilter div class searchwrapper div div
  • 将按钮文本放在一行上

    我的按钮文本在 safari 中显示在一行上 即使在初次单击后 但是在 google chrome 上 当您第一次到达该按 钮时 我的按钮将显示在一行上 但是当您浏览更多帖子并再次遇到 加载更多 按钮时 文本搞砸了 这只发生在谷歌浏览器上
  • 使用 CSS 网格布局使网格项内的元素高度相等

    我在长度超过 4 的 div 中有一系列文章 没有任何舍入行标签 我需要将其表示为每行 3 篇文章 列 的表格 可能包含display grid 每篇文章都有页眉 章节和页脚 如何在每行文章内实现每个标题的等高 每个部分的等高以及与文章底部
  • 如何使用 CSS 媒体查询检测设备方向?

    在 JavaScript 中 可以使用以下方式检测方向模式 if window innerHeight gt window innerWidth portrait true else portrait false 但是 有没有一种方法可以仅
  • 当按钮处于加载状态时,如何向按钮添加微调器图标?

    Twitter 引导按钮 http getbootstrap com javascript buttons有一个很好的Loading 状态可用 问题是它只显示一条消息 例如Loading 通过了data loading text像这样的属性
  • 如何使整个跨度落入新行?

    这个片段显示了我想要的 http jsfiddle net 945Df 3 http jsfiddle net 945Df 3 div class sup strong a href Rosario Santa Fe Argentina a
  • 适用于移动设备的响应式订单确认电子邮件?

    我从未见过令人惊叹的订单确认 发票电子邮件 即使是最好的 html5 网站也会发送糟糕的订单确认电子邮件 有时是纯文本 我相信这是因为发票通常需要使用表格来显示购买的物品 这在移动设备上实现起来非常困难 我发现了一些让手机上的表格更易于管理
  • 如何删除标题中的粗体?

    我有一个标题 h1 THIS IS A HEADLINE h1 如何使短语 THIS IS 不加粗 其余部分不做任何更改 我在文本装饰中找不到任何相关标签 标题看起来很粗体 因为它大尺寸 如果您已应用粗体或想要更改行为 您可以执行以下操作
  • 如何垂直对齐div内的图像

    如何在包含的内容中对齐图像div Example 在我的示例中 我需要将 img in the div with class frame div class frame style height 25px img src http jsfi
  • Bootstrap 导航栏与 Google 位置重叠自动完成下拉菜单

    我有一个导航栏 我试图在其中添加一个地点搜索框 除了谷歌位置提示框的一小部分被导航栏重叠 如下图所示 之外 一切几乎都有效 我尝试过改变z index输入框的值改为10或2000或90000但似乎没有效果 我还缺少其他需要做的事情吗 这是

随机推荐

  • 如何设置跨域标头以允许数据 URL?

    我有一个 javascript 脚本 它接受 SVG 字符串并尝试将其放在画布上 以对其进行光栅化 这在 Chrome 和 Firefox 中运行良好 但 Safari 会抛出错误 var img new Image img onload
  • CefSharp WPF 错误

    已使用 CefSharp 在 WPF 项目中使用 chromium Web 浏览器 构建按预期工作 但发布时收到的错误是 对与特定绑定约束匹配的类型 CefSharp Wpf ChromiumWebBrowser 的构造函数的调用引发了异常
  • 如何在git中合并提交之前找到两个分支的共同祖先?

    背景 我正在尝试编写一个脚本来简化使用 git 的向后移植过程 修复当前版本中的错误的一般过程如下 分支来自master到错误修复分支 例如bugfix abc 进行所有提交以修复错误bugfix abc Merge bugfix abc
  • 将生成的 GIF 保存到相机胶卷吗?

    谢谢阅读 我使用这个问题的方法创建了一个 GIF 通过 iOS 创建并导出 gif 动画 https stackoverflow com questions 14915138 create and and export an animate
  • 指定的架构无效。错误:“System.Data.Spatial.DbGeography”无法映射到原始类型

    我首先正在做实体框架 v6 数据库 尝试从我的数据上下文访问数据时出现以下错误 未加载关系 Model FK Table1 Table2 因为类型 Model Table1 不可用 以下信息可能有助于解决之前的错误 类型 Model Tab
  • Windows 上的 nohup 是什么?

    我想运行这样的 Java jar 文件 java jar spider jar 如何在Windows上后台运行它 在 Linux 上就像这样 nohup java jar spider jar gt var tmp spider log 2
  • popBackStack 后 ViewPager 中的片段未恢复

    Problem 从另一个片段返回后 片段不会重新附加到其托管 ViewPager 情况 一个 Activity 托管一个 Fragment 其布局包含一个 ViewPager PageListFragment在下面的例子中 ViewPage
  • Android Studio vs Eclipse + ADT 插件? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 对于这个问题我想得到客观的回答 为什么我应该使用 Android Studio 遇到问题和复杂的任务 例如导入为 Eclipse 开发的库 对我
  • 您在程序中使用“kibibyte”作为度量单位吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何将输出参数传递给存储过程?

    我编写了一个存储过程 格式如下 ALTER PROCEDURE usp data migration sourceDatabase varchar 50 sourceTable varchar 50 targetDatabase varch
  • 登录后 MVC 重定向

    我有一个 AccountController 用户可以在其中登录 还有一个名为 Admin 的区域 用户必须被授权才能查看 当用户使用正确的用户名和密码登录时 它会再次重定向到同一页面 Account Login ReturnUrl 2FA
  • 使用 Maven-3 使用 archiva 重新部署时出现 Http 409 错误

    我正在将 jar 文件部署到 Maven 存储库 archiva pom xml
  • 如何在Ocaml中快速将树结构打印成字符串?

    假设我在 OCaml 中有一个 树 形式的数学表达式 它被表示为如下的代数类型 type expr Number of int Plus of expr expr 嗯 这是一个very简化的定义 但足以描述问题 我想将其转换为逆波兰表示法的
  • 使用 Django Forms 来显示和编辑?

    我正在研究如何在 Django 中最好地创建可用于显示或编辑数据的 HTML 页面 也就是说 我希望字段的值在显示模式下显示为文本 但在编辑 添加模式下显示在其小部件中 看来 Django 的设计初衷并不是这样做 这些字段总是出现在它们的小
  • 如何在 iPhone 中以编程方式获取应用程序的存储大小

    I want to get the Storage Sizes of each Applications in iPhone through objective C Any one help to get like this 假设您正在为越
  • C++.Net 程序集可以轻松反编译吗?

    我知道所有程序集都可以以某种方式反编译 但 C 和 VB 应用程序最容易使用 Net Reflector 等工具反编译为源代码 所以我的问题是 如果我使用 C 的 Net 程序集和函数来编写应用程序 是否可以轻松反编译它 就好像它是带有 N
  • 将应用程序从 Carbon 迁移到 Cocoa

    我正在开发一个应用程序 需要将其整个代码从carbon迁移到cocoa 我在大学期间和实习期间有C C python和Java编程经验 但从未接触过Objective C或做过在此之前的任何 Mac Carbon 和 Cocoa 编程 那么
  • 适用于 iOS 的 GA 和自定义尺寸

    我们在 iOS 应用程序中设置了 Google Analytics 该应用程序发送供应商标识符以区分报告中的用户 这是我们所做的 在 Google Analytics 中 我们设置了一个自定义维度 如下所示 名称 用户标识符 范围 用户 主
  • OpenXML 电子表格中的单元格样式 (SpreadsheetML)

    我已使用 OpenXML SDK 在 C 中生成了一个 xlsx 电子表格 但无法弄清楚如何使单元格样式正常工作 我一直在研究 Excel 生成的文件 但不太明白它是如何完成的 现在 我正在创建一个填充 创建一个CellStyleForma
  • DOCTYPE 影响行高的渲染

    这是一个令人头疼的问题 我创建了一个带注释的 jsFiddle 来演示我最近在使用 Twitter 的 Bootstrap 框架创建一些下拉按钮时遇到的现象 http jsfiddle net jackwanders WKvPv http