このページの目次

要素がコンテンツエリアなどからはみ出ているデザインを再現するための CSS

Web ページのデザインで、ある要素がコンテンツエリアを突き破ってはみ出ている場合、それを簡単に再現するための CSS のソースコード例です。親要素の Width が指定されていて、そこからはみ出る要素がある想定で行います。

親要素から子要素をはみ出させたい場合、子要素の margin にマイナスを指定することで子要素の横幅を広げることができます。以下にそのサンプルコードを示します。このサンプルコードの例では親要素の横幅が 200px、その子要素の横幅は300px となります。


<div style="width:200px;">
<div style="margin-right:-100px;">子要素</div>
</div>

確認しやすいように border, background などを指定してレンダリングすると以下のような結果となります。


<div style="width:200px; padding:5px; border:1px solid red;">
<div style="margin-right:-100px; background:#ccc;">子要素</div>
</div>

図 : Firefox 6 のレンダリング結果は良好。IE 6 でのレンダリング結果に不具合あり。

Firefox, Opera, Safari では意図したとおりにレンダリングされますが、IE でははみ出させたい部分が切れてしまうので IE には zoom プロパティなどを指定し hasLayout を true にして、さらに、 position プロパティに relative を指定することではみ出させたい部分が切れてしまうことなくレンダリングされます。


<div style="width:200px; padding:5px; border:1px solid red;">
<div style="margin-right:-100px; background:#ccc; position:relative; zoom:1;">子要素</div>
</div>

この方法を使えば、親要素の幅を広げるなどの手間のかかることをしないですみます。

ドロップシャドウの箇所が少しだけはみ出ているケースなどにもに便利です。



トラックバックURI

http://www.yomotsu.net/lab/css/widen-area/trackback

この記事へのコメントはまだありません

コメントフォーム

コメント

コメントでは一部の XHTML タグを使用できます。 : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

実験室に戻る

著作権情報等

Copyright © 2004-2008 yomotsu-net. Some Rights Reserved.