html - 在 CSS 中居中内容同时支持 IE 和 chrome

标签 html css google-chrome internet-explorer-11 css-grid

我有这个 Css 网格,带有网格项,我可以通过应用 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;
}

关于html - 在 CSS 中居中内容同时支持 IE 和 chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57059675/

相关文章:

javascript - 单击按钮时从数组中交换图像

css - IE11 和 Safari 上的 Flexbox 布局中的文本重叠

html - 制作成比例的vimeo iframe

javascript - 当开发者控制台在 chrome 中打开时,为什么 onmouseover 停止工作?

html - 除非存在其他样式,否则最小高度样式不适用于按钮

html - 仅限 IE7 和 Chrome 页面底部的空白

jquery - 当菜单在 Bootstrap 中折叠时删除类

css - 在div中自动居中超大图像

返回错误时的 HTML 表单验证

css - 使文本跳到下面的图像而不是在移动设备上换行