不是最优雅的解决方案,但它似乎有效。
HTML:
<div class="page">
<div>
SOMEHEADER
</div>
</div>
CSS:
.page > div {
margin: 0 -1000%;
}
示例:http: //jsfiddle.net/grc4/w36mX/
此方法通过拉伸内部 div 使其足够宽以完全适合其内容(不换行/溢出)来工作。然后内容居中 ( text-align: center
) 并被外部 div ( overflow: hidden
) 裁剪为大小。
棘手的部分是使内部 div 足够宽以适合文本。每当它不够宽时,文本就会向右溢出,从而无法正确居中(如您原来的 jsFiddle 所示)。
通过使用负边距,您可以将元素向左和向右拉伸一定量。例如,如果您知道文本的大小为 400px,那么您可以使用margin: 0 -200px
来确保内部 div 始终至少为 400px 宽(左侧为 200px,右侧为 200px)。当您不知道文本的确切大小时,您可以使用百分比或非常高的 px 值。
margin: 0 -100%
会将 div 向左拉伸其原始大小的 100%,再向右拉伸 100%,使其比.page
div 大 3 倍。文本大约 900 像素宽,所以如果.page
div 宽度低于 300 像素,此方法将停止工作(尝试在 jsFiddle 中调整浏览器的大小margin: 0 -100%
以了解我的意思)。
margin: 0 -1000%
拉伸 div 使其大 21 倍,这通常足以容纳文本。