CSSで画像をレイヤー化-同じ要素に2つの画像を配置できますか?
質問
次のようにCSSでWebページの背景画像を設定するとします:
body {
font-size: 62.5%; /* Resets 1em to 10px */
font-family: Verdana, Arial, Sans-Serif;
background-color: #9D5922;
color: #000;
margin-left: auto;
margin-right: auto;
margin: 0;
padding: 0;
background: url(images/desk.gif) repeat bottom left;
}
body要素自体の中でdesk.gifの上に2番目の画像を重ねる方法はありますか、または別のクラスを作成してz軸を使用する唯一の方法ですか?
申し訳ありませんが、それは単純な質問ですが、私はこれを理解しようとしていましたが、私はそれを機能させることができませんでしたが、オンラインのアイデアの明確な平手打ちも見つかりませんでした...だから、方法はありますか、これはただできないのですか?
ありがとう!
解決
要するに、それは不可能です。これを行うことはできますが、2番目のHTMLオブジェクトをページに追加して動作させる必要があります。したがって、たとえば、体の真下にdivブロックを配置し、2番目の背景をそのオブジェクトに割り当てます。
これがお役に立てば幸いです!
他のヒント
レイヤー化された背景は、 CSS3 Working Draft の一部ですが、私の知る限り、それらのサポートはSafari、Chrome、Konqueror、OmniWebなどのWebKit / KHTMLベースのブラウザーに限定されています。
サンプルコードを使用すると、次のようになります。
body {
font-size: 62.5%; /* Resets 1em to 10px */
font-family: Verdana, Arial, Sans-Serif;
background-color: #9D5922;
color: #000;
margin-left: auto;
margin-right: auto;
margin: 0;
padding: 0;
background: url("images/top.gif") left bottom repeat,
url("images/desk.gif") left bottom repeat;
}
すでに重複した質問で解決策を投稿しましたが、この情報を必要とする可能性がある人のために、ここにも投稿します。
私が知る限り、同じレイヤーに置くことはできませんが、いくつかの画像を別々のdivに重ねることができ、人気のあるユーザビリティテストWebサイトによって実装されていますシルバーバック(背景がどのようにレイヤーされているかを確認してください)。ソースコードを見ると、背景が複数の画像で構成されており、それらの画像が互いに重なり合っていることがわかります。
効果の実行方法を示す記事は、ビタミン。これらの「オニオンスキン」レイヤーをラップする同様の概念は、 A List Apart にあります。
今日、これはすべての<!> quot; modern <!> quot;で実行できます。ブラウザ(<!> ltではなく、IE9、afaik)。 Firefox、Opera、Chromeで動作することを確認できます。古いブラウザ/ IEに適切なフォールバックソリューションがあれば、それをしない理由はありません。
構文については、次のいずれかを選択できます
background:url(..) repeat-x left top, url(..) repeat-x left bottom;
and
background-image:url(..), url(..); background-position:left top, left bottom; background-repeat:repeat-x;
改行は必要ありませんが、カンマは重要です。
注意!次の例では、画像URLを1つしか指定していなくても、2つの背景が作成されます。
background-image:url(..); background-position:top, bottom;
そしてもちろん、ネストされたコンテナを使用する代替手段がありますが、これはあなたのhtmlを膨張させます。
唯一の方法は、別のコンテナを使用することです。各要素には背景画像を1つだけ含めることができます。
絶対配置とz-indexを使用して、2番目の要素を一番上に取得します。
上記のリンクは、あなたが何をしているのかを最もよく説明しています...
HTML要素にスタイルを適用できることを忘れないでください:
html {
background: url(images/whatever.gif);
}