css中的行之间的文本

时间:2012-07-05 15:13:35

标签: html css

CSS中的

,我该怎么做:

---Item---

将短划线连接成一条线?

我想到了:

border-bottom: 3px solid #000;

但是我不能向上移动该行加上该行将在文本后面,而不是围绕文本

我的HTML

<ul>
    <li class="sub-menu-item" ><a href="#">FACULTY&STAFF</a></li>
</ul>

(如果可能的话,我想避免触及HTML)

以上所有可能通过css或我应该只使用图像吗?

我的目标是ie8及以上(当然还有所有新的浏览器)

6 个答案:

答案 0 :(得分:5)

使用CSS &mdash;:before选择器在您的内容之前和之后注入:after。您需要使用转义的unicode,如discussed here

li.sub-menu-item:before,  li.sub-menu-item:after {
    content: "\2014"
}​

JSFiddle。对于较短的行,您可以使用ndash。

答案 1 :(得分:3)

这是一个开始:

.sub-menu-item
{
    border-bottom:1px solid black;
    height:0.6em;
    width:200px;
    text-align:center;
    margin-bottom:1em;

}
.sub-menu-item > a
{
    text-decoration:none;
    background:white;
}

http://jsfiddle.net/NpP5F/3/ (已更新以使用多个项目)

经测试可在Firefox,IE和Chrome中使用。现在请记住,这是孤立的小提琴。可能需要一些调整才能让它在其他html元素和样式等中工作。无论如何,概念证明。它“可以”完成。

答案 2 :(得分:2)

您可以使用border-top和border-bottom创建一个div,line-height:0,其中包含一个具有已定义背景颜色的span:

<div class="test">
   <span>BLA BLA BLA </span>
</div>

CSS:

.test {
border-bottom: 1px solid #D7D7D7;
border-top: 1px solid #A1A1A1;
line-height: 0;
text-align: center; }

.test span { 
background-color: #BABABA;
padding: 0 10px; }

答案 3 :(得分:1)

理论上你可以使用<hr/>然后设置它的长度并强制它显示为内联。或者,如果您的编码支持,请使用一些特殊的unicode字符。

答案 4 :(得分:0)

试试这个。 :)它使用一个图像,这是一个加号,因为它允许你按照你想要的样式设置破折号,并且不处理任何怪异的边距或任何可能弄乱你的其余布局的东西。

li.sub-menu-item
{
    background-image: url('http://i.imgur.com/JIa6C.png'); /* Just a transparent PNG with a line in the middle */
}

li.sub-menu-item a
{
    background-color: #FFF;
    padding: 0 10px;
    margin-left: 200px /* So you can see the left side of the line too */
}

http://jsfiddle.net/wAb8C

答案 5 :(得分:-1)

不改变代码:

ul li{
position: relative;
border-bottom: 1px solid #000;
}

ul li a{

position: relative;
background: #fff;
left: 0;
bottom: -10px;
margin-left: 10px;
color: orange;
text-decoration: none;
}​

Example here