2013-08-20 65 views
0

比方说,我有一个块元素,如H2:如何获得最小宽度行为(如在浮动或POS:ABS),而不使用浮动或POS:ABS

<h2>Title</h2> 

而我给它是一种背景颜色。背景将跨越包装的整个宽度(因为它应该)。

如果我把它浮起来,或者是position: absolute,它会“收缩包裹”这个词。但是,这两种方法都会将该元素从“流”中取出,并阻止它将其余内容推送到页面中。

我想避免每次都要在标题下添加一个清除。有更好的解决方案吗?我认为overflow属性可以做到这一点,但我没有搞清楚。

小提琴:

http://jsfiddle.net/QxRRh/

+0

你能澄清你想实现什么?我不明白你的意思是“最小宽度行为”。 –

+0

@Pekka웃:通过宽度使'h2'缩小以适合其内容,而不会出现与浮动或消除相关的任何副作用。 – BoltClock

+0

检查小提琴 –

回答

2

这里有一个(很简单)的方式...

h2 { 
    display: table; 
} 

Fiddle

+0

哇......这是合法的(浏览器兼容,语义等)? –

+1

为什么使用这个(它不适用于较老的IE),而不是'display:inline'? –

+0

因为使用'inline'或'inline-block'会使元素'inline'或'inline-block'(显然)。不是OP要的 – Turnip

0

裹在<span>标题文本和应用背景颜色那跨度。

HTML:

<h2><span class="blue">Title</span></h2>

CSS:

.blue{ background-color:blue; }

+0

“正确”是什么意思? – BoltClock

+0

我改变了措辞,有不止一种方法来实现这一点。 –

+0

这将类似于添加一个清晰的底下 - 我试图避免额外的标记 –