作者:angel青彤雪 | 来源:互联网 | 2023-05-18 12:29
IamusingtheCSSorderpropertytoreorderelementsinaflexboxcontainer.我正在使用CSSorder属性重新排序F
I am using the CSS order
property to reorder elements in a flexbox container.
我正在使用CSS order属性重新排序Flexbox容器中的元素。
There are some elements I would like to put at the end of this list, so I am using order: 1000
, which is higher than the order of anything else by far.
我想在这个列表的末尾添加一些元素,所以我使用的是order:1000,它远远高于其他任何东西的顺序。
I do not care about the order of these "end" elements relative to each other, but I'm not sure if having a whole bunch of elements with order: 1000
is valid.
我不关心这些“结束”元素相对于彼此的顺序,但我不确定是否有一大堆带有顺序的元素:1000是有效的。
I can't find anything about it in the spec. Is this valid/legal?
我在规范中找不到任何相关内容。这有效/合法吗?
2 个解决方案
6
There is never a situation in CSS in which multiple elements sharing the same value for a property are considered "invalid". CSS does not define validity in this way. As justinw mentions in the comments, since every element has at least the initial value for every CSS property unless otherwise specified by browser defaults or you, CSS needs to account for this scenario for every single property.
CSS中从不存在一种情况,即对于属性共享相同值的多个元素被视为“无效”。 CSS没有以这种方式定义有效性。正如Justinw在评论中提到的那样,因为每个元素至少具有每个CSS属性的初始值,除非浏览器默认值或您指定,CSS需要为每个属性考虑这种情况。
In the case of the order
property, two flex items with the same value are laid out according to source order, as stated in section 5.4 of the spec. That is to say, between two flex items with order: 1000
(or two flex items with order: 1
, or even the initial value 0
for that matter), the one that comes first in the source markup (assuming the DOM tree hasn't been manipulated after the fact) will be laid out before the one that comes last, according to the direction specified by flex-direction
.
在订单属性的情况下,根据源订单布置具有相同值的两个弹性项目,如规范的5.4节中所述。也就是说,在两个具有顺序的弹性项目之间:1000(或两个具有顺序的弹性项目:1,或者甚至是初始值0),在源标记中首先出现的一个(假设DOM树没有'根据flex-direction指定的方向,将在最后一个之前布置。
Here's the exact quote:
这是确切的报价:
Items with the same ordinal group are laid out in the order they appear in the source document. This also affects the painting order [CSS21], exactly as if the flex items were reordered in the source document.
具有相同序数组的项目按它们在源文档中出现的顺序排列。这也会影响绘制顺序[CSS21],就像在源文档中重新排序弹性项一样。
This is similar to how two elements with the same computed value for z-index
are painted back-to-front in source order (see section 9.9 of CSS2.1).
这类似于两个具有相同z-index计算值的元素如何按源顺序从前到后绘制(参见CSS2.1的第9.9节)。