我:针对li元素?
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
我想不同的宽度添加到每个华里。
我不想这样做内联。
我该如何使用CSS2(而不是CSS3)来定位每个li?
有没有办法,或者我需要给每个李的类名?
感谢
我:针对li元素?
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
我想不同的宽度添加到每个华里。
我不想这样做内联。
我该如何使用CSS2(而不是CSS3)来定位每个li?
有没有办法,或者我需要给每个李的类名?
感谢
你也可以用梳子CSS,你必须添加类各立在CSS E:G-
li {}
li + li {}
li + li + li {}
li + li + li + li {}
li + li + li + li + li {}
好。只有建议是在每个声明中使用“li:first-child”作为第一个li。因为它消除了CSS的递归处理的不必要的数量。当然,我们正在谈论的是百万分之一秒。 :) – ProfileTwist
为什么不使用nth-of-type
ul li:nth-of-type(1){} /* First */
ul li:nth-of-type(2){} /* Seconds */
,如果你担心旧的浏览器,有一个很大的library,增加了CSS3伪类给他们。
唯一的CSS2方法是将类添加到每个LI。
编辑
其实每LI不同类别并不是唯一的方式CSS2。 @Hashem Qolami对原始问题的评论有一个体面的CSS2解决方案,但就像他说的,它看起来有点愚蠢。
在CSS2中,你可以像'li + li {/ *样式为第二个li和* /} li + li + li {/ *将样式重置为默认值,使特殊样式适用于第二个li只有* /}'等等。但是这种“穷人的孩子选择者”是非常无效的。 –
'唯一的CSS2方法是将类添加到每个LI'不正确,请检查我的评论;) –
只有在我发布此答案后才看到。你是对的,你的解决方案是最好的方法,而不用改变他的HTML。 – dotty
如果你想使用纯粹的CSS2,你必须给他们类的名称。这可以通过:nth-of-type()
psuedoclass选择器来完成,但这是一个CSS3功能。
这对jQuery来说也很简单(如果你想避免依赖CSS3但不想将类名添加到你的标记中)。这也可以让你根据需要动态改变宽度(而不是像CSS类那样硬编码属性值)。
“每个李”你是指每个李元素单独?如果是这样,第n个选择器可能是你的朋友,尽管它是CSS3。
你可以给所有你的李的类名,并设置为显示块,与浮动。
样品fiddle:
li{
display:block;
float:left;
background:blue;
}
li.small{
width:50%;
}
li.big{
width:100%;
}
每个'li'单独或全部他们一样吗? –
每个li需要不同的宽度 – beans
@beans:它看起来很愚蠢,但它是一个纯粹的CSS2解决方案。 ** [JSBin Demo](http://jsbin.com/igisid/1/edit)**。 –