標題の通り、子要素にwidth100%を設定しているのに親要素との間に隙間ができてしまいます。
(正確には、デベロッパーツールで幅を拡大したり縮小したりすると、隙間ができたりできなかったり、ガタガタします。)
ちなみに、図の「おしらせ」と「ブログ」のcssは色以外はほぼ同じ構造ですが、
「おしらせ」の方のみこの隙間ができてしまいます。
この隙間の理由がわかる方いらっしゃいましたら、教えていただけないでしょうか?
ちなみに、動作確認はchrome最新バージョン: 77.0.3865.90(Official Build) (64 ビット)
で行っています。
全てのソースを載せておきます。(標題で言っている親要素のクラスはnews、子クラスはnews__headerとなります。)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <link rel="stylesheet" href="https://unpkg.com/ress/dist/ress.min.css"> <link rel="stylesheet" href="css/widget.css"> </head> <body> <section class="widget section"> <h3 class="section__ttl">Widget</h3> <div class="widget__inner"> <div class="news"> <div class="news__header"> <h4 class="news__header-ttl">おしらせ</h4> <a href="#" class="news__header-btn">more...</a> </div> <div class="news__body"> <ul class="news__list"> <li class="news__item"> <div class="news__meta"> <time class="news__meta-time">2019-01-30</time> <span class="news__meta-label">注目</span> </div> <p class="news__ttl">ニュースニュースニュースニュースニュース<br>ニュースニュースニュースニュース</p> </li> <li class="news__item"> <div class="news__meta"> <time class="news__meta-time">2019-01-30</time> <span class="news__meta-label">注目</span> </div> <p class="news__ttl">ニュースニュースニュースニュースニュース<br>ニュースニュースニュースニュース</p> </li> <li class="news__item"> <div class="news__meta"> <time class="news__meta-time">2019-01-30</time> <span class="news__meta-label">注目</span> </div> <p class="news__ttl">ニュースニュースニュースニュースニュース<br>ニュースニュースニュースニュース</p> </li> </ul> </div> </div> <div class="blog"> <div class="blog__header"> <h4 class="blog__header-ttl">ブログ</h4> <a href="#" class="blog__header-btn">more...</a> </div> <div class="blog__body"> <ul class="blog__list"> <li class="blog__item"> <div class="blog__meta"> <time class="blog__meta-time">2019-01-30</time> <span class="blog__meta-label">注目</span> </div> <p class="blog__ttl">ブログブログブログブログブログ<br>ブログブログブログブログ</p> </li> <li class="blog__item"> <div class="blog__meta"> <time class="blog__meta-time">2019-01-30</time> <span class="blog__meta-label">注目</span> </div> <p class="blog__ttl">ブログブログブログブログブログ<br>ブログブログブログブログ</p> </li> <li class="blog__item"> <div class="blog__meta"> <time class="blog__meta-time">2019-01-30</time> <span class="blog__meta-label">注目</span> </div> <p class="blog__ttl">ブログブログブログブログブログ<br>ブログブログブログニュース</p> </li> </ul> </div> </div> </div> </section> </body> </html>
//----------------------------------------------------- // 変数 //----------------------------------------------------- $c-main: #3f51b5; $c-sub: #e81919; $c-section: #efefef; $w-pc: 1086px; // PC $w-tab: $w-pc - 1; // タブレット $w-sp: 767px; // スマホ //----------------------------------------------------- // mixin //----------------------------------------------------- @mixin pc { @media (min-width: ($w-pc)) { @content; } } @mixin tab { @media (max-width: ($w-tab)) { @content; } } @mixin sp { @media (max-width: ($w-sp)) { @content; } } //----------------------------------------------------- // 共通 //----------------------------------------------------- html { font-size: 62.5%; } body { font-size: 1.4rem; font-family: "Yu Gothic Medium", "游ゴシック Medium", YuGothic, "游ゴシック体", "ヒラギノ角ゴ Pro W3", "メイリオ", sans-serif; background-color: white; color: #333333; } li { list-style: none; } a { text-decoration: none; } .wrapper { overflow: hidden; } //----------------------------------------------------- // お知らせ //----------------------------------------------------- .widget{ &__inner { margin: 0 auto; max-width: 100%; padding: 0 15px; width: 1050px; display: flex; overflow: hidden; @include pc { padding: 0; } @include sp { flex-direction: column; } } } .news{ flex-basis: calc(50% - 8px); border: 1px solid $c-main; border-radius: 4px; margin-right: 16px; &__header{ //width100%を指定しているにも関わらず、若干隙間が空く width: 100%; height: 60px; display: flex; justify-content: space-between; background-color: $c-main; padding: 15px 16px 15px 30px; &-ttl{ color: #ffffff; font-size: 2rem; font-weight: bold; } &-btn{ font-weight: bold; border-radius:5px; display: block; text-align: center; width: 100px; height: 30px; line-height: 30px; color:#333333; background-color: #fff; } } &__body{ padding: 24px 18px 27px 18.5px; } &__item{ display: flex; padding: 28.5px 0 10.5px; @include sp { flex-direction: column; } &:first-child{ padding-top: 0; } & + &{ border-top: 1px solid #707070; } } &__meta{ margin-right: 24px; display: flex; flex-direction: column; font-size: 1.6rem; font-weight: bold; @include sp { flex-direction: row; } align-items: flex-start; &-label{ margin-top: 5px; font-size: 1.2rem; background-color: #FEBB07; color: #ffffff; padding: 2px 8px; text-align: center; border-radius: 4px; @include sp { margin-left: 20px; margin-top: 0; } } } &__ttl{ font-size: 1.6rem; flex:1; line-height: 1.625; } } .blog{ flex-basis: calc(50% - 8px); border: 1px solid #B53F6E; border-radius: 4px; margin-right: 16px; @include sp{ margin-top: 50px; } &__header{ height: 60px; width: 100%; display: flex; justify-content: space-between; background-color: #B53F6E; padding: 15px 16px 15px 30px; &-ttl{ color: #ffffff; font-size: 2rem; font-weight: bold; } &-btn{ font-weight: bold; border-radius:5px; display: block; text-align: center; width: 100px; height: 30px; line-height: 30px; color:#333333; background-color: #fff; } } &__body{ padding: 24px 18px 27px 18.5px; } &__item{ display: flex; padding: 28.5px 0 10.5px; @include sp { flex-direction: column; } &:first-child{ padding-top: 0; } & + &{ border-top: 1px solid #707070; } } &__meta{ margin-right: 24px; display: flex; flex-direction: column; font-size: 1.6rem; font-weight: bold; @include sp { flex-direction: row; } align-items: flex-start; &-label{ margin-top: 5px; font-size: 1.2rem; background-color: #FEBB07; color: #ffffff; padding: 2px 8px; text-align: center; border-radius: 4px; @include sp { margin-left: 20px; margin-top: 0; } } } &__ttl{ font-size: 1.6rem; flex:1; line-height: 1.625; } }
回答1件
あなたの回答
tips
プレビュー