我有一个 carousel ,它溢出了它的容器,以隐藏尚不可见的元素,这样它们就可以使用CSS进行动画处理.

我希望 carousel 中的每一列都是相同的宽度(等于列中最宽元素的宽度),而不考虑每个单独列中的内容.

我知道Flexbox可以做到这一点,每列有flex: 1个,但前提是容器有固定的宽度.但是,我想要它泛滥.有没有办法只用css就能做到这一点?

.container {
      position: absolute;
      display: flex;
      justify-content: center;
      align-items: center;
      /* left: -100px; */
    }
    
    .col {
      /* flex: 1; */
      flex-grow: 1;
    }

    .item {
      margin: 0.25rem;
      background-color: red;
      height: 100px;
      width: 100px;
    }

    .fat {
      width: 200px;
    }
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div class="container">
    <div class="col">
      <div class="item"></div>
    </div>
    <div class="col">
      <div class="item"></div>
    </div>
    <div class="col">
      <div class="item fat"></div>
    </div>
    <div class="col">
      <div class="item"></div>
    </div>
    <div class="col">
      <div class="item"></div>
    </div>
    <div class="col">
      <div class="item"></div>
    </div>
    <div class="col">
      <div class="item fat"></div>
    </div>
    <div class="col">
      <div class="item fat"></div>
    </div>
    <div class="col">
      <div class="item fat"></div>
    </div>
    <div class="col">
      <div class="item fat"></div>
    </div>
    <div class="col">
      <div class="item fat"></div>
    </div>
    <div class="col">
      <div class="item"></div>
    </div>
    <div class="col">
      <div class="item"></div>
    </div>
  </div>
</body>

</html>

推荐答案

Css网格可以做到这一点.您只需设置一个列流,并使所有列等于1fr.由于绝对元素的宽度计算,我不得不添加一个很大的负边距来允许元素尽可能地增长.

.container {
  position: absolute;
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 1fr;
  margin-right: -9999px;
}
.col {
  border: 1px solid blue;
}
.item {
  margin: 0.25rem;
  background-color: red;
  height: 100px;
  width: 100px;
  margin: auto;
}

.fat {
  width: 200px;
}
<div class="container">
  <div class="col">
    <div class="item"></div>
  </div>
  <div class="col">
    <div class="item"></div>
  </div>
  <div class="col">
    <div class="item fat"></div>
  </div>
  <div class="col">
    <div class="item"></div>
  </div>
  <div class="col">
    <div class="item"></div>
  </div>
  <div class="col">
    <div class="item"></div>
  </div>
  <div class="col">
    <div class="item fat"></div>
  </div>
  <div class="col">
    <div class="item fat"></div>
  </div>
  <div class="col">
    <div class="item fat"></div>
  </div>
  <div class="col">
    <div class="item fat"></div>
  </div>
  <div class="col">
    <div class="item fat"></div>
  </div>
  <div class="col">
    <div class="item"></div>
  </div>
  <div class="col">
    <div class="item"></div>
  </div>
</div>

Html相关问答推荐

为什么html复选框总是具有只读属性?

HTML横幅未正确对齐页面顶部

Vue.js复选框对齐问题:在表格单元格中居中复选框

在CSS中不保持圆形图像形状的边框半径属性

有没有可能设置div的边框宽度相对于其父宽度和高度?'

我如何 Select 外部html文件元素作为选项,并显示在一个div与jQuery?

连续的相同 colored颜色 单元格应位于同一列、网格框中

获取标准的Python脚本,以便使用FASK对网站进行Flask

如何制作带有粘性头和脚的可滚动车身

如何设计缠绕锚点元素的样式?

div 中的垂直中心表格

使用简单的 HTML 设计公司徽标和文本

我如何使用 html 在表格的单元格内实现下面显示的背景 colored颜色 加载器(请判断设计参考的图像链接)

在选项标签中如何添加Django模板的条件

CSS Grid 布局:1 大图和 3 小图

这两个CSS中的网格居中对齐内部盒子有什么区别?

CSS 网格跨度行到所有行

在 iPhone 上分隔 HTML 邮箱输入中的多个邮箱条目

shinydashboard 标题中的位置标题

在中心而不是边界处填充 svg 的背景