javascript - 是否可以在不借助 Javascript 的情况下做到这一点?

标签 javascript css

This demothis article 一起,简洁地描述了我需要做什么。然而,我对使用 javascript 来实现纯 CSS 中应该可以实现的功能并没有留下深刻的印象。

引用的文章(我在寻找 CSS 方法时也独立发现了这些文章)并不执行与钟表匠演示相同的功能 - 当屏幕宽度变得太小时,the 456 boxes demo 不会滑到其他框下方。

我一直在研究文章代码并尝试 CSS 中的各种想法,但没有任何布局正确。另外,我更喜欢渐进增强而不是优雅降级。

最佳答案

我意识到这是一个老问题,但我想冒出您现在应该使用的答案:flexbox 。问题的原始演示早已不复存在,但标记是这样的( courtesy of the Wayback Machine ):

<div id="one">I am 150px high</div>
<div id="two">I am 200px high</div>
<div id="three">I am 120px high</div>
<div id="four">I am 300px high</div>

为了使用 Flexbox 均衡高度,您需要在它们周围包裹一个容器:

<div class="container container--equal-children">
  <!-- those four divs -->
</div>

将其设置为 display: flex 并将 align-items 设置为“stretch”即可获得所需的效果:

.container--equal-children {
  display: flex;
  align-items: stretch;
}

一旦就位,您可以跳过整个尺寸调整过程,让子项 flex 以填充 1/4 的空间:

.container--equal-children #one,
.container--equal-children #two,
.container--equal-children #three,
.container--equal-children #four {
  flex: 0 1 25%;
}

它们将自动具有相同的高度。

我整理了a CodePen that lets you toggle the flexbox rules on and off 。值得注意的是,只有切换功能需要 JS。我还添加了一些“仅用于演示”的样式规则(已注明)来演示设计行为。

关于javascript - 是否可以在不借助 Javascript 的情况下做到这一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1375051/

相关文章:

css - heroku 上的 Django 提供静态服务,但 HTML 模板不使用它们。

javascript - 表达式插值 Javascript

javascript - 如何比较两个忽略数组属性中元素顺序的json?

html - 我应该将排版部分与 HTML 层次结构分开吗?

javascript - 单击按钮时如何删除 css 部分

html - CSS- 在线显示事物

css - 如何使用 css 模糊滤镜?

javascript - 在没有提交按钮的情况下提交最接近的表单?

javascript - THREE.JS 从 blender 中导出 JSON 模型(包括纹理)

Javascript 创建方法 - 如何输出