在特定的`inline之前/之后,用CSS来换行
比方说,我有这个HTML:
<h3>Features</h3>
<ul>
<li><img src="alphaball.png">Smells Good</li>
<li><img src="alphaball.png">Tastes Great</li>
<li><img src="alphaball.png">Delicious</li>
<li><img src="alphaball.png">Wholesome</li>
<li><img src="alphaball.png">Eats Children</li>
<li><img src="alphaball.png">Yo' Mama</li>
</ul>
和这个CSS:
li { text-align:center; display:inline-block; padding:0.1em 1em }
img { width:64px; display:block; margin:0 auto }
结果可以在这里看到:http://jsfiddle.net/YMN7U/1/
现在想象一下,我想把它分成三列,相当于在第三个<li>
之后注入一个<br>
。 (实际上,这样做在语义和语法上都是无效的。)
我知道如何在CSS中选择第三个<li>
,但是如何在它之后强制换行? 这不起作用:
li:nth-child(4):after { content:"xxx"; display:block }
我也知道这种情况可以通过使用float
而不是inline-block
,但我对使用float
解决方案不感兴趣。 我也知道,使用固定宽度的块可以通过将父ul
的宽度设置为该宽度的3倍来实现; 我对这个解决方案不感兴趣。 我也知道如果我想要真正的列,我可以使用display:table-cell
; 我对这个解决方案不感兴趣。 我对在内联内容中强行休息的可能性感兴趣。
编辑 :要清楚,我对'理论'感兴趣,而不是对特定问题的解决方案。 CSS可以在display:inline(-block)?
中间注入换行符display:inline(-block)?
元素,还是不可能? 如果你确定这是不可能的,那是一个可以接受的答案。
我已经能够使它在内联LI元素上工作。 不幸的是,如果LI元素是内嵌块,它不起作用:
现场演示: http : //jsfiddle.net/dWkdp/
或悬崖笔记版本:
li {
display: inline;
}
li:nth-child(3):after {
content: "A";
white-space: pre;
}
你对你的问题很多“解决方案”不感兴趣。 我不认为真的有一个好方法来做你想做的事。 您插入的任何content
:after
和content
具有完全相同的句法和语义效度,如果您自己将它们写在那里,它会完成。
CSS提供的工具。 你应该浮动li
s然后clear: left
当你想要开始一个新行时,就像你刚才提到的那样:
看一个例子:http://jsfiddle.net/marcuswhybrow/YMN7U/5/
将列表拆分成行的一种简单方法是通过浮动单个列表项目,然后将想要转到下一行的项目清除浮动。
例如
<li style="float: left; display: inline-block"></li>
<li style="float: left; display: inline-block"></li>
<li style="float: left; display: inline-block"></li>
<li style="float: left; display: inline-block; clear: both"></li> --- this will start on a new line
<li style="float: left; display: inline-block"></li>
<li style="float: left; display: inline-block"></li>
链接地址: http://www.djcxy.com/p/89233.html
上一篇: CSS to line break before/after a particular `inline
下一篇: How do I center an image if it's wider than its container?