arc*_*col 4 css vertical-alignment css-grid
我想要一个巨大的进度栏,该进度栏在CSS网格内垂直对齐。
问题是CSS网格内的垂直对齐对我不起作用。我在Firefox和Chrome上都尝试过。
我试过了vertical-align: middle,但是没有用。我已经在网格项目中放置了一个Flexbox,但是仍然无法正常工作。
这是我的最小示例:
.wrapper {
display: grid;
border-style: solid;
border-color: red;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: repeat(4, 1fr);
grid-gap: 10px;
width: 100vw;
height: 100vh;
}
.one {
border-style: solid;
border-color: blue;
grid-column: 1 / 3;
grid-row: 1 / 2;
}
.two {
border-style: solid;
border-color: yellow;
grid-column: 1 / 3;
grid-row: 2 / 4;
}
.three {
border-style: solid;
border-color: violet;
grid-column: 1;
grid-row: 4 / 5;
}
.four {
border-style: solid;
border-color: aqua;
grid-column: 2;
grid-row: 4 / 5;
}
progress {
width: 100%;
background-color: #f3f3f3;
border: 0;
height: 2em;
}Run Code Online (Sandbox Code Playgroud)
<div class="wrapper">
<div class="one">One</div>
<div class="two">
<div class="vertical">
<progress max="100" value="80">
<div class="progress-bar">
<span style="width: 80%;">Progress: 80%</span>
</div>
</progress>
</div>
</div>
<div class="three"> Three</div>
<div class="four">Four</div>
</div>Run Code Online (Sandbox Code Playgroud)
演示:https: //codepen.io/anon/pen/OOpdPW
如何在上面的演示项目中垂直对齐进度栏(在其网格项内)?
您是否总是忘记如何使用 CSS Grid 在 div 中垂直对齐元素?不要感到孤独,因为我也是,而且我总是在这里结束。本质上,这两个属性可以应用于包含需要垂直居中的元素的 div:
.some-class {
display: grid;
align-items: center;
}
Run Code Online (Sandbox Code Playgroud)
这是一个JSFiddle示例,供任何对这些属性如何工作感到好奇的人使用。
资源
对于Flexbox解决方案,您必须添加display:flex和align-items: center到.two,因此CSS变为:
.two {
border-style: solid;
border-color: yellow;
grid-column: 1 / 3;
grid-row: 2 / 4;
display: flex;
align-items: center;
}
Run Code Online (Sandbox Code Playgroud)
然后添加flex: 1到.vertical:
.vertical {
flex: 1
}
Run Code Online (Sandbox Code Playgroud)
这是完整的代码:
.two {
border-style: solid;
border-color: yellow;
grid-column: 1 / 3;
grid-row: 2 / 4;
display: flex;
align-items: center;
}
Run Code Online (Sandbox Code Playgroud)
.vertical {
flex: 1
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8127 次 |
| 最近记录: |