获取背景与文本宽度相同,但高度不同

时间:2012-07-12 15:59:12

标签: css background-color

我试图在纯粹的CSS(无图像)中获得一定的外观。

我拥有的是:

<h2>
    <a>TITLE</a>
</h2>

我希望文本“title”的黑色背景与文本的宽度相同,但高度不同。

我试过这是各种排列:(即链接中的跨度,h2中的跨度,h2显示内联和跨度块)

<h2 class="title section-title">
    <a href="<?php echo site_url(); ?>/artwork/illustrations" >
        Illustrations<span class="title-bg"></span>
    </a>
</h2>

如果我得到正确的宽度,我无法改变高度,因为span是一个内联元素。如果我通过使跨度成为块来获得高度,我无法更改得到宽度恰好是文本的宽度,因为它现在是块级元素并扩展为页面的整个宽度。

任何想法,或者我只需要使用图像?

4 个答案:

答案 0 :(得分:7)

使用display:inline-block;

请参阅this fiddle

h2 {
    display:inline-block;
    height:60px;
    background-color:blue;
    color:white;
}
<h2><a>Hello.</a></h2>

答案 1 :(得分:2)

我使用的最简单的方法是line-height

h2 a {color:#fff; line-height:40px; display:inline-block; background:#333;}​

这是jsFiddle

答案 2 :(得分:1)

position: relative;应用于<a>,将position: absolute;应用于.title-bg <span>。然后根据需要设置topleft设为0width和设置height

像这样:http://jsfiddle.net/minitech/3uzbV/

答案 3 :(得分:0)

CSS:

a {
    font-size:1em;
    padding:1em 0 1em 0;/*set top and bottom padding to make up extra height*/
    background-color:#063;
}

试试这个。即使内联元素也可以有填充。