我有这个 Css 网格,带有网格项目,使用 chrome 我可以通过应用justify-items:center
或那种魔法轻松居中。
但是这个解决方案似乎在IE中不起作用,它一直被粘在左侧。
https://codepen.io/anon/pen/jjgmNX
.HTML:
<div class="grid-container">
<div class="item-1">1</div>
<div class="item-2">2</div>
<div class="item-3">3</div>
<div class="item-4">4</div>
</div>
.css:
.grid-container {
display: grid;
grid-template-columns: repeat(3,1fr);
grid-gap: 20px;
justify-items: center;
}
.item-1 {
background-color: rgba(200,520,266,.75);
border-color: #b4b4b4;
grid-column: 1;
grid-row: 1;
}
.item-2 {
background-color: rgba(145,520,0,.75);
grid-gap: 20px;
}
.item-3 {
background-color: rgba(145,520,0,.75);
grid-column: 3;
grid-row: 1;
}
.item-4 {
background-color: rgba(0,0,0,.25);
border-color: transparent;
grid-column: 2;
grid-row: 2;
}
如何居中子div - IE 和 chrome 都支持?
您可以使用flexbox而不是在浏览器上具有良好支持的网格。
.grid-container {
display: flex;
justify-items: center;
align-items: center;
flex-wrap: wrap;
}
.item-1 {
flex: 1 1 33.33%;
background-color: rgba(200,520,266,.75);
border-color: #b4b4b4;
}
.item-2 {
flex: 1 1 33.33%;
background-color: rgba(145,520,0,.75);
}
.item-3 {
flex: 1 1 33.33%;
background-color: rgba(145,520,0,.75);
}
.item-4 {
flex-basis: 33.33%;
/* important */
margin: auto;
background-color: rgba(0,0,0,.25);
border-color: transparent;
}
justify-items
在IE 中不支持 display: grid
. https://developer.mozilla.org/en-US/docs/Web/CSS/justify-items#Support_in_Grid_layout
标签汤的解决方法是让子容器带有 display:flex
,因为justify-items
支持这样做:或者只是只使用 flexbox。