这是html4的DOCTYPE
<span class="cp"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></span> <span class="nt"><html></span> <span class="nt"><body></span> <span class="nt"><div</span> <span class="na">style=</span><span class="s">"background:black;float:left"</span><span class="nt">>@@##@@ <span class="na">src=</span><span class="s">"http://photocdn.sohu.com/20110902/Img318184717.jpg"</span> <span class="nt">/></div></span> <span class="nt"></body></span> <span class="nt"></html></span>
首先,浏览器并没有所谓的"HTML 5 模式",而是只有三种:怪异模式(Quirks),几乎标准的模式(Limited Quirks)和标准模式(Standards),其中几乎标准的模式和标准模式之间的唯一差异在于是否对元素给定行高(line-height)和基线(baseline)。几乎标准模式中,如果标签所在行没有其他的行内元素,将不指定基线(baseline),标签因此会紧贴着父元素底部。在标准模式中,行框总是会包含类似字母"g","f"尾巴下伸出来的那一部分空间(针对下行字母),即使行框内并没有任何内容。因此这种情况下你看到的跟父元素底部几个像素的间隙实际上就是为”字母尾巴“预留的。使用 XHTML Transitional Doctype会是浏览器运行在”几乎标准模式(Limited Quirks)”。如果你使用XHTML Strict 或者HTML 4 Strict模式,你将看到和使用HTML 5 模式同样的间隙,因为这是标准模式(Standards mode)。我对题主如此细心的发现表示称赞,当然解决方式很简单,针对多出来的字母尾巴,设置行高或者字体大小为0,或者设置对齐基线垂直居中,至于display:block,一般我是不太推荐的,因为变成块元素又得占一行了……
<code class="text">vertical-align: baseline; </code>
HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号