HTML 要素を一方向だけに塗りつぶしたい場合はどうすればよいですか? 通常、 width:100% はページ全体を埋めるだけなので、要素を一方向に終了させ、他の方向には終わらないようにしたい場合はどうでしょう。私が言いたいことを説明するために小さな例を作りました。
ここでそれらを共有してより便利にするために、いくつかの方法を考えようとしましたが、とにかくこれを行う方法を思いつきませんでした.
HTML 要素を一方向だけに塗りつぶしたい場合はどうすればよいですか? 通常、 width:100% はページ全体を埋めるだけなので、要素を一方向に終了させ、他の方向には終わらないようにしたい場合はどうでしょう。私が言いたいことを説明するために小さな例を作りました。
ここでそれらを共有してより便利にするために、いくつかの方法を考えようとしましたが、とにかくこれを行う方法を思いつきませんでした.
このようなものは何か用途がありますか?
.funny-box{
width: 100%;
position: relative;
right: 80%;
}
または、ページの同じ行にもっと表示したい場合。
<div class="special-row">
<div class="funny-box"></div>
<div class="regular-box"></div>
</div>
.special-row{
position: relative;
}
.funny-box{
width: 100%; /** or any width you want, but it needs a width **/
position: absolute;
right: 80%;
}
.regular-box{
margin-left: 20%; /* flow normally, leave room for .funny-box */
}
覚えておくべき重要なことは、.funny-boxには明示的な幅が必要になるということです。必要に応じて、javascriptを使用して、少なくともウィンドウの左端に到達することを常に確認できます。
jQuery(他のライブラリ、およびライブラリを使用しないオプションが利用可能)では、次のようなことができます。
$('.funny-box').width($(window).width());
これは、ボックスが常にウィンドウの幅であることを意味します。そのため、提案した方法でボックスを配置すると、ボックスは常にウィンドウの左側を超えます。Jonが正しく指摘しているように、cssには「永遠に」というものはありませんが、この方法を使用すると、ユーザーに永遠に続くという印象を与えることができます。
.funny-box内の内側のdivをお勧めします。右にフロートしてクリアするので、コンテンツは常に画面に表示されます。