私はウェブサイト(g-floors.eu)を持っています、そして私は(CSSで私は内容のためにbg-画像を定義しました)背景も敏感にしたいです。残念ながら、私が考えることができることを除いて、私は実際にこれをする方法について少しのアイディアも持っていません、しかしそれはかなり回避策です。複数の画像を作成してからCSS画面サイズを使用して画像を変更しますが、これを実現するためのより実用的な方法があるかどうかを知りたいです。
基本的に私が達成したいのは、画像(ウォーターマーク「G」付き)が、画像をあまり表示せずに自動的にサイズ変更されることです。もちろん可能なら
リンク: g-floors.eu
私がこれまでに持っているコード(コンテンツ部分)
#content {
background-image: url('../images/bg.png');
background-repeat: no-repeat;
position: relative;
width: 85%;
height: 610px;
margin-left: auto;
margin-right: auto;
}
ブラウザウィンドウのサイズに基づいて同じ画像を拡大縮小する場合は、次の手順を実行します。
background-image:url('../images/bg.png');
background-repeat:no-repeat;
background-size:contain;
background-position:center;
幅、高さ、または余白を設定しないでください。
編集:幅、高さ、またはマージンを設定しないことに関する前の行は、ウィンドウサイズでの拡大縮小に関するOPの最初の質問を参照しています。他のユースケースでは、必要なら幅/高さ/余白を設定したいかもしれません。
このコードであなたの背景画像は中心に行き、あなたのdivサイズの変更に関係なくそれのサイズを修正します。
background-repeat:no-repeat;
-webkit-background-size:cover;
-moz-background-size:cover;
-o-background-size:cover;
background-size:cover;
background-position:center;
これを試して :
background-image: url(_images/bg.png);
background-repeat: no-repeat;
background-position: center center;
background-attachment: fixed;
background-size: cover;
CSS:
background-size: 100%;
これでうまくいくはずです。 :)
ここに私が使用するレスポンシブ背景画像のためのsass mixinがあります。それはどんなblock
要素にも働きます。もちろん、プレーンCSSでも同じことができます。手動でpadding
を計算するだけです。
@mixin responsive-bg-image($image-width, $image-height) {
background-size: 100%;
height: 0;
padding-bottom: percentage($image-height / $image-width);
display: block;
}
.my-element {
background: url("images/my-image.png") no-repeat;
// substitute for your image dimensions
@include responsive-bg-image(204, 81);
}
body {
background-image: url(http://domains.com/photo.jpeg);
background-position: center center;
background-repeat: no-repeat;
background-attachment: fixed;
background-size: cover;
}
jsFiddleデモ を見てください。
これが私が手に入れた最良の方法です。
#content {
background-image:url('smiley.gif');
background-repeat:no-repeat;
background-size:cover;
}
w3schools をチェック
利用可能なオプション
background-size: auto|length|cover|contain|initial|inherit;
私が使った
#content {
width: 100%;
height: 500px;
background-size: cover;
background-position: center top;
}
これは本当にうまくいった。
#container {
background-image: url("../images/layout/bg.png");
background-repeat: no-repeat;
background-size: 100% 100%;
height: 100vh;
margin: 3px auto 0;
position: relative;
}
下の画像の高さ/幅×100 =パディング - ボトム%にパディングを追加してレスポンシブWebサイト
http://www.outsidethebracket.com/responsive-web-design-fluid-background-images/ /
もっと複雑な方法:
http://voormedia.com/blog/2012/11/responsive-background-images-with-fixed-or-fluid-aspect-ratios
魔法のニーススクリプトを見るために、バックグラウンド方程式FirefoxのCtrl + Mをリサイズしてみてください。
http://www.minimit.com/demos/fullscreen-backgrounds-with-centered-content
これが使えます。私はテストしましたが、その動作は100%正しいです。
background-image:url('../images/bg.png');
background-repeat:no-repeat;
background-size:100%;
background-position:center;
あなたはこのScreen Size Simulatorであなたのウェブサイトを即応性でテストすることができます: http://www.infobyip.com/testwebsiteresolution.php
変更を加えるたびにキャッシュをクリアしてください。テストにはFirefoxを使用することをお勧めします。
あなたがImage form他のサイト/ URLを使いたいが好きではない場合:background-image:url('../images/bg.png');
//この構造はあなた自身のホストされたサーバーからの画像を使うことです。それから次のように使用してください:background-image: url(http://173.254.28.15/~brettedm/wp-content/uploads/Brett-Edmonds-Photography-14.jpg) ;
楽しい :)
アスペクト比に関係なく画像全体を表示したい場合は、次の手順を試してください。
background-image:url('../images/bg.png');
background-repeat:no-repeat;
background-size:100% 100%;
background-position:center;
これは、画面サイズに関係なく画像全体を表示します。
たった2行のコードで動作します。
#content {
background-image: url('../images/bg.png');
background-size: cover;
}
<style>
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
#res_img {
background: url("https://s15.postimg.org/ve2qzi01n/image_slider_1.jpg");
width: 100%;
height: 500px;
background-repeat: no-repeat;
background-size: 100% 100%;
background-position: center;
border: 1px solid red;
}
@media screen and (min-width:300px) and (max-width:500px) {
#res_img {
width: 100%;
height: 200px;
}
}
</style>
<div id="res_img">
</div>
JQueryを使って平方比に適応
var Height = $(window).height();
var Width = $(window).width();
var HW = Width/Height;
if(HW<1){
$(".background").css("background-size","auto 100%");
}
else if(HW>1){
$(".background").css("background-size","100% auto");
}
background:url("img/content-bg.jpg") no-repeat;
background-position:center;
background-size:cover;
または
background-size:100%;
私はそれをするための最良の方法はこれだと思います:
body {
font-family: Arial,Verdana,sans-serif;
background:url("/images/image.jpg") no-repeat fixed bottom right transparent;
}
このようにすれば、これ以上何もする必要はなく、非常に簡単です。
少なくとも、それは私のために働きます。
助けになれば幸いです。