画像の左上の背景色(plum-親要素)に重なるように、同位置で子要素の画像(xxx.png)を同高さ左詰め中央で配置したいのですが、表示できません。原因と対処法がしりたいです。htmlに<img src=xxx は避けたいです。
よろしくお願いいたします。
html
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
省略
<title>ホームページ</title>
<link rel="stylesheet" href="cssA/styleA.css">
</head>
<body>
<div class="wrapper" >
<header class="container">
<div class="header-left">h-left
<div id="image1">image1</div>
</div>
<div class="header-center">h-center</div>
<div class="header-right">h-right</div>
</header>
<div class="main">main</div>
<footer class="footer">footer</footer>
</div>
</body>
</html>
CSS
@charset "utf-8";
/*全体の設定
---------------------------------------------------------------------------*/
.wrapper {
max-width: 1200px;
margin: 0 auto;
}
header {
background: tomato;
opacity: 0.7;
max-width: 1200px;
height: 150px;
margin-left: auto;
margin-right: auto;
}
.container {
display:flex;
flex-direction: row;
align-items: center;
flex-wrap: nowrap;
}
.header-left{
height: 150px;
width: 40%;
background:plum;
position: relative;
}
.header-center{
margin-left: auto;
margin-right: auto;
height: 150px;
width: 40%;
background:gold;
}
.header-right{
margin-left: auto;
margin-right: auto;
display:flex;
height: 150px;
width: 20%;
background:lime;
}
header-left #image1{
position:absolute;
top:0;
bottom:0;
margin:auto;
background-image:url("../images/xxx.png");
background-position:center;
background-size: contain;
background-repeat: no-repeat;
}
.main {
margin: 0 auto; /* 外側の余白:上下 左右; auto で左右センタリング */
box-sizing: border-box; /* 幅を padding も含めた幅にする */
max-width:1200px;
background: blue;
}
footer {
background:olive;
}
No.3ベストアンサー
- 回答日時:
denpataro さん
・・・・・子要素の画像(xxx.png)を同高さ左詰め中央で配置・・・・・・
「左詰め中央」の意味がよく分かりません・・・。
*仕上がり予定図の添付があると良いですね。
こういう事ですか。↓
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ホームページ</title>
<style>
@charset "utf-8";
.wrapper {
max-width: 1200px;
margin: 0 auto;
}
header {
background: tomato;
opacity: 0.7;
max-width: 1200px;
height: 150px;
margin-left: auto;
margin-right: auto;
}
.container {
display:flex;
flex-direction: row;
align-items: center;
flex-wrap: nowrap;
}
.header-left{
height: 150px;
width: 40%;
background:plum;
position: relative;
display: flex; justify-content: center; align-items: center;
}
.header-center{
margin-left: auto;
margin-right: auto;
height: 150px;
width: 40%;
background:gold;
}
.header-right{
margin-left: auto;
margin-right: auto;
display:flex;
height: 150px;
width: 20%;
background:lime;
}
#image1{ /* header-center 削除 */
/* この間変更
position:absolute;
top:0;
bottom:0;
margin:auto;
background-image:url("../images/xxx.png");
background-position:center;
background-size: contain;
background-repeat: no-repeat;
*/
width: 60%; height: 100%; /* width は適宜調整 */
background-image:url("https://oshiete.xgoo.jp/images/v2/common/profile …
background-size: 100% 100%;
}
.main {
margin: 0 auto; /* 外側の余白:上下 左右; auto で左右センタリング */
box-sizing: border-box; /* 幅を padding も含めた幅にする */
max-width:1200px;
background: blue;
}
footer {
background:olive;
}
</style>
</head>
<body>
<div class="wrapper" >
<header class="container">
<div class="header-left">
<div id="image1">h-left - image1</div>
</div>
<div class="header-center">h-center</div>
<div class="header-right">h-right</div>
</header>
<div class="main">main</div>
<footer class="footer">footer</footer>
</div>
</body>
</html>
No.2
- 回答日時:
No1です。
>文字サイズの画像を大きくしないといけませんが~~
#image1の要素の目的がわかりませんけれど、CSSでwidthを指定すれば、指定のサイズになります。
何をなさりたいのか実際のところが不明なので、よくわかりませんけれど・・
もしも、背景画像だけを大きくしたいのなら、背景画像は元の要素のサイズを超えて表示することは不可能です。(あくまでも「背景」なので・・)
#image1の要素の内容がテキスト(=ご提示の例ではimage1)だけ、あるいは何もなく背景画像を表示するためだけの要素であるなら、背景画像を#image1に設定する必要はないのかも知れません。
親要素(=.header-left)の背景画像として設定しておけば、それで済む話なのかもしれない気もします。
No.1
- 回答日時:
こんばんは
>header-left #image1{ ~~~
で指定しているのだと想像しますけれど、「header-left」はクラス名なので「.header-left」としないとこの指定全体が適用されません。
(ご提示の状態は、適用されていない状態だと想像されます)
更には、idで指定しているので、「.header-left」も不要ですね。
(詳細度を調整するために、付加している ならそれでもよいですが・・)
>同高さ左詰め中央で配置したい
親要素と同じ高さということですよね?
「左詰め中央」の意味が不明ですが、「left:0;」で左詰めにはできるでしょうから、左右中央配置になさりたいものと勝手に推測してみました。
#image1{
position: absolute;
top: 0;
left: 50%; transform: translateX(-50%);
height: 100%;
}
などとすることで、#image1要素は親要素と同じ高さで左右中央に表示されると思います。
※ 幅は指定していませんので、内包要素の内容によって幅が決まります。
(ご提示の例では、文字列の「image1」の幅になります)
※ #image1内のレイアウトを指定したければ、更に、レイアウトを追加してください。
(上記は無指定なので、通常の上詰めのレイアウトになるはずです)
※ 上記で決まる要素サイズに対して、背景画像が表示されることになりますが、背景画像をどのようにレイアウトしたいのか不明なので、こちらではわかりかねます。
background-position
background-size
などの、指定内容によって調節してください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS ボックスを中央配置したいです。 2 2023/09/19 17:09
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS htmltとcssのコードで 1 2022/11/26 13:37
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
テーブル内の画像をマウスオー...
-
Media Queries 4 で 非推奨とな...
-
divで囲まれたpaddingの指定を...
-
CSS、width100%でもできる余白
-
Flexslider2のカーセルスライダ...
-
CSSの角丸での質問です。 今、C...
-
CSSでbackground-colorがうまく...
-
ラジオボタンの大きさを変更し...
-
メディアクエリで文字サイズを...
-
CSSでリスト横並び…そしてそれ...
-
CSS3で角丸写真にシャドーを付...
-
ライトボックスでスクロールバー
-
CSSを使い、ページの一番下に文...
-
position:fixed;でメニューを右...
-
safariでの横並びリスト(List...
-
cssで「下よせ」ってどうやって...
-
余分な縦スクロールバーが出て...
-
固定幅で3カラムの記述方法を教...
-
【CSS】ヘッダーの高さが不明の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
画像イメージの上下左右、欲し...
-
css初心者 フレックスボックス...
-
表示倍率を変えるとレイアウト...
-
CSSがなぜかfont-sizeだけ効か...
-
CSS、width100%でもできる余白
-
W3Cのソースコードの検証サービ...
-
CSS:animation開始位置の設定
-
CSSで指定した背景画像にリンク...
-
<div>と<div>の間の10px程の...
-
余分な縦スクロールバーが出て...
-
CSSでボックスのheightが0になる
-
【CSS】ヘッダーの高さが不明の...
-
スクロールボックスを中央に配...
-
li 黒丸含んで移動する方法
-
border-style:solidで文字がずれる
-
【HTML&CSS】フッター下部の余...
-
Media Queries 4 で 非推奨とな...
-
初心者html・CSS ウィンドウを...
おすすめ情報
説明が悪かったため、補足します。完成形の画像(仮の画像)を添付しました。(本番はロゴです)が、左詰めで、ヘッダーのh-leftの高さ中央に表示します。レイアウトの崩れを把握しやすいように背景色は完成までそのままで、画像を原寸でh-left(プラム色)に収まるように配置したいです。画像上乗せでも、h-leftに入れ込んでもかまいませんが、色は残します。文字image1は消したいです。