Code: http://jsbin.com/maropaxivo/1/edit?html,css,输出
请参阅 Firefox 和 Chrome 浏览器的示例代码。为什么对齐标记列表不同?
li:before {
height: 20px;
content: " ";
display: block;
background-color: #ccc;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>
<body>
<ol>
<li>123</li>
<li>123</li>
<li>123</li>
<li>123</li>
<li>123</li>
</ol>
</body>
</html>
所以我对这个问题进行了更多调查:
- 这是它现在的行为方式 - 请注意
before
is a block
元素,而内容li
is inline
.
li:before {
height: 20px;
content: " ";
display: block;
background-color: #ccc;
}
<body>
<ol>
<li>123</li>
<li>123</li>
<li>123</li>
<li>123</li>
<li>123</li>
</ol>
</body>
- 如果我通过将文本包装在一个块元素中来使这两个项目成为块元素
div
,我们有相同的行为。
li:before {
height: 20px;
content: " ";
display: block;
background-color: #ccc;
}
<body>
<ol>
<li>
<div>123</div>
</li>
<li>
<div>123</div>
</li>
<li>
<div>123</div>
</li>
<li>
<div>123</div>
</li>
<li>
<div>123</div>
</li>
</ol>
</body>
- 如果我改变
before
元素到inline-block
,我们最终将在 Firefox 和 Chrome 中看到相同的行为:
li:before {
height: 20px;
content: " ";
display: inline-block;
width: 100%;
background-color: #ccc;
}
<body>
<ol>
<li>123</li>
<li>123</li>
<li>123</li>
<li>123</li>
<li>123</li>
</ol>
</body>
- 如果我改变
before
元素到inline-block
,并将内容保留为block
我们将再次在 Firefox 和 Chrome 中看到相同的行为:
li:before {
height: 20px;
content: " ";
display: inline-block;
width: 100%;
background-color: #ccc;
}
<body>
<ol>
<li>
<div>123</div>
</li>
<li>
<div>123</div>
</li>
<li>
<div>123</div>
</li>
<li>
<div>123</div>
</li>
<li>
<div>123</div>
</li>
</ol>
</body>
Comments:
所以每当before
is inline-block
(上述情况 3 和 4)或者甚至inline
就此而言,我们在 Firefox 和 Chrome 中看到了相同的行为。
在 Firefox 中,数字与第一个内联元素对齐。
在Chrome中,即使是块元素也没有关系。
我坚信这种行为是因为用户代理(浏览器)实现存在微小差异list-item
展示。
结论:
Use inline-block
并且您不会面临这种差异。
让我知道您对此的反馈。谢谢!
EDIT:
因此,如果您希望它在两个浏览器中看起来像您的代码的 Firefox 实现,您可以将before
绝对relative
to the li
:
li{
position: relative;
margin-top: 25px;
}
li:before {
height: 20px;
content: " ";
display: block;
width: 100%;
background-color: #ccc;
position:absolute;
top: -20px;
}
<body>
<ol>
<li>123</li>
<li>123</li>
<li>123</li>
<li>123</li>
<li>123</li>
</ol>
</body>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)