html – 没有黑客的元素之间的分隔符

前端之家收集整理的这篇文章主要介绍了html – 没有黑客的元素之间的分隔符前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在布局网站时,我经常想做的一件事是让一些元素相邻,两者之间有分隔符。例如,如果我有3个元素,我想要两个分隔符之间,任何一方都没有。

我以各种方式实现这一点。对于元素的垂直堆叠,我有时使用< hr /&gt ;.大概地,我可能会做一些类似的事情:

<div>
    <span class="notend">things</span>
    <span class="notend">stuff</span>
    <span>items</span>
</div>

.notend {
    border-right: solid black 1px;
}

有更多的语义方式做这个吗?我想要在元素之间有分隔符,而不要将样式元素放入html或使用非语义类。我不介意这需要hacky的css,我只是想从html文件获取样式。

解决方法

用这个:
#menu span + span {
    border-left: solid black 1px;
}

http://jsfiddle.net/thirtydot/QxZ6D/

除了第一个跨度之外,这将适用于所有边界。

除IE6之外,所有现代浏览器都支持adjacent sibling selector()。

另一种方法是这样做,这有时更好,因为您可以将“菜单按钮”的所有声明保留在一个块中:

http://jsfiddle.net/thirtydot/QxZ6D/1/

#menu span {
    border-left: solid black 1px;
    /*
    a: bunch;
    of: stuff;
    */
}
#menu span:first-child {
    border-left: 0
}

这与第一个解决方案具有完全相同的浏览器支持水平。

请注意,如果您喜欢此解决方案,最好使用:first-child而不是last-child,因为:IE7 / 8中支持first-child(来自CSS2),并且:last-child(仅在CSS3中引入)不是。

猜你在找的HTML相关文章