css - 覆盖悬停和焦点样式的聪明方法

标签 css twitter-bootstrap

我正在覆盖 Bootstrap 分页,这样就没有背景/边框了,尽管为了让它工作,我还是写了很多重复的代码

.pagination > li > a, 
.pagination > li > a:hover, 
.pagination > li > a:focus, 
.pagination > li > span,
.pagination > li > span:hover,
.pagination > li > span:focus {
    background: none;
    border: none;
    color: #a8a9ab
}
    .pagination > li > a:hover,
    .pagination > li > a:focus,
    .pagination > li.active > a, 
    .pagination > li.active > a:hover,
    .pagination > li.active > a:focus,
    .pagination > li.active > span,
    .pagination > li.active > span:hover,
    .pagination > li.active > span:focus {
        background: none;
        border: none;
        color: #000
    }

我不想在标记中添加 !important 或额外的类,但是我还缺少其他方法吗?

这是我在必须使用 !important 时所能做的最好的

.pagination > li > a,
.pagination > li > span {
    background: none !important;
    border: none !important;
    color: #a8a9ab !important;
}
    .pagination > li > a:hover,
    .pagination > li > a:focus,
    .pagination > li > span:hover,
    .pagination > li > span:focus,
    .pagination > li.active > a,
    .pagination > li.active > span {
        color: #000 !important;
    }

简单示例:http://codepen.io/anon/pen/FpCEA

最佳答案

编辑: 我刚刚看到您不想要任何额外的类(class),但恐怕您没有任何其他方法可以在不使用 !important 的情况下缩短您的 CSS >。您仍然可以改用 LESS/SASS,这是很好的选择。


您可以指定您的 .pagination 类,添加一个新类:

<ul class="pagination custom">
    <li><a href="#">1</a></li>
    <li><a href="#">2</a></li>
    <li class="active"><a href="#" >3</a></li>
    <li><a href="#">4</a></li>
    <li><a href="#">5</a></li>
</ul>

那么你就不必使用 !important :

.pagination.custom > li > a, 
.pagination.custom > li > span {
    background: none;
    border: none;
    color: #a8a9ab
}
.pagination.custom > li > a:hover, 
.pagination.custom > li > a:focus, 
.pagination.custom > li > span:hover,
.pagination.custom > li > span:focus,
.pagination.custom > li.active > a,
.pagination.custom > li.active > span {
    background: none;
    border: none;
    color: #000
}

Codepen fork

关于css - 覆盖悬停和焦点样式的聪明方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18910997/

相关文章:

css - 对 CSS 显示感到困惑 : table and the way contents of cells line up

jquery - 为什么 bootstrap css 使用 box-sizing : border-box?

php - 为什么 bootstrap 会破坏 WordPress 管理?

html - 我的 Bootstrap 列有我无法删除的边距和填充

html - 折叠的导航栏仅显示在小屏幕尺寸的 Bootstrap 上

html - 添加内容后 Div 不适合父级

css - div css 样式中的 Div - 使用填充将内部 div 置于外部中心?

javascript - 增加叠加层 <div> 的不透明度会使较高和较低堆叠的内容变暗,而不仅仅是较低的堆叠

css - 如何在容器内中间对齐两个内部 div?

javascript - Amcharts 仅显示有关调整大小事件的数据