好的,在这里我找不到一种简单的处理方法。我有一个链接列表,它可以是典范或其他任何链接的标签,我想显示所有由分隔符隔开的标签。这是一个例子。
问题是,由于元素的长度未知,需要在穆林上折断(例如,标签可以具有长名),因此有时分离器是该行的第一个元素,所以它是Uggly。您是否有任何方法可以防止这种包裹在分离器span
之前?
.list {
font-size: 0;
line-height: 0;
max-width: 290px;
}
.list > * {
font-size: 14px;
line-height: 20px;
}
.list > span {
padding: 0 5px;
}
<div class="list">
<a href="#">Lorem</a>
<span>/</span>
<a href="#">Ipsum</a>
<span>/</span>
<a href="#">Lorem dolor ipsum amet dolor long foo bar baz lorem</a>
<span>/</span>
<a href="#">Ipsum dolor amet</a>
<span>/</span>
<a href="#">Lorem</a>
<span>/</span>
<a href="#">Ipsum</a>
<span>/</span>
<a href="#">Lorem ipsum</a>
<span>/</span>
<a href="#">Dolor</a>
<span>/</span>
<a href="#">Lorem dolor</a>
<span>/</span>
<a href="#">Ipsum dolor amet</a>
<span>/</span>
<a href="#">Lorem</a>
<span>/</span>
<a href="#">Ipsum</a>
<span>/</span>
<a href="#">Lorem ipsum</a>
<span>/</span>
<a href="#">Dolor</a>
<span>/</span>
<a href="#">Lorem dolor</a>
<span>/</span>
<a href="#">Ipsum dolor amet</a>
<span>/</span>
<a href="#">Lorem</a>
<span>/</span>
<a href="#">Ipsum</a>
<span>/</span>
<a href="#">Lorem ipsum</a>
<span>/</span>
<a href="#">Dolor</a>
<span>/</span>
<a href="#">Lorem dolor</a>
<span>/</span>
<a href="#">Ipsum dolor amet</a>
<span>/</span>
<a href="#">Lorem</a>
<span>/</span>
<a href="#">Ipsum</a>
<span>/</span>
<a href="#">Lorem ipsum</a>
<span>/</span>
<a href="#">Dolor</a>
<span>/</span>
<a href="#">Lorem dolor</a>
<span>/</span>
<a href="#">Ipsum dolor amet</a>
<span>/</span>
<a href="#">Lorem</a>
<span>/</span>
<a href="#">Ipsum</a>
<span>/</span>
<a href="#">Lorem ipsum</a>
<span>/</span>
<a href="#">Dolor</a>
<span>/</span>
<a href="#">Lorem dolor</a>
<span>/</span>
<a href="#">Ipsum dolor amet</a>
<span>/</span>
</div>
我希望这对您有帮助,
.list {
font-size: 0;
line-height: 0;
}
.list > * {
font-size: 14px;
line-height: 20px;
}
.list > .wrapper {
display: inline-block;
white-space: nowrap;
}
.list > .wrapper > span {
padding: 0 5px;
}
<div class="list">
<span class="wrapper">
<a href="#">Lorem</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Ipsum</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem ipsum</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Dolor</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem dolor</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Ipsum dolor amet</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Ipsum</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem ipsum</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Dolor</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem dolor</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Ipsum dolor amet</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Ipsum</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem ipsum</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Dolor</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem dolor</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Ipsum dolor amet</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Ipsum</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem ipsum</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Dolor</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem dolor</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Ipsum dolor amet</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Ipsum</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem ipsum</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Dolor</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem dolor</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Ipsum dolor amet</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Ipsum</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem ipsum</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Dolor</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Lorem dolor</a>
<span>/</span>
</span>
<span class="wrapper">
<a href="#">Ipsum dolor amet</a>
<span>/</span>
</span>
</div>
您可以使用::after
,例如:
<div class="list">
<span><a href="#">Lorem</a></span>
<span><a href="#">Ipsum</a></span>
<span><a href="#">Lorem ipsum</a></span>
<span><a href="#">Dolor</a></span>
<span><a href="#">Lorem dolor</a></span>
<span><a href="#">Ipsum dolor amet</a></span>
<span><a href="#">Lorem</a></span>
<span><a href="#">Ipsum</a></span>
<span><a href="#">Lorem ipsum</a></span>
<span><a href="#">Dolor</a></span>
<span><a href="#">Lorem dolor</a></span>
<span><a href="#">Ipsum dolor amet</a></span>
<span><a href="#">Lorem</a></span>
<span><a href="#">Ipsum</a></span>
<span><a href="#">Lorem ipsum</a></span>
<span><a href="#">Dolor</a></span>
<span><a href="#">Lorem dolor</a></span>
<span><a href="#">Ipsum dolor amet</a></span>
<span><a href="#">Lorem</a></span>
<span><a href="#">Ipsum</a></span>
<span><a href="#">Lorem ipsum</a></span>
<span><a href="#">Dolor</a></span>
<span><a href="#">Lorem dolor</a></span>
<span><a href="#">Ipsum dolor amet</a></span>
<span><a href="#">Lorem</a></span>
<span><a href="#">Ipsum</a></span>
<span><a href="#">Lorem ipsum</a></span>
<span><a href="#">Dolor</a></span>
<span><a href="#">Lorem dolor</a></span>
<span><a href="#">Ipsum dolor amet</a></span>
<span><a href="#">Lorem</a></span>
<span><a href="#">Ipsum</a></span>
<span><a href="#">Lorem ipsum</a></span>
<span><a href="#">Dolor</a></span>
<span><a href="#">Lorem dolor</a></span>
<span><a href="#">Ipsum dolor amet</a></span>
<span><a href="#">Lorem</a></span>
<span><a href="#">Ipsum</a></span>
<span><a href="#">Lorem ipsum</a></span>
<span><a href="#">Dolor</a></span>
<span><a href="#">Lorem dolor</a></span>
<span><a href="#">Ipsum dolor amet</a></span>
<span><a href="#">Lorem</a></span>
<span><a href="#">Ipsum</a></span>
<span><a href="#">Lorem ipsum</a></span>
<span><a href="#">Dolor</a></span>
<span><a href="#">Lorem dolor</a></span>
<span><a href="#">Ipsum dolor amet</a></span>
</div>
.list {
font-size: 0;
line-height: 0;
}
.list > * {
font-size: 14px;
line-height: 20px;
}
.list > span {
white-space: nowrap;
}
.list > span::after {
display: inline-block;
content: '/';
padding: 0 5px;
}
https://jsfiddle.net/lby5u1st/2/
有很多处理此问题的方法。我举几个例子。问题的症结在于,您取决于HTML来设置您的网页。HTML将处理内容的流程,但实际上,它应该只是为页面提供语义含义,而不提供任何风格的装饰。
content
伪元素方法
我们可以从HTML中删除分离器,然后通过CSS添加它们而不是使用content
。这也将使我们不显示最后一项的分离器。
然后,我们可以将列表项目设置为inline-block
,它仍然可以使它们一起流动,并为我们的Whitespace添加no-wrap
,这将阻止分离器作为列表中的第一个项目出现。
.list {
font-size: 0;
line-height: 0;
}
.list > * {
display: inline-block;
font-size: 14px;
line-height: 20px;
white-space: nowrap;
}
.list > *:not(:last-child)::after {
content: '/';
display: inline-block;
margin: 0 5px;
}
<div class="list">
<a href="#">Lorem</a>
<a href="#">Ipsum</a>
<a href="#">Lorem ipsum</a>
<a href="#">Dolor</a>
<a href="#">Lorem dolor</a>
<a href="#">Ipsum dolor amet</a>
<a href="#">Lorem</a>
<a href="#">Ipsum</a>
<a href="#">Lorem ipsum</a>
<a href="#">Dolor</a>
<a href="#">Lorem dolor</a>
<a href="#">Ipsum dolor amet</a>
<a href="#">Lorem</a>
<a href="#">Ipsum</a>
<a href="#">Lorem ipsum</a>
<a href="#">Dolor</a>
<a href="#">Lorem dolor</a>
<a href="#">Ipsum dolor amet</a>
<a href="#">Lorem</a>
<a href="#">Ipsum</a>
<a href="#">Lorem ipsum</a>
<a href="#">Dolor</a>
<a href="#">Lorem dolor</a>
<a href="#">Ipsum dolor amet</a>
<a href="#">Lorem</a>
<a href="#">Ipsum</a>
<a href="#">Lorem ipsum</a>
<a href="#">Dolor</a>
<a href="#">Lorem dolor</a>
<a href="#">Ipsum dolor amet</a>
<a href="#">Lorem</a>
<a href="#">Ipsum</a>
<a href="#">Lorem ipsum</a>
<a href="#">Dolor</a>
<a href="#">Lorem dolor</a>
<a href="#">Ipsum dolor amet</a>
</div>
Just pseudo元素方法
上述代码仍然存在问题。尽管我们已经从HTML中删除了分离器,但我们仍在使用 content 作为样式。如果屏幕读取器遇到上述标记,它将读取类似的内容:" Lorem forward slash lorem ipsum forthrom slash slash dolor dolor fortht slash slash ,ETC"。HTML旨在提供语义含义,然后我们使用CSS提供样式,因此我们可以通过将伪元素作为分离器进行造型并将其从content
属性中删除。
.list {
font-size: 0;
line-height: 0;
}
.list > * {
display: inline-block;
font-size: 14px;
line-height: 20px;
white-space: nowrap;
}
.list > *:not(:last-child)::after {
background-color: #000;
content: '';
height: .8em;
display: inline-block;
margin: 0 5px -2px;
transform: rotate(15deg);
width: 1px;
}
<ul class="list">
<li><a href="#">Lorem</a></li>
<li><a href="#">Ipsum</a></li>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Dolor</a></li>
<li><a href="#">Lorem dolor</a></li>
<li><a href="#">Ipsum dolor amet</a></li>
<li><a href="#">Lorem</a></li>
<li><a href="#">Ipsum</a></li>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Dolor</a></li>
<li><a href="#">Lorem dolor</a></li>
<li><a href="#">Ipsum dolor amet</a></li>
<li><a href="#">Lorem</a></li>
<li><a href="#">Ipsum</a></li>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Dolor</a></li>
<li><a href="#">Lorem dolor</a></li>
<li><a href="#">Ipsum dolor amet</a></li>
<li><a href="#">Lorem</a></li>
<li><a href="#">Ipsum</a></li>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Dolor</a></li>
<li><a href="#">Lorem dolor</a></li>
<li><a href="#">Ipsum dolor amet</a></li>
<li><a href="#">Lorem</a></li>
<li><a href="#">Ipsum</a></li>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Dolor</a></li>
<li><a href="#">Lorem dolor</a></li>
<li><a href="#">Ipsum dolor amet</a></li>
<li><a href="#">Lorem</a></li>
<li><a href="#">Ipsum</a></li>
<li><a href="#">Lorem ipsum</a></li>
<li><a href="#">Dolor</a></li>
<li><a href="#">Lorem dolor</a></li>
<li><a href="#">Ipsum dolor amet</a></li>
</ul>