Другие ответы предоставят вам необходимое объяснение;Я приведу пример практического использования, чтобы удовлетворить любопытство каждого.
Обычный случай использования в реальном времени для множественных селекторов классов, разделенных объединителями-потомками, - это когда у сайта есть другой класс тела для определенных страниц,или определенные устройства.
Например, рассмотрим эту разметку простого веб-сайта.Помимо заголовка и нижнего колонтитула, он также имеет столбец содержимого и две боковые панели:
<!-- DTD, html, head... -->
<body>
<div id="wrap">
<div id="header">
<h1>My Site</h1>
</div>
<div id="content">
<!-- ... -->
</div>
<div id="side1" class="sidebar"><!-- ... --></div>
<div id="side2" class="sidebar"><!-- ... --></div>
<div id="footer">
<p>Copyright LOLOLOL</p>
</div>
</div>
</body>
</html>
По умолчанию может быть устроено #content
между .sidebar
с, выполненным с помощью некоторой плавающей уловки, которую я выигралЗдесь нет.
На мобильном устройстве, помимо изменения размера всего для небольшого разрешения, возможно, дизайнер хочет покончить с боковыми панелями, чтобы восстановить некоторое горизонтальное положение экрана.Помимо медиазапросов, существует также гораздо более простая возможность использовать код на стороне сервера для обнаружения мобильных браузеров и помечать тегом body
соответствующим образом, например, так (пример ASP.NET C #):
<% if (((HttpCapabilitiesBase) Request.Browser).IsMobileDevice) { %>
<body class="mobi">
<% } else { %>
<body>
<% } %>
Вот где твой пример пригодится.Дизайнер просто использует следующее правило, чтобы скрыть боковые панели от мобильных устройств:
/* This would appear just beneath the .sidebar { ... } rule */
.mobi .sidebar {
display: none;
}
Конечно, тот же самый код обнаружения браузера можно использовать, чтобы полностью скрыть разметку боковой панели, размер страницы для бритья и все такое прочее,но опять же это просто еще один способ приблизиться к этому.Я просто даю быстрый практический пример того, как несколько селекторов классов в иерархии могут использоваться в CSS.