css - flex: 100% 如何在 CSS 中工作?
问题描述
正如MDN网络文档所述:“flex 属性是“flex-grow”、“flex-shrink”、“flex-basis”的简写。
单值语法:值必须是以下之一:
a
<number>
: 在这种情况下它被解释为 flex:<number> 1 0
; “flex-shrink”值假定为 1,“flex-basis”值假定为 0。
这是一个 w3school 的示例,它通过在影响媒体查询后将flex: 50%
和放置到子列来控制容器的布局。flex: 100%
很明显,这100%
不是 for flex-growing
,而是用作flex-basis
。但这怎么可能?如果有单个值,则应假定为flex-grow
。
我在这里错过了什么吗?是不是因为%
那个原因才算在内flex-basis
?
解决方案
如果您参考规范,您可以阅读:
价值:
none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
||
手段:
双杠 (
||
) 分隔两个或多个选项:它们中的一个或多个必须以任意顺序出现。
如果您指定百分比值,则显然不是<'flex-grow'> <'flex-shrink'>?
这样<'flex-basis'>
如果您指定一个数字,那么它不能是<'flex-basis'>
因为它不接受number
所以它会是<'flex-grow'> <'flex-shrink'>?
并且?
意味着:
问号 (
?
) 表示前面的类型、单词或组是可选的(出现零次或一次)。
所以是<'flex-grow'>
这里有更多组合:
flex: 1 1 --> <'flex-grow'> <'flex-shrink'>
flex: 1 50%
1 --> <'flex-grow'> <'flex-shrink'>? --> <'flex-grow'>
50% --> <'flex-basis'>
推荐阅读
- python - 为什么我在 heatmap 和 feature_importances 中得到两个不同的值?
- arrays - 使用 React 在单个卡片中渲染对象数据
- typescript - 为什么类不能被视为构造函数?
- python - 框架和keras模型
- swift - 如何在 Swift 中的 png 图像后面添加一个 Circle()
- android - Android xml 布局显示为灰色
- c# - Intellocked.Exchange 而不是 ReaderWriterLockSlim
- java - 如何将数据传递给 Platform.runLater
- discord - discord.py 删除所有玩家的所有角色
- notifications - Swift UI 2.0:如何设置此通知?