最もエレガントなソリューションではありませんが、うまくいくようです。
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% 右に伸ばして、div の 3 倍の大きさにし.page
ます。テキストの幅は約 900px であるため、.page
div の幅が 300px を下回ると、このメソッドは機能しなくなります (jsFiddle でブラウザのサイズを変更して、margin: 0 -100%
意味を確認してください)。
margin: 0 -1000%
div を引き伸ばして 21 倍の大きさにします。これは通常、テキストに合わせて十分です。