CSS 使用 span 的网格样式问题 - 使用 align-self 时发生变化
CSS Grid styling question using span - changes when using align-self
我有一个网格,其中有两列和三行,但第一列横跨所有 3 行。第一列包含文本,第二列包含 3 行文本,每行一行。
我希望第 1 列的高度与基于网格内容项的背景颜色的第 2 列的高度相匹配。
如果我很高兴 left-hand 列在 3 行的顶部对齐,则此方法工作正常。但是当我尝试使用 align-self 使其垂直对齐时,背景颜色会缩小以仅覆盖单行。
也许JSFiddle会比我描述的更清楚
HTML:
<div class="wrapper">
<div class="box title1">Text</div>
<div class="box">Question 1</div>
<div class="box">Question 2</div>
<div class="box">Question 3</div>
<div class="wide"> </div>
<div class="box title2">Text</div>
<div class="box">Question 1</div>
<div class="box">Question 2</div>
<div class="box">Question 3</div>
</div>
CSS:
body {
margin: 20px;
font-family: "Garamond", "Times New Roman", serif;
}
.box {
background-color: lightgrey;
padding: 5px;
}
.wrapper {
display: grid;
grid-template-columns: 8em 8em;
}
.wide {
grid-column: span 2;
}
.title1 {
grid-row: span 3;
font-size: 150%;
font-weight: bold;
}
.title2 {
grid-row: span 3;
align-self: center;
font-size: 150%;
font-weight: bold;
}
如何让标签垂直对齐,同时背景颜色高度匹配?我尝试添加属性,如“height:100%;”到第二个标题,但一切都以略有不同的方式中断。我正在使用 Firefox,但当然我想要尽可能合理的 cross-browser 解决方案。
创建元素 display:flex
然后 align-items:center
body {
margin: 20px;
font-family: "Garamond", "Times New Roman", serif;
}
.box {
background-color: lightgrey;
padding: 5px;
}
.wrapper {
display: grid;
grid-template-columns: 8em 8em;
}
.wide {
grid-column: span 2;
}
.title1 {
grid-row: span 3;
font-size: 150%;
font-weight: bold;
}
.title2 {
grid-row: span 3;
display: flex;
align-items: center;
font-size: 150%;
font-weight: bold;
}
<div class="wrapper">
<div class="box title1">Text</div>
<div class="box">Question 1</div>
<div class="box">Question 2</div>
<div class="box">Question 3</div>
<div class="wide"> </div>
<div class="box title2">Text</div>
<div class="box">Question 1</div>
<div class="box">Question 2</div>
<div class="box">Question 3</div>
</div>
我有一个网格,其中有两列和三行,但第一列横跨所有 3 行。第一列包含文本,第二列包含 3 行文本,每行一行。
我希望第 1 列的高度与基于网格内容项的背景颜色的第 2 列的高度相匹配。
如果我很高兴 left-hand 列在 3 行的顶部对齐,则此方法工作正常。但是当我尝试使用 align-self 使其垂直对齐时,背景颜色会缩小以仅覆盖单行。
也许JSFiddle会比我描述的更清楚
HTML:
<div class="wrapper">
<div class="box title1">Text</div>
<div class="box">Question 1</div>
<div class="box">Question 2</div>
<div class="box">Question 3</div>
<div class="wide"> </div>
<div class="box title2">Text</div>
<div class="box">Question 1</div>
<div class="box">Question 2</div>
<div class="box">Question 3</div>
</div>
CSS:
body {
margin: 20px;
font-family: "Garamond", "Times New Roman", serif;
}
.box {
background-color: lightgrey;
padding: 5px;
}
.wrapper {
display: grid;
grid-template-columns: 8em 8em;
}
.wide {
grid-column: span 2;
}
.title1 {
grid-row: span 3;
font-size: 150%;
font-weight: bold;
}
.title2 {
grid-row: span 3;
align-self: center;
font-size: 150%;
font-weight: bold;
}
如何让标签垂直对齐,同时背景颜色高度匹配?我尝试添加属性,如“height:100%;”到第二个标题,但一切都以略有不同的方式中断。我正在使用 Firefox,但当然我想要尽可能合理的 cross-browser 解决方案。
创建元素 display:flex
然后 align-items:center
body {
margin: 20px;
font-family: "Garamond", "Times New Roman", serif;
}
.box {
background-color: lightgrey;
padding: 5px;
}
.wrapper {
display: grid;
grid-template-columns: 8em 8em;
}
.wide {
grid-column: span 2;
}
.title1 {
grid-row: span 3;
font-size: 150%;
font-weight: bold;
}
.title2 {
grid-row: span 3;
display: flex;
align-items: center;
font-size: 150%;
font-weight: bold;
}
<div class="wrapper">
<div class="box title1">Text</div>
<div class="box">Question 1</div>
<div class="box">Question 2</div>
<div class="box">Question 3</div>
<div class="wide"> </div>
<div class="box title2">Text</div>
<div class="box">Question 1</div>
<div class="box">Question 2</div>
<div class="box">Question 3</div>
</div>