CSS仅更改没有重复类的背景

时间:2013-08-14 15:25:31

标签: css

我的代码如下:

.prev, .next {
    position: absolute;
    top: 50%;
    left: 0;
    width: 69px;
    height: 135px;
    margin-top: -68px;
    overflow: hidden;
    text-indent: -9999px;
    background: url(../images/slider-nav.png) 0 0 no-repeat;
}

我需要在主页上使用这些类,但我需要在关于页面的相同类但具有其他背景。这是最好的方法。当然我可以复制它并创建例如类prevAbout和nextAbout但我认为有更好的变体来做继承或者像这样的事情。

我添加了代码,但它只适用于prev class

.prev, .next, .prevClub {
    position: absolute;
    top: 50%;
    left: 0;
    width: 69px;
    height: 135px;
    margin-top: -68px;
    overflow: hidden;
    text-indent: -9999px;
    background: url(../images/slider-nav.png) 0 0 no-repeat;
}
.prev:focus, .next:focus {
    outline: none;
}
.next {
    left: auto;
    right: 0;
    background-position: -75px 0;
}

.prevClub, nextClub {
    background: url(../images/slider-nav2.png) 0 0 no-repeat;
}

.nextClub {
    left: auto;
    right: 0;
    background-position: -75px 0;
}

2 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点。

一种方法是覆盖CSS并使用不同的图像。

.prev, .next, .another-class {
    position: absolute;
    /* Etc... */
    background: url(../images/slider-nav.png) 0 0 no-repeat;
}

.another-class {
    background: url(new image) 0 0 no-repeat;
}

另一种方法是将它们范围限定为层次结构树中的元素:

<body class="home">
  <!-- later down your html -->
  <a class="prev">prev</a>
</body>

<body class="about-us">
  <!-- later down your html -->
  <a class="prev">prev</a>
</body>

.prev, .next {
    position: absolute;
    /* Etc... */
}

.about-us .prev, .about-us .next {
    background: url(new image) 0 0 no-repeat;
}

.home .prev, .home .next {
    background: url(new image) 0 0 no-repeat;
}

另一种方法是应用公共类,然后应用特定类:

.nav-link {
  /* all common css goes here */
}

.home-prev-link {
  /* BG declaration here */
}

.about-prev-link {
  /* BG declaration here */
}

然后你可以定位它们:

<a class="nav-link home-prev-link">Prev</a>
<a class="nav-link about-prev-link">Prev</a>

答案 1 :(得分:0)

将它们所在的容器定位在about页面上并覆盖背景图像。

#about-container .prev, #about-container .next {
  background-image:url('image');
}