私は Bootstrap's Jumbotron で遊んで背景画像を配置しました。非常に簡単:
.jumbotron
{
background: url('path/to/images/banner.jpg') no-repeat center center;
background-size: cover;
}
そして
<div class="jumbotron">
<div class="container">...</div>
</div>
それは素晴らしく見え、応答性があります。しかし、ジャンボトロンはその中のコンテンツと同じくらいの大きさしかない-私はほとんど持っていません。その結果、私が望むよりもはるかに薄くなり、応答性を維持しながらデフォルトの高さを増やしたいと思います。そのため、たとえば、次のようなものは機能しません。
<div class="jumbotron">
<div class="container" style="height: 600px;">...</div>
</div>
高さは適切ですが、画像の反応が悪くなりました。私は利用できるさまざまなミックスイン/変数を調査してきましたが、何かが飛び出して活用できると期待していますが、運がありません。
これを実現するには、ジャンボトロンCSSで相対パディングトップと相対パディングボトムを使用します。
.jumbotron {
background: url('http://placekitten.com/800/500') no-repeat center center;
background-size: cover;
padding-top: 20%;
padding-bottom: 20%;
}
<div class="jumbotron">
<div class="container">
<h1>Your Text Here!</h1>
</div>
</div>
以下のコードはすべての画面で機能します:
.jumbotron {
background: url('backgroundimage.jpg') no-repeat center center fixed;
padding-top: 20%;
padding-bottom: 20%;
-webkit-background-size: cover;
-moz-background-size: cover;
background-size: cover;
-o-background-size: cover;
}
Coverプロパティは、コンテナ全体を覆うように背景画像のサイズを変更します。画像を引き伸ばしたり、エッジの1つを少し切り取ったりする必要がある場合でも同様です。
固定の高さを管理する場合、画像は実際にはコンテナでうまく再生されません。画像の縦横比またはサイズを無視します。最良の方法は、画像のアスペクト比とコンテナのサイズの間の共通点を見つけることです。 _background-image
_を使用するときは、すべてをコンテナに依存しているため、これはさらに複雑です。
したがって、カバーの代わりに、_background-size: contain;
_のようなものを試してください。それをいじって、画像がどのように拡大縮小されるかを判断します私は通常、良いbg-imageを実装する前にいくつかの数学をしなければなりません。したがって、画像が_1200x600
_の場合、幅と高さの比率が_2:1
_であることがわかっているため、それに応じて高さを調整できます。レスポンシブデザインの出番です。@media()
クエリを使用して_.jumbotron
_の高さを変更し、主要な画面サイズを反映できます。ある時点で、イメージはオーバーフローしますが、少なくとも_.jumbotron
_が_2:1
_の比率からあまり遠くに行かないことを確認したため、それほど多くはありません。 _background-size: cover
_は、画像がどのように拡大縮小されるかを気にしません。画像のアスペクト比に関係なく、_.jumbotron
_全体を強制的にカバーします。また、固定高さの代わりに_min-height
_を実装して、_.jumbotron
_が特定のサイズに強制されないようにすることもできます。