web-dev-qa-db-ja.com

Html / Css-コンテナーの幅を100%拡大する画像を取得し、その上に別の画像を表示する方法

私が一緒に考えているヘッダーのレイアウトを取得するのに苦労しています。

これまでのhtmlは次のとおりです。

<div id="header">
    <img src="/img/headerBg.jpg" alt="" class="headerBg" />
    <a href="/"><img src="/img/logo.png" alt="Logo" class="logo" /></a>
    <div id="loginBox">
        other code
    </div>
</div>

そして、これまでのCSS:

#header {
    height: 130px;
    margin: 5px 5px 0 5px;
    border: #0f0f12 outset 2px;
    border-radius: 15px;
}

#loginBox {
    float: right;
    width: 23.5%;
    height: 128px;
    font-size: 75%;
}

.headerBg {

}

.logo {
    width: 50%;
    height: 120px;
    float: left;
    display: block;
    padding: 5px;
}

私が達成しようとしているのは、「headerBg.jpg」という画像をdiv「header」の幅の100%に表示することです。したがって、本質的にはdiv自体の背景になります。次に、画像「logo.png」とdiv「loginBox」を「headerBg.jpg」の上に表示します。

ロゴは、CSSのように、左端に浮かび、loginBoxを右端に浮かせます。

画像を削除すると、ロゴとdivは正しく配置されますが、画像が導入されると、フロー内の画像の後に2つの浮動アイテムが配置されます。

私はさまざまな追加や再構成を試みましたが、どれも私が望むように動作することを証明していません。

Cssの画像をヘッダーdivの背景として追加しましたが、そのように100%伸縮しません。

誰でもこれに関する洞察を提供できますか?

また、このようなことをカバーするチュートリアルは、私のコレクションへの素晴らしい追加になるでしょう!

ありがとうございました!

13
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8" />
    <title>Render this</title>
    <style type="text/css">
#header {
    position:relative;
    height: 130px;
    margin: 5px 5px 0 5px;
    border: #0f0f12 outset 2px;
    border-radius: 15px;
}

#loginBox {
    position:relative;
    float: right;
    width: 23.5%;
    height: 128px;
    font-size: 75%;

}

.headerBg {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: -1;
}

.logo {
    position:relative;
    width: 50%;
    height: 120px;
    float: left;
    display: block;
    padding: 5px;
}
    </style>
</head>
<body>
<div id="header">
    <img src="img/headerBg.jpg" alt="" class="headerBg" />
    <a href="/"><img src="img/logo.png" alt="Logo" class="logo" /></a>
    <div id="loginBox">
        other code
    </div>
</div>

</body>
</html>
10
chadpeppers
.header {
    position: relative;
}

.headerBg {
    position: absolute;
    left: 0px;
    right: 0px;
    width: 100%;
}

これにより、<div>の幅に合わせて画像が拡大縮小されることに注意してください。水平方向にのみサイズを変更する場合は、高さを明示的に設定する必要があります。

大きなウィンドウでのみ画像を拡大したい場合は、max-width: 100%;を試すこともできます。

3
Neil

ヘッダーの背景画像をそのdivの真の背景にします。 Floatは、position:absoluteのように他のオブジェクトを無視しません。

#header {
    height: 130px;
    margin: 5px 5px 0 5px;
    border: #0f0f12 outset 2px;
    border-radius: 15px;
    background: url(headerBg.jpg);
}
0
mxniu

余分なパーツを表示しないdivクラスを設定します。

div {
overflow: hidden;
}
0
fahomid

これらの設定は私にとって完璧に機能しました。

#headerBg {
position: absolute;
top: 0px;
left: 0px;
right: 0px;
width: 100%;
height: 100%;

}

0
NICK