現在コーポレートサイトの模写を行っています。
会社情報をdl,dt,ddタグを使って書いており、pc表示ではdt,ddタグをflexboxで横並び&flex-wrap:wrapでそれぞれの項目ごとに改行されるよう調整、スマホ表示の際はflex-direction:columnを指定し縦並びになるようにしています。
HTML
1<section id="company" class="wrapper"> 2 <div class="about-company"> 3 <h2 class="flex-title"> 4 <span class="title-en">COMPANY</span> 5 <span class="title-ja">会社情報</span> 6 </h2> 7 8 <dl> 9 <dt>会社名</dt> 10 <dd>ウェブエンターテインメントデザイン株式会社</dd> 11 <dt>所在地</dt> 12 <dd>東京都渋谷区桜丘町99-9 West Building 3F</dd> 13 <dt>代表</dt> 14 <dd>xxxxxx</dd> 15 <dt>設立</dt> 16 <dd>2021年1月1日</dd> 17 <dt>資本金</dt> 18 <dd>3,000,000円</dd> 19 <dt>事業内容</dt> 20 <dd>Web制作・マーケティング</dd> 21 <dd class="add">インターネットメディア事業</dd> 22 <dd class="add">プロモーション企画・制作</dd> 23 <dd class="add">ソーシャル企画・運営</dd> 24 </dl> 25 </div> 26 27 <div class="company-img"> 28 <img src="img/company.jpg" alt=""> 29 </div> 30 </section>
css
1.wrapper { 2 width: 100%; 3 max-width: 1032px; 4 padding: 0 16px; 5 margin: 0 auto; 6} 7 8#company { 9 position: relative; 10 display: flex; 11 align-items: center; 12 height: 750px; 13} 14 15#company .about-company { 16 background-color: #fff; 17 position: absolute; 18 width: 55%; 19 top: 0; 20 left: 0; 21 padding: 100px 8% 100px 6%; 22} 23 24#company .company-img { 25 position: absolute; 26 /* height: 400px; */ 27 width: 53%; 28 top: 115px; 29 right: 0; 30} 31 32#company .company-img img { 33 height: 400px; 34 width: 100%; 35 object-fit: cover; 36} 37 38#company .about-company dl { 39 display: flex; 40 /* justify-content: space-between; */ 41 flex-wrap: wrap; 42 align-items: center; 43} 44 45#company .about-company dt { 46 width: 20%; 47 margin-top: 10px; 48} 49 50#company .about-company dt:first-of-type { 51 margin-top: 0; 52} 53 54#company .about-company dd { 55 width: 80%; 56 margin-top: 10px; 57} 58 59#company .about-company dd:first-of-type { 60 margin-top: 0; 61} 62 63#company .about-company .add { 64 margin-left: 20%; 65} 66 67@media (max-width: 900px) { 68 69#company .about-company { 70 /* background-color: #fff; */ 71 position: static; 72 width: 100%; 73 padding: 40px 20px; 74 margin-bottom: 20px; 75 } 76 77 #company .company-img { 78 position: static; 79 /* height: 400px; */ 80 width: 100%; 81 padding: 0; 82 /* top: 0px; */ 83 /* right: 0px; */ 84 } 85 86 #company { 87 position: static; 88 flex-direction: column; 89 /* align-items: center; */ 90 height: auto; 91 } 92 93 #company .about-company dl { 94 flex-direction: column; 95 /* align-items: flex-start; */ 96 } 97 98 #company .about-company dt { 99 width: 100%; 100 margin-top: 20px; 101 } 102 103 #company .about-company dd { 104 width: 100%; 105 margin-top: 5px; 106 padding-left: 14px; 107 } 108 109 #company .about-company dd:first-of-type { 110 margin-top: 5px; 111 } 112 113 #company .about-company .add { 114 margin-left: 0; 115 } 116 117}
スマホ表示部分のコーディングを行っている時、
columnにした後dt,ddのwidthを100%に指定すると、dlの幅からdt,ddが右側にはみ出てしまいました。
確認したところ、pc表示の方で入れていた、最後のdd(class名.add)につけている
css
1#company .about-company .add { 2 margin-left: 20%; 3}
が原因のようで、スマホ表示の方で
css
1#company .about-company .add { 2 margin-left: 0; 3 }
を入れると改善されました。
なぜ最後の3つのddにmargin-leftがついているだけなのに、一番上からの全てのdt,ddに影響を与えたのでしょうか?
最後の3つの部分だけはみ出すのはなんとなく分かるのですが、すべてがはみ出す状態が理解できません・・
ちなみにpc表示の方でflex-wrap:wrap;と指定している状態はスマホ表示でもそのまま生かしており、これを消してみると最後の3つだけがはみ出している状態になりました。
flex-direction:columnにしている状態も関係しているのかな?とは思うのですが、なかなか理解が追い付きません。
理由をご説明いただけると助かります。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/17 21:19