最近发现,当<li>
设置为list-style-position
时,Chrome和Safari在inside
内的文字和项目符号之间的默认距离不同:
问题是:如何在不使用非常丑陋的background-image
技术的情况下将这个距离标准化为两个浏览器中相同的距离?
Chrome版本53.0.2785.143(64位), Safari版本10.0(11602.1.50.0.10)
PS。屏幕截图列表代码:
ul { list-style-position: inside; margin: 0; padding: 0; }
ul > li { margin: 0; padding: 0; }
答案 0 :(得分:2)
如果您找不到Safari行为异常的解决方案/原因(或者是Chrome),您可以使用伪元素作为解决方法
ul {
list-style-type: none;
margin: 0;
padding: 0;
}
ul li {
margin: 0;
padding: 0;
}
ul li::before {
content: '•';
margin-right: 10px;
}
&#13;
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
&#13;
答案 1 :(得分:1)
关于@LGSon的回答,我建议使用counter()
CSS函数和list-style-type
的可选参数。
您可以使用disc
值,但更灵活一点。 (参见下面的游乐场)。
CODE SNIPPET
ul {
list-style-type: none;
margin: 0;
padding: 0;
counter-reset: list-item;
}
ul li {
margin: 0;
padding: 0;
counter-increment: list-item;
}
ul li::before {
content: counter(list-item, disc);
margin-right: 10px;
}
&#13;
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
&#13;
decimal-leading-zero
ul {
list-style-type: none;
margin: 0;
padding: 0;
counter-reset: list-item;
}
ul li {
margin: 0;
padding: 0;
counter-increment: list-item;
}
ul li::before {
content: counter(list-item, decimal-leading-zero);
margin-right: 10px;
}
&#13;
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
&#13;
lower-roman
ul {
list-style-type: none;
margin: 0;
padding: 0;
counter-reset: list-item;
}
ul li {
margin: 0;
padding: 0;
counter-increment: list-item;
}
ul li::before {
content: counter(list-item, lower-roman);
margin-right: 10px;
}
&#13;
<ul>
<li>A</li>
<li>B</li>
<li>C</li>
</ul>
&#13;
接受的值:
disc,circle,square,decimal,decimal-leading-zero,lower-roman, 上罗马,低希腊,低拉丁,上拉丁,亚美尼亚, georgian,lower-alpha,upper-alpha
有关CSS counter()
函数的更多信息 here 。