【问题标题】:Which css rules are ignored when flexbox is active?当 flexbox 处于活动状态时,哪些 css 规则会被忽略?
【发布时间】:2015-08-10 14:49:11
【问题描述】:

我怎样才能配置 flexbox 有一个很好的后备?说我有这个:

.parent{
	display: flex;
	flex-flow: row wrap;
	width: 320px;
	border: 1px solid black;
}
.children{
	text-align: center;
	flex: 1;
	background: #DDD;
}
<div class="parent">
	<div class="children">1</div>
	<div class="children">2</div>
	<div class="children">3</div>
</div>

我可以添加哪些规则来为旧浏览器提供一个很好的回退,并且它们会被完全忽略并且不会干扰 flexbox。

请注意,我不要求 polifill 或任何东西,我只是想要一些可以回退到类似东西的东西。很高兴知道当 flexbox 处于活动状态时,哪些规则会被忽略。显然显示被覆盖了,但是孩子的宽度呢?儿童花车呢?位置如何:绝对?边距呢?

【问题讨论】:

  • 您需要在哪些浏览器上工作?
  • 不早于 ie8,但即使在那个范围内,也有很多完全或根本不支持。
  • 能否为旧版浏览器提供单独的样式表。用浮动和宽度设计它的旧方式。例如:&lt;!--[if lt IE 9]&gt; &lt;link rel="stylesheet" type="text/css" href="ie8-and-down.css" /&gt; &lt;![endif]--&gt;
  • 我可以,但我想了解当 flexbox 处于活动状态时其他规则会发生什么

标签: css flexbox


【解决方案1】:

根据spec

Flex 容器不是块容器,因此某些属性 设计时假设块布局不适用于 flex 布局的上下文。特别是:

  • 多列布局模块[CSS3COL] 中的column-* 属性对弹性容器没有影响。

  • floatclearflex item 没有影响,并且不要将其从流中取出。但是,float 属性可以 仍然通过影响display 来影响框的生成 属性的计算值。

  • vertical-align 对弹性项目没有影响。

  • ::first-line::first-letter 伪元素不适用于 flex containersflex containers 则不适用于 向他们的祖先贡献第一个格式化的行或第一个字母。

对于您的具体问题,

【讨论】:

  • 这太棒了!我不完全理解当你有(例如)空格时边距会发生什么。它们会被完全忽略还是会以某种方式影响?
  • @Vandervals justify-content 指定如何沿每一行分配弹性项目。从视觉上看,这似乎是增加了利润,但这是一个独立的现象。
  • 那么视觉边距会增加但不会减少,是吗?
  • @Vandervals 是的。首先,弹性项目是arranged in lines。然后the flexible lengths are resolved。最后,remaining space of each line is distributed
猜你喜欢
  • 2016-02-03
  • 2020-02-01
  • 1970-01-01
  • 2019-09-16
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 2014-06-23
相关资源
最近更新 更多