CSSを使用した背景画像の中央揃え


148

背景画像を中央に配置したい。divは使用されていません。これはCSSスタイルです。

body{
    background-position:center;
    background-image:url(../images/images2.jpg) no-repeat;
}

上記のCSSは全体を並べて中央に配置しますが、画像の半分は見えず、上に移動するだけです。私がやりたいのは、画像を中央に配置することです。21インチの画面でも表示する画像を採用できますか?


1
これは、画像のサイズとブラウザのサイズによって異なりますね。
nikc.org 2010

@nikc +1、承知していますが、回避

回答:


304
background-image: url(path-to-file/img.jpg);
background-repeat:no-repeat;
background-position: center center;

うまくいくはずです。

そうでない場合は、div画像を使用z-indexして背景にしますか?これは、体の背景画像よりも中央に配置する方がはるかに簡単です。

それ以外は:

background-position: 0 100px;/*use a pixel value that will center it*/または、体min-heightを100%に設定すれば50%も使えると思います。

body{

    background-repeat:no-repeat;
    background-position: center center;
    background-image:url(../images/images2.jpg);
    color:#FFF;
    font-family:Arial, Helvetica, sans-serif;
    min-height:100%;
}

一元化されますが、画面の半分しか表示されませ
ん。stackoverflowに

スクリーンショットを作成してサーバーまたはphotobucket.comなどの無料の写真ホスティングサイトにアップロードするか、www.jsfiddle.netで一時的な例を作成してリンクを投稿することができます。あなたが言ったことから、画像は1600x1200で、ほとんどの画面解像度はそれほど高くありません。画像が収まるようにサイズ変更してみてください。たとえば、1440x900のワイドスクリーンモニターを使用しています。
カイル

スクリーンショット-imagevat.com/picview.php?ig=6179画像をjsfiddleにアップロードする方法がわからない場合、jsfiddle.net / yWrQP
X10nD

jsfiddleに画像を追加するには、完全なhttpパスEXを使用しますbackground-image:url(http://www.myurl.com/images/image.jpg);。CSSに配置します。
カイル

サーバーがありませんが、イメージホスティングサイトを使用しましたが、今でも確認してください
X10nD

20

私はこのコードを使用します、それはうまくいきます

html, body {
  height: 100%;
  width: 100%;
  padding: 0;
  margin: 0;
  background: black url(back2.png) center center no-repeat;;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}

ありがとう!Webkitなどの宣言が異なることも知りませんでした
Mike Rapadas

ちょっとビクター、私はあなたのコードをたくさん使ったが、それは今それが動作しないようです。background-attachmentを追加しました:修正。iPadブラウザーでは機能しません...
Vadim

-webkit-background-sizeただし、特別な宣言からのみ存在します。
BigBang1112 2018年

16

私はこれが望まれていることだと思います:

body
{
    background-image:url('smiley.gif');
    background-repeat:no-repeat;
    background-attachment:fixed;
    background-position:center;
} 

6
background-attachmentで問題が解決しました;)
kdoteu

7

試す

background-position: center center;

ダブルセンターセンターはなぜ機能するのですか?とにかくそれはまだ同じ、問題を解決しない
X10nD

1
@Jean:仕様を見てください。背景の位置は実際には2つの値(水平および垂直)をとることができます。w3.org/TR/CSS2/colors.html#propdef-background-position
Rob van Groenewoud 2010

@robが機能していません。画像がタイリングしています。画像は1600x1200で、画面サイズは1280x800
X10nD

2
@Jeanでは、(まだ)背景画像のサイズを変更することはできません。CSS 3では可能ですが、まだ十分にサポートされていません。center centerと並行しbackground-repeat: no-repeatて、あなたが求めることをするべきです-画像を中央に置きます。
Pekka

2
@ジーンああ、私はあなたのスクリーンショットから今見ます。bodya min-heightを指定する必要がある100%ため、全画面に表示されます。それはそれを分類するかもしれません。
Pekka

5

このような:

background-image:url(https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Dore_woodcut_Divine_Comedy_01.jpg/481px-Dore_woodcut_Divine_Comedy_01.jpg);
background-repeat:no-repeat;
background-position: center;
background-size: cover;

html{
height:100%
}

body{
background-image:url(https://upload.wikimedia.org/wikipedia/commons/thumb/8/8b/Dore_woodcut_Divine_Comedy_01.jpg/481px-Dore_woodcut_Divine_Comedy_01.jpg);
background-repeat:no-repeat;
background-position: center;
background-size: cover;
}


3

コードにエラーがあります。background-imageプロパティに完全な構文と省略表記を組み合わせて使用​​しています。これはbackground-imageプロパティの有効な値ではないため、no-repeatが無視される原因になっています。

body{   
    background-position:center;
    background-image:url(../images/images2.jpg) no-repeat;
}

次のいずれかになります。

body{
    background:url(../images/images2.jpg) center center no-repeat;
}

または

body
{
    background-image: url(path-to-file/img.jpg);
    background-repeat:no-repeat;
    background-position: center center;
}

編集:画像の「スケーリング」の問題については、この質問の答えを確認することをお勧めします。


'background:url(../ images / images2.jpg)center center no-repeat;' 構文が間違っているため機能しません。他の機能も機能しません
X10nD

2

これを試して background-position: center top;

これはあなたのためのトリックを行います。


2
background-repeat:no-repeat;
background-position:center center;

HTML 4.01 'STRICT' Doctypeを使用する場合、背景画像を垂直方向に中央揃えしません。

追加:

background-attachment: fixed;

問題を修正する必要があります

(アレクサンダーは正しいです)


1

単に交換する

background-image:url(../images/images2.jpg) no-repeat;

background:url(../images/images2.jpg)  center;

0

上記の答えに満足できない場合は、これを使用してください

    * {margin: 0;padding: 0;}

    html
    {
        height: 100%;
    }

    body
    {
        background-image: url("background.png");
        background-repeat: no-repeat;
        background-position: center center;
        background-size: 80%;
    }

0

同じ問題があった。表示とマージンのプロパティを使用し、それが機能しました。

.background-image {
  background: url('yourimage.jpg') no-repeat;
  display: block;
  margin-left: auto;
  margin-right: auto;
  height: whateveryouwantpx;
  width: whateveryouwantpx;
}

0
background-position: center center;

なしでは私にはうまくいきません...

background-attachment: fixed;

画像をx軸とy軸の両方に中央揃えで使用する

background-position: center center;
background-repeat: no-repeat;
background-attachment: fixed;

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.