Answers:
您可以使用:before
并content:
记住IE 7或更低版本不支持此功能。如果您对此表示满意,那么这是您的最佳解决方案。有关完整详细信息,请参见“ 我可以使用”或QuirksMode CSS兼容性表。
在较旧的浏览器中应该使用的较差的解决方案是将图像用作要点,并使图像看起来像破折号。有关示例,请参见W3C list-style-image
页面。
:before
在于,当列表项跨越多行时,第二行上的缩进会在破折号所在的位置开始,从而破坏了缩进的列表效果。您需要使用悬挂缩进来避免这种情况。看到这个:alistapart.com/articles/taminglists
content
使用content: "\2014\a0"
有一个简单的解决方法(文本缩进)可以使:before
伪类保持缩进列表效果。
ul {
margin: 0;
}
ul.dashed {
list-style-type: none;
}
ul.dashed > li {
text-indent: -5px;
}
ul.dashed > li:before {
content: "-";
text-indent: -5px;
}
Some text
<ul class="dashed">
<li>First</li>
<li>Second</li>
<li>Third</li>
</ul>
<ul>
<li>First</li>
<li>Second</li>
<li>Third</li>
</ul>
Last text
list-style-type: none;
到<ul>
元素上。
ul li:before{ content:"- ";}
display: block; float: left;
,li:before
这样可以更轻松地将其从内容流中拉出,否则很难使第一行和后续行正确对齐。或Keyan Zhang的答案也可以绝对定位。
list-style-type dash
不是CSS的一部分已经
这是一个没有相对或绝对位置且没有文本缩进的版本:
ul.dash {
list-style: none;
margin-left: 0;
padding-left: 1em;
}
ul.dash > li:before {
display: inline-block;
content: "-";
width: 1em;
margin-left: -1em;
}
请享用 ;)
display: block; float: left;
,li:before
这样可以更轻松地将其从内容流中拉出,否则很难使第一行和后续行正确对齐。或Keyan Zhang的答案也可以绝对定位。
.active
带班li:before { visibility: hidden; }
和li.active:before { visibility: visible; }
用这个:
ul
{
list-style: square inside url('data:image/gif;base64,R0lGODlhBQAKAIABAAAAAP///yH5BAEAAAEALAAAAAAFAAoAAAIIjI+ZwKwPUQEAOw==');
}
让我也添加我的版本,主要是让我再次找到自己喜欢的解决方案:
ul {
list-style-type: none;
/*use padding to move list item from left to right*/
padding-left: 1em;
}
ul li:before {
content: "–";
position: absolute;
/*change margin to move dash around*/
margin-left: -1em;
}
<!--
Just use the following CSS to turn your
common disc lists into a list-style-type: 'dash'
Give credit and enjoy!
-->
Some text
<ul>
<li>One</li>
<li>Very</li>
<li>Simple Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</li>
<li>Approach!</li>
</ul>
就我而言,将此代码添加到CSS
ul {
list-style-type: '- ';
}
够了。就这么简单。
最佳答案之一对我不起作用,因为经过一番尝试和错误之后,li:before还需要使用css规则display:inline-block。
所以这对我来说是一个完全有效的答案:
ul.dashes{
list-style: none;
padding-left: 2em;
li{
&:before{
content: "-";
text-indent: -2em;
display: inline-block;
}
}
}
ul {
margin:0;
list-style-type: none;
}
li:before { content: "- ";}
这是我的小提琴版本:
该(Modernizr的)级.generatedcontent
上<html>
几乎意味着IE8 +和所有其他浏览器理智。
<html class="generatedcontent">
<ul class="ul-dash hanging">
<li>Lorem ipsum dolor sit amet stack o verflow dot com</li>
<li>Lorem ipsum dolor sit amet stack o verflow dot com</li>
</ul>
CSS:
.ul-dash {
margin: 0;
}
.ul-dash {
margin-left: 0em;
padding-left: 1.5em;
}
.ul-dash.hanging > li { /* remove '>' for IE6 support */
padding-left: 1em;
text-indent: -1em;
}
.generatedcontent .ul-dash {
list-style: none;
}
.generatedcontent .ul-dash > li:before {
content: "–";
text-indent: 0;
display: inline-block;
width: 0;
position: relative;
left: -1.5em;
}
我不知道是否有更好的方法,但是您可以创建一个表示破折号的自定义项目符号图形,然后让浏览器知道您要在列表中使用list-style-type属性。该页面上的示例显示了如何将图形用作项目符号。
我从来没有尝试过使用:before,尽管它可能会起作用。缺点是某些较旧的浏览器将不支持它。我的直觉是,这仍然足够重要,需要考虑。将来,这可能不再那么重要。
编辑:我已经使用OP的方法做了一些测试。在IE8中,我无法使用该技术,因此它绝对还不是跨浏览器。此外,在Firefox和Chrome中,将list-style-type设置为none似乎没有被忽略。
我的解决方案是在其中添加带有mdash的额外span标签:
<ul class="mdash-list">
<li><span class="mdash-icon">—</span>ABC</li>
<li><span class="mdash-icon">—</span>XYZ</li>
</ul>
并添加到CSS:
ul.mdash-list
{
list-style:none;
}
ul.mdash-list li
{
position:relative;
}
ul.mdash-list li .mdash-icon
{
position:absolute;
left:-20px;
}
CSS:
li:before {
content: '— ';
margin-left: -20px;
}
li {
margin-left: 20px;
list-style: none;
}
HTML:
<ul>
<li>foo</li>
<li>bar</li>
</ul>
代替使用lu li,而使用dl (definition list) and dd
。
<dd>
可以使用标准的css样式定义,例如,{color:blue;font-size:1em;}
并将您放置在html标记后的任何符号用作标记。它的工作方式类似于ul li,但是允许您使用任何符号,只需将其缩进即可获得通常使用的缩进列表效果ul li
。
CSS:
dd{text-indent:-10px;}
HTML
<dl>
<dd>- One</dd>
<dd>- Two</dd>
<dd>- Three</dd></dl>
给您更清晰的代码!这样,您可以使用任何类型的字符作为标记!缩进大约是-10px
,它可以完美工作!