2015-02-18 3 views
2

Я два класса, один используется специально сюда определенные теги, другие могут быть использованы на любом теге:CSS класса старшинство

a.action_link_2 { 
    display:inline-block; 
} 

.display_none { 
    display:none; 
} 

В некоторых случаях я хочу применить оба эти стили и попробовал это:

<a class="action_link display_none">content</a> 

Однако при визуализации в браузере класс "action_link" имеет приоритет. Я понимаю, что это может быть связано с приоритетом класса CSS, т. Е. С определенными классами тегов. Мой вопрос заключается в том, как сделать этот тег скрытым с помощью этих классов и по-прежнему разрешать класс display_none для любого элемента, чтобы скрыть его?

+0

[CSS специфичность] (https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity) –

ответ

3

вы можете просто удалить a из перед классом, а также добавить тело перед дисплеем не имеет класса, чтобы придать ему более высокий приоритет.

.action_link_2 { 
    display:inline-block; 
} 

body .display_none { 
    display:none; 
} 
2

Вы правы, это потому, что специфика чтения this

Чтобы преодолеть эту проблему, необходимо увеличить специфичность для .display_none класса, когда он присутствует на action_link_2.

Просто добавьте еще одно правило, чуть ниже все это

a.display_none { 
     display:none; 
    } 

Это будет работать, но будет проблема, когда вы пытаетесь добавить класс .display_none к anchor, но нет .action_link_2 класс подарок.

Таким образом, окончательный и лучшим решением было бы использовать:

.action_link_2.display_none { 
    display:none; 
} 
+0

Это не кажется благоприятным, потому что я не хочу, чтобы добавить '.display_none' для каждого другого определения класса. Класс '.display_none' должен использоваться везде. Я подозреваю, что ответ, поставленный Aaron выше, более подходит. – JoeTidee

1

Вы можете попробовать это:

.display_none { display:none !important; } 
+0

Люди предположили, что использование! Important - это поли-заполнение (?) И попытка избежать его приоритета. – JoeTidee

+0

[Звучит неплохо для меня] (https://remysharp.com/2010/10/08/what-is-a-polyfill), поскольку он по-прежнему выглядит более простым и эффективным способом в вашем случае ... – JBA

+0

См. выше специальной ссылки CSS для подтверждения плохой практики. – JoeTidee

Смежные вопросы