CSSを使用して複数の背景画像を作成できますか?
-
05-07-2019 - |
質問
2つの背景画像を持つことは可能ですか?たとえば、1つの画像を上部で繰り返し(repeat-x)、別の画像をページ全体で繰り返し(repeat)、ページ全体の画像が上部で繰り返す画像の後ろにあるようにします。
htmlとbodyの背景を設定することで、2つの背景画像に望ましい効果を達成できることがわかりました:
html {
background: url(images/bg.png);
}
body {
background: url(images/bgtop.png) repeat-x;
}
これは「良い」ですかCSS?より良い方法はありますか?また、3つ以上の背景画像が必要な場合はどうなりますか?
解決
CSS3はこの種のものを許可し、次のようになります:
body {
background-image: url(images/bgtop.png), url(images/bg.png);
background-repeat: repeat-x, repeat;
}
すべての主要ブラウザの現在のバージョンがサポートしています IE8以下をサポートしている場合、それを回避する最善の方法は、追加のdivを持つことです:
<body>
<div id="bgTopDiv">
content here
</div>
</body>
body{
background-image: url(images/bg.png);
}
#bgTopDiv{
background-image: url(images/bgTop.png);
background-repeat: repeat-x;
}
他のヒント
1つのdivで2つの異なる背景画像を使用する最も簡単な方法は、次のコード行を使用することです:
body {
background:url(image1.png) repeat-x, url(image2.png) repeat;
}
明らかに、これはウェブサイトの本文のみである必要はなく、必要なdivで使用できます。
役立つことを願っています!私のブログには、さらに詳しい説明やヘルプが必要な場合に、これについてもう少し詳しく説明している投稿があります- http://blog.thelibzter.com/css-tricks-use-two-background-images-for-one-div 。
これを使用
body {
background: url(images/image-1.png), url(images/image-2.png),url(images/image-3.png);
background-repeat: no-repeat, repeat-x, repeat-y;
background-position:10px 20px , 20px 30px ,15px 25px;
}
background-position:ですべての画像の位置を調整する簡単な方法、およびbackground-repeat:で繰り返しプロパティを設定する:個々の画像ごとに
現在のバージョンのFFとIEおよびその他のブラウザは、単一のCSS2宣言で複数の背景画像をサポートしています。こちらをご覧ください http://dense13.com/blog/ 2008/08/31 / multiple-background-images-with-css2 / およびこちら http ://www.quirksmode.org/css/multiple_backgrounds.html およびこちら http://nicolasgallagher.com/multiple-backgrounds-and-borders-with-css2/
IEの場合、動作の追加を検討できます。こちらをご覧ください: http://css3pie.com/
はい、それは可能であり、一般的なユーザビリティテストWebサイト Silverback によって実装されています。ソースコードを見ると、背景が複数の画像で構成されており、それらが互いに重なり合っていることがわかります。
効果の実行方法を示す記事は、ビタミン。これらの「オニオンスキン」レイヤーをラップするための同様の概念は、 A List Apart にあります。
複数の背景画像が必要で、それらをオーバーラップさせたくない場合は、次のCSSを使用できます。
body {
font-size: 13px;
font-family:Century Gothic, Helvetica, sans-serif;
color: #333;
text-align: center;
margin:0px;
padding: 25px;
}
#topshadow {
height: 62px
width:1030px;
margin: -62px
background-image: url(images/top-shadow.png);
}
#pageborders {
width:1030px;
min-height:100%;
margin:auto;
background:url(images/mid-shadow.png);
}
#bottomshadow {
margin:0px;
height:66px;
width:1030px;
background:url(images/bottom-shadow.png);
}
#page {
text-align: left;
margin:62px, 0px, 20px;
background-color: white;
margin:auto;
padding:0px;
width:1000px;
}
このHTML構造を使用:
<body
<?php body_class(); ?>>
<div id="topshadow">
</div>
<div id="pageborders">
<div id="page">
</div>
</div>
</body>
#example1 {
background: url(http://www.w3schools.com/css/img_flwr.gif) left top no-repeat, url(http://www.w3schools.com/css/img_flwr.gif) right bottom no-repeat, url(http://www.w3schools.com/css/paper.gif) left top repeat;
padding: 15px;
background-size: 150px, 130px, auto;
background-position: 50px 30px, 430px 30px, 130px 130px;
}
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="example1">
<h1>Lorem Ipsum Dolor</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
</div>
</body>
</html>
CSS3を使用して複数の画像を簡単に追加できます。ここで詳細を読むことができます http://www.w3schools.com/css/css3_backgrounds.asp
メインページに1つの背景と別の背景を持つdivを作成し、ページコンテンツをそれらの間で分離するか、コンテンツを別のzレベルのフローティングdivに配置できます。あなたがそれをしている方法はうまくいくかもしれませんが、あなたが遭遇するすべてのブラウザで機能することを疑います。