2017-04-13 14 views
0

私は大学の教科の一部として、かなり基本的なウェブサイトをまとめています。私は背景イメージを入れましたが、それはほぼ完全に適合します - しかし何らかの理由で私はイメージの上に白いマージン(厚さ約1インチ)と左に白いマージン(約0.5インチ)を持っています。ページの上端と左端に背景画像があります

ここに画像のための私のCSSです:

#image { 

    width: 100% 100%; 
    position: fixed; 
    z-index: -9; 
    opacity: 0.8; 
    display: block; 
    background-size: cover; 
} 

私はちょうどこのように開いてbodyタグの後にHTMLで背景画像を配置している:

<img id="image" src="CourseworkImages/background2.jpg" alt="Background Image"> 

私は私が持っている理由はわかりませんこれらの余白はページ上にあり、ページの外観が損なわれています。

おかげ

+1

Hey!スタックオーバーフローへようこそ。あなたの質問は、私たちがあなたを助けるためにもう少しコードを使用することができます。 [MCVE]の作成方法はこちらをご覧ください。 – amflare

+1

CSSを使用する代わりに 'img'を使用する理由はありますか? 'body {background-image:url( '/path/to/image.jpg');}のようなものです。 – hungerstar

+1

'html、body {padding:0、margin:0}' – sol

答えて

1

代わりのあなたは、私はCSSを使用することをお勧めしているようimgタグを使用しました。次のようなものがあります。

この方法では、使用していた多くのプロパティを取り除くことができます。あなたが保持したいと思うものはbackground-sizeです。

他の人が指摘しているように、ほとんどのブラウザでは、不要な空白を作成するbody要素に余白の8pxが追加されています。これを削除するには、上記のCSSセレクタにmargin: 0;を追加してください。


不透明度を維持するために、私はボディに擬似要素を使用します。また、必要な不透明度を組み込んだPNGを作成することもできます.CSIを使用すると、少し柔軟になります。

body { 
 
    position: relative; 
 
    margin: 0; 
 
    min-height: 100vh; 
 
    background-color: hotpink; 
 
} 
 

 
body:before { 
 
    content: ' '; 
 
    display: block; 
 
    position: absolute; 
 
    left: 0; 
 
    top: 0; 
 
    width: 100%; 
 
    height: 100%; 
 
    z-index: -1; 
 
    opacity: 0.6; 
 
    background-image: url('http://placekitten.com/1600/1600'); 
 
    background-repeat: no-repeat; 
 
    background-size: cover; 
 
}

+0

これはうまくいきました。クイックフォローアップの質問;背景画像のプロパティを変更するにはどうしたらいいですか?私は不透明度を変更したいが、それはCSSのすべてであるので、それを行う方法がわからない。 – Conor

+0

PNGを使用して作成された不透明度を持つ画像を作成することもできます。代わりに擬似要素。私は数分で更新します。 – hungerstar

+0

優秀、ありがとう! – Conor

-1

かなり基本的な例:

body { 
    margin: 0; 
    padding: 0; 
    border: 1px solid yellow; 
    border-right-style: none; 
    border-bottom-style: none; 
    width: 100%; 
    opacity: 0.8; 
    display: block; 
    background-size: cover; 
    background-image: url("CourseworkImages/background2.jpg"); 
} 

また、ラッパーのdivでそれを行うことができます。また、background-positionrepeatプロパティで再生する必要があります。また、ブラウザのデフォルトマージンとパディングをリセットして、実際にはスペースを取らないようにする必要があります。私が言ったように、基本的な例。このトピックに興味があれば、cssフレームワークを見ることができます。これは、ブラウザで定義されたすべてのスタイルをリセットします。 g。 normalize.css

+0

'body'に' opacity'を追加すると、すべての子孫要素がその不透明度[JSFiddle](https://jsfiddle.net/1mbjdvr0/)を共有します。背景画像の不透明度には影響しません。 – hungerstar

+0

まあ、私は質問者からすべてのプロパティをコピーしました。しかし、この答えは問題を解決するはずです。 – alpham8

+0

盲目的にプロパティをコピーすることは**問題を解決しない解決策ではありません。 [** your solution **](https://jsfiddle.net/1mbjdvr0/1/)では、 'body'のすべてのコンテンツに不透明度が適用されています(不十分です)。背景画像には不透明度/透過性がありません画像を通して黄色い背景のどれも見ることができません(OPが望むものではありません)。 – hungerstar

関連する問題