我just read不允许混合值,例如:background-position: top 50%;
但是,我不确定以下几行是否含糊不清:
background-position: 0 50%; //can the 0 be confused as 0px?
background-position: 0 50px; //can the 0 be confused as 0%?
我担心的是它们可能会以一种被禁止的方式聚集在一起,并导致意外的错误。
你认为这会发生吗?是什么让你这么想的?
最佳答案
在CSS2.1中,允许您将关键字与百分比值或长度值组合。。。但你不在CSS2(我是说CSS2.0)。这应该是混乱的根源。
来自W3CCSS2.0 on background-position
值:[[|]{1,2}|[[top | center | bottom]|[left | center | right]]]| inherit
(...)
值具有以下含义:
-废话
-废话
-左上角和左上角(以及2打关键字组合)blah
如果只给出一个百分比或长度值,则只设置水平位置,垂直位置为50%。
如果给定两个值,则水平位置优先。
允许长度和百分比值的组合(例如,“50%2cm”)。
允许负位置。
关键字不能与百分比值或长度值组合(以上给出了所有可能的组合)。
来自W3CCSS2.1 on background-position
值:[[|| left | center | right][|| top | center | bottom]?]|[[左|中|右]|[[上|中|下]]|继承
(...)
如果只指定了一个值,则假定第二个值为“中心”。
如果至少有一个值不是关键字,则第一个值表示水平位置,第二个值表示垂直位置。
允许有负的和值。
比较
如果您比较CSS2.0和CSS2.1中的可能值,很明显您可以组合(百分比和长度)或(关键字),现在可以将三种类型的值中的任何一种与三种类型中的任何一种组合(OT:并且您被允许永远只使用一个值,第二个值则为50%/中心)。
粗体文本和CSS2.1中缺少任何其他指示也意味着,当您有两个值时,您可以有0、1或2个关键字,因此作为浏览器,您可以遇到只有1个关键字的情况。
据我所知,IE6+从未遇到过任何问题,只有W3C验证程序(jigsaw)在默认情况下根据CSS2或类似的东西进行验证时才会遇到问题。
CSS验证器似乎对body { background-position : 40cm left; }
CSS2.1已经被W3C推荐了近一年(2011年6月7日),所以这不会引起新的混乱。
关于html - 这条“背景位置”线不明确吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9857615/