如何在不使用百分比 (%) 的情况下确定弹性项目的大小?

疯狂合成器

假设这是我的 HTML,这意味着我有未知数量的 div 元素:

<body>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
    <div></div>
</body>

我想使用 Flexbox 以每行仅包含 3 个元素的方式排列元素。

在此处输入图片说明

这是我编写的可以实现的 CSS 代码:

html, body {
  width: 100%;
  height: 100%;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
}

div {
  width: 30%;
  height: 20%;
  border: solid;
}

使用百分比来定义大小有时可能很麻烦。我想问一下在这种情况下是否有一种方法可以在不使用百分比的情况下编写 CSS 代码。

当我width:100%htmland 中删除body,我得到一些奇怪的东西:

在此处输入图片说明

html, body {
  /*width: 100%;*/
  height: 100%;
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
}

div {
  width: 30%;
  height: 20%;
  border: solid;
}
<html>
<body>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</body>
</html>

一个儿子

我想问一下在这种情况下是否有一种方法可以在不使用百分比的情况下编写 CSS 代码。

Yes, as being said, there is more than percent, like em, rem, vw/vh, that can be used, though I personally find % to be one of the better, as it help you to scale your site very well.

Using percents to define size may sometimes be cumbersome. For example, I deleted width: 100% from html, body rule and I got something very ugly.

Yes, though that is expected behavior, as the body does not behave as a standard block element in HTML5 and set as display: flex;, Is body element a block level or inline element, which the html elements does.

因此,当我们知道这一点时,我们可以flexbox正确地利用的属性,通过做这样的事情,我们将html元素作为第一个 flex 容器、body它的 flex 项目以及第二个 flex 容器,用于div元素。

此外,为了解决使用百分比的问题,所有祖先都需要一个高度,我使用了 viewport units vh

html {
  display: flex;
}

body {
  flex: 1;                         /*  expand and take all available space */
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
}

div {
  width: 30%;
  height: 20vh;                    /*  20vh equals 20% of the viewport */
  border: solid;
}
<body>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</body>


不过,我建议使用div, 而不是body, 作为容器

.container {
  display: flex;
  flex-wrap: wrap;
  align-content: flex-start;
}

.container div {
  width: 30%;
  height: 20vh;                    /*  20vh equals 20% of the viewport */
  border: solid;
}
<div class="container">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在没有百分比的情况下调整弹性项目的大小?

如何在不使用百分比的情况下自动在div之间添加间距?

如何在不使用变换的情况下按自身的百分比缩小图像:scale()

在不使用任何扩展名的情况下,如何在GNOME面板中显示电池百分比?

如何在没有随机数的情况下使用百分比?

如何在if中比较文件大小百分比

如何在不同屏幕尺寸下使用字体百分比

如何在搜索项包含百分比(%)的情况下编写LIKE语法?

如何在给定情况下分配重量百分比

如何在不使用循环的情况下计算R中的中间区间百分等级?

如何在不使用边框和宽度的情况下做到这一点:0。我试图通过百分比设置其宽度以提高设备的灵活性

如何在recycleview中找到每个可见项目的百分比

[使用fit-content时]百分比如何在网格项目最小宽度中工作?

如何在没有属性字段的情况下仅获取设备名称和可用空间百分比?

如何在有条件的情况下删除y_train数组中值的百分比

如何在不“重新解释”的情况下使 NumberFormatter 格式化百分比数字?

如何在保持相同大小的情况下允许弹性项目增长?

如何使用SQL按类型获取项目的百分比

在不使用百分比的情况下水平分布 3 列容器的内部 Divs?- 柔性

如何在不使用多个 np 语句的情况下打印某个百分位数以上的列表中的值(例如:第 95-100 个百分位数的列表编号)?

如何在python中用设置大小的百分比标记维恩图?

如何在中继器项目上设置动态宽度百分比?

在语句的情况下计算百分比

如何确定选择人口百分比的子集?

“ acpi”或“ upower”如何确定电池百分比?

如何确定有问题的概率百分比

如何确定缺失值的百分比

如何确定使用iOS版本的用户百分比?

使用外壳,如何确定种子文件下载的百分比?