这是一个头部划伤器。DOCTYPE影响线条高度的渲染
我创建了一个注释的jsFiddle来演示我最近在使用Twitter的Bootstrap框架创建一些下拉按钮时遇到的现象。
http://jsfiddle.net/jackwanders/WKvPv/
基本上,使用HTML5,HTML 4严格或严格的XHTML DOCTYPE时,按钮呈现为设计的。但是,使用HTML4或XHTML过渡文档时,插入符号按钮的高度较低。下面是从引导相关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 - 是的,我知道,引导需要HTML5,但我想像这是相对于HTML5的功能使用,而不是如何在DOCTYPE呈现CSS样式
过渡DOCTYPE触发几乎所谓的标准模式,这基本上是标准模式,有一些怪癖。由于这与盒子模型有关,你*可能会遇到这些怪癖之一,但我不知道肯定... – BoltClock
我最近遇到[这个微软网页](http:// msdn。 microsoft.com/en-us/library/ff405794%28v=vs.85%29),它描述了几乎标准模式下的行高处理差异。我在[这个答案]讨论它(http://stackoverflow.com/questions/11206730/html5-vs-html4-h1-tag-rendered-with-extra-space-how-to-remove/11217791#11217791)也与你的问题有关。特别是,它没有处理导致你看到的差异的支柱。 – Alohci
刚刚遇到此问题。这是2016年以外,但我们仍然处理相同的问题:(无论如何,谢谢你的答案! – vmg