CSS网格行高度一致

wbgh16ku  于 2023-05-02  发布在  其他
关注(0)|答案(1)|浏览(108)

我正在创建一个简单的CSS网格。第一行是两列,一列是标题,另一列是图像。然后第二行包含跨越两列的所有内容。
我遇到的问题是标题和图像的高度不同(第1行:边框底部不是内联的)。
由于图像的高度设置得很小,我不知道为什么第1行第2列会这么大。任何建议,让它相同的高度行1列1只使用CSS(我有有限的能力来调整html)。
https://jsfiddle.net/05jsnmvz/
片段:

@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;900&family=Source+Sans+Pro&display=swap');
:root {
  --title: #3c3b3b;
  --secondarytext: #5b5b66;
  --maintext: #646464;
  --cardbg: #fff;
  --pagebg: #f4f4f4;
  --borders: 1px solid #e6e6e6;
}

*,
::before,
::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  scroll-behavior: smooth;
}

html {
  font-family: 'Source Sans Pro';
  font-size: 12pt;
  line-height: 1.5;
  background: var(--pagebg);
}

body {
  width: 70%;
  width: 120ch;
  margin: 5% auto;
  border: var(--borders);
  background: var(--cardbg);
  color: var(--maintext);
}

#content {
  display: grid;
  grid-template-columns: 3fr 1fr;
}

.title {
  grid-row: 1;
  grid-column: 1;
  font-family: 'Raleway';
  text-transform: uppercase;
  letter-spacing: 0.5rem;
  font-size: 150%;
  font-weight: bold;
  text-align: left;
  color: var(--title);
  padding: 3rem 3rem;
  padding-top: 4rem;
  margin-bottom: 3rem;
  border-bottom: var(--borders);
}

.title .subtitle {
  font-size: 50%;
  letter-spacing: 0.2rem;
  color: var(--secondarytext);
  font-weight: normal;
}

#thumbnail {
  grid-row: 1;
  grid-column: 2;
  border-bottom: var(--borders);
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

#thumbnail img {
  max-height: 4rem;
  max-width: 4rem;
}

.article {
  grid-column: 1 / span 2;
  padding: 0rem 3rem;
}

p {
  margin-bottom: 1.5rem;
}
<div id="content" class="content">
  <h1 class="title">My Title
    <br>
    <span class="subtitle">April 2023</span>
  </h1>
  <div id="thumbnail">
    <img src="https://placekitten.com/g/200/200">
  </div>

  <div class="article">
    <p>
      Main content here.
    </p>
  </div>
</div>
bzzcjhmw

bzzcjhmw1#

只需将margin-bottom: 48px;添加到#thumbnail,就像您对.title所做的那样。
请参见下面的片段。

@import url('https://fonts.googleapis.com/css2?family=Raleway:wght@400;900&family=Source+Sans+Pro&display=swap');
:root {
  --title: #3c3b3b;
  --secondarytext: #5b5b66;
  --maintext: #646464;
  --cardbg: #fff;
  --pagebg: #f4f4f4;
  --borders: 1px solid #e6e6e6;
}

*,
::before,
::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  scroll-behavior: smooth;
}

html {
  font-family: 'Source Sans Pro';
  font-size: 12pt;
  line-height: 1.5;
  background: var(--pagebg);
}

body {
  width: 70%;
  width: 120ch;
  margin: 5% auto;
  border: var(--borders);
  background: var(--cardbg);
  color: var(--maintext);
}

#content {
  display: grid;
  grid-template-columns: 3fr 1fr;
}

.title {
  grid-row: 1;
  grid-column: 1;
  font-family: 'Raleway';
  text-transform: uppercase;
  letter-spacing: 0.5rem;
  font-size: 150%;
  font-weight: bold;
  text-align: left;
  color: var(--title);
  padding: 3rem 3rem;
  padding-top: 4rem;
  margin-bottom: 3rem;
  border-bottom: var(--borders);
}

.title .subtitle {
  font-size: 50%;
  letter-spacing: 0.2rem;
  color: var(--secondarytext);
  font-weight: normal;
}

#thumbnail {
  grid-row: 1;
  grid-column: 2;
  border-bottom: var(--borders);
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 48px; /* Added */
}

#thumbnail img {
  max-height: 4rem;
  max-width: 4rem;
}

.article {
  grid-column: 1 / span 2;
  padding: 0rem 3rem;
}

p {
  margin-bottom: 1.5rem;
}
<html>

<body>

  <div id="content" class="content">
    <h1 class="title">My Title
      <br>
      <span class="subtitle">April 2023</span>
    </h1>
    <div id="thumbnail">
      <img src="https://placekitten.com/g/200/200">
    </div>

    <div class="article">
      <p>
        Main content here.
      </p>
    </div>
  </div>

</body>

</html>

相关问题