在其内容之后使用列表项中的精灵图像
Using image from sprite in list item after its' content
我有以下 html 用于 ul:
<div id="articlesideitems">
<ul>
<li><a href="#"><span style="">List item content 1</span><span> </span></a></li>
<li><a href="#"><span>List item content 2</span><span> </span></a></li>
<li><a href="#"><span>List item long long long long long long content</span><span> </span></a></li>
<li><a href="#"><span>List item long long long long long long content</span><span> </span></a></li>
</ul>
<div id="articlesideitems">
和css:
div#articlesideitems ul li span {
display: inline-block;
}
div#articlesideitems ul li span:last-child {
background: url('images/sprite.png') no-repeat -87px -13px;
width: 9px;
height: 16px;
margin-left: 10px;
}
输出类似于:
如您所见,当文本多行时,双箭头不在文本末尾,而是在新行上。如何解决这个问题?
仅将 display: inline-block
应用于 span:last-child
div#articlesideitems ul li span:last-child {
display: inline-block;
}
示例:http://codepen.io/anon/pen/KpKoNg
结果
这里有一个选项,可以通过删除所有 <span>
来减少所需的标记量,还可以通过使用 ::after
伪元素插入双精度元素来消除对外部图像的需要角引号 (\bb
),前面是一个不间断的 space (\a0
)。它看起来完全与您的 sprite 中的一样,因此您需要决定这是否是可以接受的牺牲。
More information on pseudo elements
调整浏览器大小window 以查看换行方式。
body{margin:0;}
#articlesideitems ul{
list-style:none;
margin:0 auto;
padding:0;
width:50%;
}
#articlesideitems li{
border-bottom:1px solid #009;
}
#articlesideitems a{
color:#009;
display:block;
font-family:verdana;
padding:5px;
text-decoration:none;
}
#articlesideitems a::after{
content:"\a0\bb";
}
<div id="articlesideitems">
<ul>
<li><a href="#">List item content 1</a></li>
<li><a href="#">List item content 2</a></li>
<li><a href="#">List item long long long long long long content</a></li>
<li><a href="#">List item long long long long long long content</a></li>
</ul>
</div>
我有以下 html 用于 ul:
<div id="articlesideitems">
<ul>
<li><a href="#"><span style="">List item content 1</span><span> </span></a></li>
<li><a href="#"><span>List item content 2</span><span> </span></a></li>
<li><a href="#"><span>List item long long long long long long content</span><span> </span></a></li>
<li><a href="#"><span>List item long long long long long long content</span><span> </span></a></li>
</ul>
<div id="articlesideitems">
和css:
div#articlesideitems ul li span {
display: inline-block;
}
div#articlesideitems ul li span:last-child {
background: url('images/sprite.png') no-repeat -87px -13px;
width: 9px;
height: 16px;
margin-left: 10px;
}
输出类似于:
如您所见,当文本多行时,双箭头不在文本末尾,而是在新行上。如何解决这个问题?
仅将 display: inline-block
应用于 span:last-child
div#articlesideitems ul li span:last-child {
display: inline-block;
}
示例:http://codepen.io/anon/pen/KpKoNg
结果
这里有一个选项,可以通过删除所有 <span>
来减少所需的标记量,还可以通过使用 ::after
伪元素插入双精度元素来消除对外部图像的需要角引号 (\bb
),前面是一个不间断的 space (\a0
)。它看起来完全与您的 sprite 中的一样,因此您需要决定这是否是可以接受的牺牲。
More information on pseudo elements
调整浏览器大小window 以查看换行方式。
body{margin:0;}
#articlesideitems ul{
list-style:none;
margin:0 auto;
padding:0;
width:50%;
}
#articlesideitems li{
border-bottom:1px solid #009;
}
#articlesideitems a{
color:#009;
display:block;
font-family:verdana;
padding:5px;
text-decoration:none;
}
#articlesideitems a::after{
content:"\a0\bb";
}
<div id="articlesideitems">
<ul>
<li><a href="#">List item content 1</a></li>
<li><a href="#">List item content 2</a></li>
<li><a href="#">List item long long long long long long content</a></li>
<li><a href="#">List item long long long long long long content</a></li>
</ul>
</div>