html - CSS布局随字体样式变化

标签 html css

考虑以下 HTML 标记。在我测试过的大多数浏览器中,第二个列表的显示方式不同(每个列表项都是缩进的)。

两个列表之间的唯一区别与 CSS font-style 属性有关,我不希望它改变列表布局。这种行为有解释吗?

<!DOCTYPE html>
<html>
    <head>
        <style>
            body {font-family: sans-serif}
            span {float: left}
            ul.bad span {font-style: italic}
        </style>
    </head>
    <body>
        <ul>
            <li><span>foo</span></li>
            <li><span>foo</span></li>
            <li><span>foo</span></li>
            <li><span>foo</span></li>
        </ul>
        <ul class="bad">
            <li><span>foo</span></li>
            <li><span>foo</span></li>
            <li><span>foo</span></li>
            <li><span>foo</span></li>
        </ul>
    </body>
</html>

最佳答案

带有直文本的跨度 span 高度变为 18 像素,而 italic 文本强制 span19 像素

这会在使用 float: left 时导致稍微不同的行为。

      span // <-- height: 18px;
 .bad span // <-- height: 19px;

一个快速修复是将两种跨度类型的行高属性设置为相等:

  span {float:left; line-height:15px;}

与您的代码的意图无关;)

关于html - CSS布局随字体样式变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6626643/

相关文章:

javascript - 如何动态加载模态

html - 提交单选按钮作为文件输入

jquery - 使用 jQuery 为属性已定义为 "!important"的对象设置动画

java - 无法从类似于下拉框的弹出窗口中选择值

html - 使元素宽度基于窗口的百分比

html - 如何覆盖异步CSS?

html - Canvas 外的 CSS 固定位置

css - 相对图像上绝对定位 2 Div 的问题

html - 需要帮助分配正确的媒体查询

javascript - 单击其他按钮后如何取消突出显示按钮(Web CSS Bootstrap)