#html #css
#HTML #css
Вопрос:
Знаете ли вы причину, по которой оформление текста не работает в этом случае?
#menu {
text-decoration: none;
}
<div id='menu'>
<a href='1.html'>Home</a>
<a href='2.html'>Home</a>
<a href='3.html'>Home</a>
<a href='4.html'>Home</a>
</div>
Кстати, приведенный ниже CSS-код был доработан.
a{
text-decoration: none;
}
Комментарии:
1. Причина в том, что вы назначаете форматирование CSS для поля, а не для самого элемента.
Ответ №1:
- оформление текста не является наследуемым свойством.
- Если вам действительно нужно применить это к дочерним элементам #menu, вам нужно явно
inherit
указать их.
#menu { text-decoration: none; }
#menu a { text-decoration: inherit; }
<div id='menu'>
<a href='1.html'>Home</a>
<a href='2.html'>Home</a>
<a href='3.html'>Home</a>
<a href='4.html'>Home</a>
</div>
Ответ №2:
Оформление текста не наследуется (поэтому <a>
элемент не унаследует его от <div>
элемента), вот почему «это не работает» в первом случае.
Кроме того, каждый браузер имеет некоторые значения CSS по умолчанию, и большинство браузеров имеют оформление текста по умолчанию: подчеркивание для <a>
элементов.
Как вы уже заметили, как только вы нацелитесь на правильный элемент ( <a>
а не на #menu, который является <div>
), это сработает!
Ответ №3:
Будет работать следующее.
#menu a {
text-decoration: none;
}
<div id='menu'>
<a href='1.html'>Home</a>
<a href='2.html'>Home</a>
<a href='3.html'>Home</a>
<a href='4.html'>Home</a>
</div>
В вашей версии вы выбрали сам #menu
элемент, а не его дочерние элементы.
CSS-селектор #menu a
будет обращаться ко всем <a>
элементам, которые являются потомками (прямыми или косвенными дочерними элементами) элемента с идентификатором menu
.
Если вы хотите, чтобы были затронуты только прямые дочерние элементы #menu
, вам следует использовать #menu > a
вместо этого.
Комментарии:
1. Эй, пожалуйста, дайте мне немного времени, чтобы закончить мое предложение! 😉