2015-08-19 4 views
0

Я использую настраиваемую тему Bootstrap и хотел создать новый класс для определенных таблиц. Оригинальный CSS имеет следующую строку:Переопределение CSS, использующего: not Selector

table a:not(.btn), .table a:not(.btn) { 
    text-decoration: underline; 
} 

Позже я добавил свой собственный CSS, чтобы удалить подчеркивание ссылок:

.gridview a { 
    text-decoration: none; 
} 

HTML:

<table class="table gridview">... 

Использование Я обнаружил, что мой класс загружен после исходного класса таблицы, но он переопределяется оригиналом. Я также экспериментировал, заменив мой CSS следующим образом:

table a, .table a { 
    text-decoration: none; 
} 

... но я получаю тот же результат. Вероятно, есть несколько обходных решений, которые я мог бы использовать (например, !important, если это действительно пришло к нему), но я хотел бы понять, что происходит первым и, надеюсь, придумать более чистое решение. Есть идеи?

+4

Прочитайте это: HTTP: //www.w3. org/TR/CSS2/cascade.html # specificity – Patrick2607

+0

Очень полезная ссылка, спасибо. –

ответ

2

Если мы рассмотрим оба:

.table a:not(.btn) 
C  T:S 

.gridview a 
C   T 

В селекторе бутстрапа есть немного более специфичная особенность. Селектор псевдокласса более конкретный. Таким образом, измените свой класс таким образом:

.gridview a, .gridview a:not(.btn) 

Будет ли это работать. Или, чтобы быть более конкретным, вы можете дать все значения:

table.gridview a:not(.btn), .table.gridview a:not(.btn) 
+1

Отличное объяснение, спасибо за помощь! –

+1

@MichaelMcMullin Извините, я не объяснил, если вы спросите: 'C' - это Селектор классов,' T' - Селектор тегов, а 'S' - специальный селектор. –

3

Речь идет о специфичности.

.some_div .another_div a {color:#000;} 

более специфичен, чем

.another_div a {color:#fff;} 

https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity

Вы должны организовать его снова с более высоким удельным выбора

.some_div table a, .some_div .table a { 
    text-decoration: none; 
} 
+0

@ PraveenKumar Я не согласен. Ответ может содержать указания или особенности того, что должно быть сделано, но может опустить точно, как это должно быть сделано по какой-либо веской причине (ни один правильный ответ, ответ на котельную, слишком явный ответ и т. Д.). Источник: [FAQ] (http://stackoverflow.com/help/how-to-answer) – klaar

+0

@klaar Он отредактировал ответ !!! Я удалил нижний план. Проверьте, как это было раньше! –

+0

@klaar http://stackoverflow.com/revisions/1e31fbf5-bf87-467e-95d7-adca14983462/view-source –