Я пытаюсь понять механизм CSS, но учебники до сих пор не были отличным источником.Они только царапают поверхность.
Мне нужно понять фундаментальные различия между использованием #navlist li #current
и #navlist li .current
.
Имена не являются общими, чтобы быть очень практичным примером.
То, что я думаю, отличается:
#navlist li #current
при применении к элементу li
внутри родительского элемента #navlist
будет пропускать любой унаследованный формат для отображения формата #navlist li #current
.
С другой стороны:
#navlist li .current
будет применять свой формат, но также наследовать от другого формата.
В этом примере:
#navlist li a:hover
{
color: #FFFFFF;
background: #3364BB;
border-color: #0F3974;
}
#navlist li .current
{
color: #000;
background: #FFFFFF;
border-bottom: 1px solid #FFFFFF;
}
<ul id="navlist">
<li><a href="#" class="current">Home</a></li>
<li><a href="#">Profile</a></li>
<li><a href="#">Destinations</a></li>
<li><a href="#">Discuss</a></li>
</ul>
Вкладка будет белого цвета с черным шрифтом, но будет применено наведение.
В этом другом примере:
#navlist li a:hover
{
color: #FFFFFF;
background: #3364BB;
border-color: #0F3974;
}
#navlist li #current
{
color: #000;
background: #FFFFFF;
border-bottom: 1px solid #FFFFFF;
}
<ul id="navlist">
<li><a href="#" id="current">Home</a></li>
<li><a href="#">Profile</a></li>
<li><a href="#">Destinations</a></li>
<li><a href="#">Discuss</a></li>
</ul>
#current
и ничего больше, оставляя вкладку белой даже при наведении мыши на нее.
Это правильно?