質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

4回答

720閲覧

重なりのあるコーディングに関して

katsumi_garden

総合スコア17

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/09/15 10:04

編集2020/09/15 13:28

多層のデザインを実現するときのコーディングの考え方

イメージ説明
このようなデザインを作成するときのコーディングの構成の仕方を知りたいです。

<div class="main_box"> <div class="ph_box"><img href="写真"></div> <div class="contents_box"> <dl class="main_word"> <dt>サブタイトル</dt> <dd>本文テキスト本文テキスト</dd> </dl> </div> </div>

html

main_wordの本文部分を画面のセンターにして、 contents_boxの白背景が左側だけズレて写真にかぶるような構成にしたいのですが、 CSSをどう記述するのがスマートでしょうか。 CSSはまだ記述していないのです。 かなり初歩的な質問になるかもしれませんが、 アドバイスいただけると助かります。 何卒宜しくお願いいたします。 /////////////////////////// 追記 画面はレスポンシブ想定となりますので、 写真エリア、contents_boxも左右に伸びます。 ご助力いただけますと助かります。 宜しくお願いします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hatena19

2020/09/15 14:02

とりあえず現状のCSSコードも提示してください。その上でどの部分が想定と違うのか追記してください。 現状では丸投げの質問に等しいので、推奨されない質問になってます。 推奨していない質問|teratail(テラテイル) https://teratail.com/help/avoid-asking
guest

回答4

0

ophiacodon様、hatena19様
具体的でない状態での質問に、丁寧に解説いただきありがとうございます。
上記で示していただいた考え方で、対応できました。
ありがとうございました。

投稿2020/09/15 20:12

katsumi_garden

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

背景画像は画面幅一杯に広げるのでしょうか。
その前提で回答します。
(画面幅一杯に広げない場合は、.main_box に幅を設定すればいいでしょう。)

背景画像は、レスポンシブ対応にするにはCSSのbackgroundで設定したほうが自由度が高いでしょう。

contents_box を写真にかぶせるには、ネガティブマージンを使うといいでしょう。

左側だけ背景を白にするのは contents_box の背景をlinear-gradientで左半分を白、右半分は透明にしました。幅は100%です。

.main_word に幅を設定して中央寄せして、背景を白にします。

html

1<div class="main_box"> 2 <h1>タイトル</h1> 3 <div class="ph_box"> 4 </div> 5 <div class="contents_box"> 6 <dl class="main_word"> 7 <dt>サブタイトル</dt> 8 <dd>本文テキスト本文テキスト</dd> 9 </dl> 10 </div> 11</div>

css

1h1 { 2 text-align: center; 3} 4.ph_box { 5 width: 100%; 6 height: 400px; 7 background: center / cover url(画像パス) 8} 9.contents_box { 10 margin-top: -5rem; 11 background: linear-gradient(to right, white 50%, rgba(255,255,255,0) 50%); 12 width: 100%; 13} 14 15.main_word { 16 max-width: 800px; 17 margin: 0 auto; 18 background-color: white; 19 padding: 1rem; 20} 21dt { 22 font-size: 2rem; 23 line-height: 3rem; 24 border-bottom: 3px solid; 25} 26dd { 27 padding: 1rem 0; 28}

CodePenサンプル

投稿2020/09/15 15:41

編集2020/09/15 15:43
hatena19

総合スコア34075

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

position 属性はいじらずに、contents_box にネガティブマージンを設定するという方法もあります。

CSS

1#contents_box { 2 background:antiquewhite; 3 margin-top:-50px; 4 width:600px; 5 height:500px; 6 padding:50px 10px 10px 100px; 7}

投稿2020/09/15 15:26

編集2020/09/15 15:27
ophiacodon

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

そのまま貼っつけてください。
ポイントは

position: relative;
position: absolute;

でしょうか。

html

1<!DOCTYPE html> 2<html lang="ja"> 3<HEAD> 4<meta charset="UTF-8"> 5<meta name="viewport" content="width=960"> 6<title>TEST</title> 7<style> 8* { padding:0;margin:0;box-sizing: border-box;} 9html,body{ 10 background:#eee; 11 height:100%; 12 width:100%; 13 font-family:unset; 14 letter-spacing:0.1em; 15 font-size:12px 16} 17h1{ 18 font-size:3rem; 19 line-height:6rem; 20 text-align:center; 21 background:white; 22 width:800px; 23 margin:0 auto; 24} 25#main_box { 26 background:white; 27 width:800px; 28 margin:0 auto; 29 position:relative; 30} 31#ph_box { 32 height:300px; 33 background:linear-gradient(blue 0%, cyan 100%); 34} 35#contents_box { 36 position:absolute; 37 top:250px; 38 background:white; 39 width:600px; 40 padding:50px 10px 10px 100px; 41} 42dt { 43 font-size: 2rem; 44 line-height: 3rem; 45 border-bottom:3px solid black; 46} 47dd { 48 padding: 1rem 0; 49} 50</style> 51</HEAD> 52<body> 53<h1>タイトル</h1> 54<div id="main_box"> 55 <div id="ph_box"></div> 56 <div id="contents_box"> 57 <dl id="main_word"> 58 <dt>サブタイトル</dt> 59 <dd>本文テキスト</dd> 60 </dl> 61 </div> 62</div> 63</body> 64</html>

投稿2020/09/15 11:18

ophiacodon

総合スコア24

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

katsumi_garden

2020/09/15 13:25

ダミーで作成したものに丁寧にコードいただきありがとうございます。 ただページは幅固定でなくて、レスポンシブ想定でした。(そのことも記載しておけばよかったです。) なので、main_wordエリアは真ん中にあって、左エリアだけ、白い部分が伸びる形にしたいです。
ophiacodon

2020/09/15 13:37

ちょっと意味が汲み取れません。 幅はレスポンシブとのことですが、幅を規定するコンテンツは何ですか? また、幅とは無関係に position 属性を適用することで重ねることは可能です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問