web-dev-qa-db-ja.com

レスポンシブcssの背景画像

私はウェブサイト(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;
}
173
jochemke

ブラウザウィンドウのサイズに基づいて同じ画像を拡大縮小する場合は、次の手順を実行します。

background-image:url('../images/bg.png');
background-repeat:no-repeat;
background-size:contain;
background-position:center;

幅、高さ、または余白を設定しないでください。

編集:幅、高さ、またはマージンを設定しないことに関する前の行は、ウィンドウサイズでの拡大縮小に関するOPの最初の質問を参照しています。他のユースケースでは、必要なら幅/高さ/余白を設定したいかもしれません。

340
Andrei Volgin

このコードであなたの背景画像は中心に行き、あなたのdivサイズの変更に関係なくそれのサイズを修正します。

background-repeat:no-repeat;
-webkit-background-size:cover;
-moz-background-size:cover;
-o-background-size:cover;
background-size:cover;
background-position:center;
65
Pnsadeghy

これを試して :

background-image: url(_images/bg.png);
background-repeat: no-repeat;
background-position: center center;
background-attachment: fixed;
background-size: cover;
48
Ashok Dey

CSS:

background-size: 100%;

これでうまくいくはずです。 :)

32
Timothy Miller

ここに私が使用するレスポンシブ背景画像のための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);
}

http://jsfiddle.net/XbEdW/1/ /

20
lanan

これは簡単なことです=)

body {
    background-image: url(http://domains.com/photo.jpeg);
    background-position: center center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    background-size: cover;
}

jsFiddleデモ を見てください。

14
Omar

これが私が手に入れた最良の方法です。

#content   {
    background-image:url('smiley.gif');
    background-repeat:no-repeat;
    background-size:cover;
}

w3schools をチェック

利用可能なオプション

background-size: auto|length|cover|contain|initial|inherit;
13
Piyush

私が使った

#content {
  width: 100%;
  height: 500px;
  background-size: cover;
  background-position: center top;
}

これは本当にうまくいった。

9
Holly
#container {
    background-image: url("../images/layout/bg.png");
    background-repeat: no-repeat;
    background-size: 100% 100%;
    height: 100vh;
    margin: 3px auto 0;
    position: relative;
}
6
amit bende

下の画像の高さ/幅×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

5
user956584

これが使えます。私はテストしましたが、その動作は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) ;

楽しい :)

4
JackSparrow

アスペクト比に関係なく画像全体を表示したい場合は、次の手順を試してください。

background-image:url('../images/bg.png');
background-repeat:no-repeat;
background-size:100% 100%;
background-position:center;

これは、画面サイズに関係なく画像全体を表示します。

4
Mubashar Abbas

たった2行のコードで動作します。

#content {
  background-image: url('../images/bg.png');
  background-size: cover;
}
3
Rajkumar Bansal
    <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>
3
Indranil

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");
    }
2
OVNI
background:url("img/content-bg.jpg") no-repeat;
background-position:center; 
background-size:cover;

または

background-size:100%;
1
bsngr

私はそれをするための最良の方法はこれだと思います:

body {
    font-family: Arial,Verdana,sans-serif;
    background:url("/images/image.jpg") no-repeat fixed bottom right transparent;
}

このようにすれば、これ以上何もする必要はなく、非常に簡単です。

少なくとも、それは私のために働きます。

助けになれば幸いです。

0
user3487225