2
我想浓缩一下CSS,但是我碰到了这个问题。我正在使用CSS背景为图片换出一些文本链接,并带有一个简单的滚动效果。图像的高度都是相同的(除了每个div中的第一个),所以我试图用2条CSS规则来处理它们,其中一条适用于所有这些规则,另一条适用于较大的第一条链接。这里有一个例子:选择一个类中的所有元素,不管ID是什么
<div id="div1" class="common">
<a id="link0" class="big" href="link"></a>
<a id="link1" href="link"></a>
<a id="link2" href="link"></a>
<a class="class1" href="link"></a>
<a id="link3" href="link"></a>
</div>
<div id="div2" class="common">
...
</div>
依此类推。我使用下面的CSS:
.class1
{
background:url(images/pdf.png);
display:block;
height:38px;
width:39px;
}
.common a:hover
{
background-position:0 -38px;
}
.common a.big:hover
{
background-position:0 -117px;
}
#div1
{
background:url(images/bg1.png);
}
#link0
{
background:url(images/big1.png);
display:block;
height:117px;
width:964px;
}
#link1
{
background:url(images/1_1.png);
display:block;
height:38px;
width:425px;
}
#link2
{
background:url(images/1_2.png);
display:block;
height:38px;
width:425px;
}
#link3
{
background:url(images/1_3.png);
display:block;
height:38px;
width:425px;
}
的问题是,这似乎并没有给background-position
规则适用于具有ID的链接(#link0,#链接1等),但它并选择一个链接,没有ID(.class1)。如果我将.common a:hover
选择器更改为#div1 a:hover
(如果有效),但是我必须为每个div都有一个规则,这与我正在尝试执行的操作相反。
我在做什么错?我不能使用JQuery,它必须是纯CSS。
大,工程完全按照我想它。为什么这个工作呢?是因为**背景**是否将**背景位置**值重新应用于null? – jorbas
如果你只是用一个url设置一个'background',剩下的部分定义就会被其余的默认值填充'background:url(你的url)重复0 0透明;' – Reflective
对,而且因为它们是ID选择器,它们有优先权在我用来改变图像的类选择器上,所以用默认值覆盖'background-position:...'值。 – jorbas