html - 我如何使用 flexbox 来实现具有垂直对齐列和斑马纹阴影的表格外观?

标签 html css flexbox

我正在使用以下内容来使用 flexbox 实现垂直对齐的列:

jsFiddle

.container {
  display: flex;
  flex-direction: row;
}
.column {
  display: flex;
  flex-direction: column;
  margin: 0.3em;
}
.column > div:first-child {
  font-weight: bold;
}
<div class='container'>
  <div class='column'>
    <div>food</div>
    <div>beans</div>
    <div>macademia nuts salted and coated with caramel</div>        
  </div>
  <div class='column'>
    <div>comments</div>
    <div>beans</div>
    <div>excellent nutrition</div>                
  </div>
  <div class='column'>
    <div>price</div>
    <div>3$</div>
    <div>20$</div>                
  </div>            
</div>

...上面的效果很好,但是当我尝试添加斑马纹时,颜色之间的边距变得可见,如图所示 in this jsfiddle .

如何使用 flexbox 实现具有垂直对齐列和斑马纹阴影的表格外观?

最佳答案

使用 padding 代替 margin

仅对内部列应用填充:

/* KEY RULE */
.column + .column > div {
  padding-left: 2em;
}

/* ORIGINAL CODE */
.container {
  display: flex;
  flex-direction: row;
}
.column {
  display: flex;
  flex-direction: column;
}
.column > div:first-child {
  font-weight: bold;
}
.column > div:nth-child(odd) {
  background: #dddddd;
}
<div class='container'>
  <div class='column'>
    <div>food</div>
    <div>beans</div>
    <div>macademia nuts salted and coated with caramel</div>
  </div>
  <div class='column'>
    <div>comments</div>
    <div>beans</div>
    <div>excellent nutrition</div>
  </div>
  <div class='column'>
    <div>price</div>
    <div>3$</div>
    <div>20$</div>
  </div>
</div>

关于html - 我如何使用 flexbox 来实现具有垂直对齐列和斑马纹阴影的表格外观?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41252708/

相关文章:

html - 具有两个等高列且一列有两行的布局

javascript - 为 Web 开发人员自动部署、刷新(清除缓存)和重新加载代码

html - SASS/CSS 多色轮

javascript - 如何将版本号添加到 HTML 文件(不仅是 css 和 js 文件)

插件更改页面后 HTML 布局和 CSS 不合适

css - 如何在使用 grails 时对齐 gsp 中的一个部分中的元素

html - 如何实现缩小的等高图像列

CSS flex 属性不适用于 Angular 4

javascript - 使导航项在事件时改变颜色

html - 为什么视频与容器重叠?