Css вложенный элемент. Дочерние селекторы CSS. Более сложный пример

Описание

Псевдокласс :nth-child используется для добавления стиля к элементам на основе нумерации в дереве элементов.

Синтаксис

элемент:nth-child(odd | even | <число> | <выражение>) {...}

Значения

odd Все нечетные номера элементов. even Все четные номера элементов. число Порядковый номер дочернего элемента относительно своего родителя. Нумерация начинается с 1, это будет первый элемент в списке. выражение Задается в виде an+b , где a и b целые числа, а n - счетчик, который автоматически принимает значение 0, 1, 2...

Если a равно нулю, то оно не пишется и запись сокращается до b . Если b равно нулю, то оно также не указывается и выражение записывается в форме an . a и b могут быть отрицательными числами, в этом случае знак плюс меняется на минус, например: 5n-1.

За счет использования отрицательных значений a и b некоторые результаты могут также получиться отрицательными или равными нулю. Однако на элементы оказывают влияние только положительные значения из-за того, что нумерация элементов начинается с 1.

В табл. 1 приведены некоторые возможные выражения и ключевые слова, а также указано, какие номера элементов будут задействованы.

HTML5 CSS3 IE Cr Op Sa Fx

nth-child

21342135 213621372138
Нефть1634 627457
Золото469 725647
Дерево773 793486
Камни2334 8853103

В данном примере псевдокласс :nth-child используется для изменения стиля первой строки таблицы, а также для выделения цветом всех четных строк (рис. 1).

  • Выполняемая задача — выбор дочерних элементов.
  • Обозначение — цепочка: простой селектор родителя, комбинатор «>», простой селектор дочернего элемента.
  • Пример использования:

Зададим отступ слева для списка, непосредственно вложенного в элемент с классом content (на списки второго уровня вложенности эти правила не подействуют):

Content > ul { margin-left: 20px; }

Подробнее про селектор дочернего элемента

Основное отличие селектора дочернего элемента от рассмотренного ранее — тот факт, что если селектор потомка выбирает все потомки, независимо от уровня вложенности, то селектор дочернего элемента выбирает потомков только первого уровня — то есть непосредственно вложенные элементы. Например, напишем такой :

Div > span { color: #555; /* серый цвет */ }

…и такой код:

Этот текст будет черного цвета. А этот серого, ведь этот span — дочерний элемент для div.

Тут опять черный текст. И этот текст тоже черный, так как этот span не дочерний для div. Его непосредственный родитель — тег p.

Дочерние селекторы CSS - это селекторы, которые используются для применения стилей к элементам только в тех случаях, когда они являются дочерними по отношению к другим (родительским) элементам. Как и селекторы потомков, дочерние селекторы являются составными и складываются из простых селекторов (классы, идентификаторы и т.д.).

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

<тег1> <тег2>... <тег3><тег4>...

Элемент называется дочерним по отношению к другому элементу, если он находится внутри него на первом уровне вложенности. В нашем примере <тег2> и <тег3> являются дочками <тег1> , а <тег4> - это дочка <тег3> .

Дочерние селекторы состоят из двух или более простых селекторов разделенных знаком "> ", где сначала указывается родитель, потом его дочерний элемент, затем дочка этого дочернего элемента и т.д. То есть, как и в селекторах потомков, задается путь прохождения по дереву документа. Стили будут применены только к тем элементам, селекторы которых находятся последними в списке. Общий синтаксис:

селектор1 > селектор2 {

Пробелы с обоих сторон знака "> " можно ставить, а можно и нет, по желанию.

Пример использования дочерних селекторов CSS

Дочерние селекторы

Параграф1.

Параграф2.

Результат в браузере

Параграф1.

Параграф2.

В этом примере вам надо обратить внимание на два момента. Здесь имеется три элемента , но только у двух из них есть рамки, отступы и поля. Почему? И второй момент. Только у первого параграфа синий цвет текста.

Internet Explorer 6.0 не понимает дочерние селекторы, поэтому, если вы создаете свой сайт с учетом этого старого браузера - помните об этом.

Дочерние селекторы в HTML-таблицах

Многие новички (а иногда уже и не новички) в создании сайтов сталкиваются с определенными проблемами при использовании дочерних селекторов в HTML-таблицах. Чтобы вы поняли, о чем идет речь, давайте посмотрим на такую обычную таблицу.

Ячейка 1.1Ячейка 1.2
Ячейка 2.1Ячейка 2.2

А теперь вопрос. Как вы поступите, если вам понадобится с помощью дочерних селекторов пройти от тега к ячейкам? Если вы решили написать вот так, то это неверно:

table > tr > td { свойство: значение; свойство: значение; ... }

А догадываетесь, почему неверно? Нет? Дело в том, что вы забыли еще про один элемент - , который даже если не указан явно, то все равно незримо присутствует в каждой HTML-таблице. Просто у него нет обязательных открывающих и закрывающих тегов, поэтому про него часто забывают. Кстати да, в HTML-учебнике мы его с вами не проходили, так как в реальности его явное указание редко когда нужно. Ну, думаю вы уже догадались, какая будет правильная запись, но я вам все же покажу.

table > tbody > tr > td { свойство: значение; свойство: значение; ... }

Кстати, не только таблицы имеют элементы с необязательными открывающими тегами, есть и еще такие элементы. Просто на практике «проблемы забывчивости» возникают чаще всего именно с таблицами, поэтому я и заострил ваше внимание на этом.

Домашнее задание.

  1. Установите на странице шрифт Arial с размером 0.9em и какой-нибудь фон.
  2. Напишите на странице несколько заголовков и параграфов, измените размер и цвет текста заголовков так, как посчитаете нужным.
  3. Сделайте так, чтобы ссылки непосредственно в параграфах страницы были синего цвета без подчеркивания. Но при этом, если ссылки дополнительно обрамляются любым тегом, например для курсива, то они должны отображаться уже с подчеркиванием и красного цвета. Еще раз заостряю ваше внимание на том, что не надо прописывать стили ссылок с каждым обрамляющим тегом в отдельности, сделайте универсально. Как? Подумайте.
  4. Создайте небольшое меню в правой части страницы и зафиксируйте его, для этого вам понадобится свойство и еще парочка сопутствующих ему свойств, там разберетесь. При этом, пусть меню не только остается на месте в пределах окна браузера, но и при скроллинге не наползает на содержимое страницы.

Думаю последний пункт урока будет для вас самым сложным, но не пытайтесь сразу полностью погрузиться в освоение позиционирования. Просто сделайте домашнее задание. Кстати, этот пункт не будет работать в Internet Explorer 6.0, так как старичек не понимает фиксированное позиционирование.

Здравствуйте, уважаемые читатели! Продолжая тему CSS селекторов хочу предложить вашему вниманию описание дочерних и контекстных селекторов , а также их сравнительный анализ, поскольку по логике применения они очень похожи, хотя обладают некоторым отличием.

В своих публикациях я довольно подробно останавливался на различных видах CSS селекторов: ; а также . Кстати, в последней статье, где разбирались разные виды селектора атрибута, я довольно подробно описал, как мои теоретические выкладки можно тут же проверить, внося изменения в HTML и CSS код онлайн с помощью встроенного инструмента Google Chrome (). Такие средства редактирования имеют новейшие модификации всех популярных браузеров, включая плагин Firebug для Firefox ().

Теоретический материал этого поста вы можете также изучать, делая редактирование любой страницы любого сайта! Для этого просто нажмите F12, если пользуетесь Google Chrome или Mozilla Firefox (). А теперь представлю содержание тега p, на примере которого будем изучать дочерние и контекстные CSS селекторы :

Этот абзац включает теги форматирования em и strong, которые выделяют текст жирным и курсивом.

Пользуясь вышеописанным инструментом для редактирования я вставил данный абзац прямо в настоящую статью, вписав соответствующий текст в левой части окна для редактирования, в результате чего текст этого параграфа появился в самом верху страницы:


Эта HTML конструкция , . Этот параграф будет подопытным в сегодняшней публикации, на его примере я покажу, как меняется оформление его текста, в зависимости от того, какие селекторы - дочерние или контекстные - используются в правиле CSS.

Дочерним называется элемент, который расположен непосредственно внутри родительского . Прежде чем приступить непосредственно к теме, приведу картинку, которая отражает иерархию тегов в HTML документе на примере абзаца, текст которого приведен выше и который будем сегодня разбирать:

Такая конструкция еще называется деревом элементов. На этом рисунке наглядно представлена вложенность контейнеров, что и предполагает иерархические отношения между тегами. Тег абзаца p является дочерним элементом по отношению . В то же время тег strong не является дочерним для div, так как раcполагается в контейнере p.

Дочерний CSS селектор

Дочерний селектор в дереве элементов находится всегда непосредственно внутри родительского элемента, в этом случае синтаксис написания CSS селектора будет следующим:

Стиль будет применен к Селектору 2, но только в том случае, если он является дочерним для Селектора 1. Разберем более подробно, используя приведенный выше скриншот с деревом элементов. Например, следуя синтаксису, можно установить такое правило:

P> em {color: green;}

Это правило будет влиять на последнее слово абзаца “курсивом”, поскольку именно оно заключено между открывающим и закрывающим тегами em. Тег em является дочерним для p, потому что размещается непосредственно внутри него, следовательно текст содержания, а именно слово “курсивом” будет окрашено в зеленый цвет.


Однако другое тег em не служит прямым потомком тега p, так как входит в состав тега strong, вследствии чего часть абзаца “теги форматирования em и strong” не будет окрашена.

Контекстный CSS селектор

Настала очередь разобраться, что такое контекстный селектор CSS . При верстке той или иной страницы сайта очень часто теги вкладываются один в другой. Для того, чтобы стили для таких элементов работали корректно, используются селекторы, которые действуют в каком-то контексте, отсюда и название.

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

Как видим, контекстный селектор состоит из простых селекторов, разделенных пробелом. Для контекстных селекторов допускается применять два и более вложенных друг в друга тега. Составим теперь CSS правило для испытуемого параграфа, который я приводил выше:

P em {color: green;}


Как видите, зеленым окрашен не только текст части содержания абзаца, который непосредственно заключен в тег форматирования em, то есть слово “курсивом”, но и участок текста другого тега em, который входит еще и в состав тега strong. Это случилось потому, что действует правило с контекстным селектором, для которого не важен уровень вложенности в отличие от дочернего селектора. В этом и есть принципиальная разница дочернего и контекстного селектора.

Рассмотрим еще один пример взаимодействия контекстных и дочерних селекторов с нашим абзацем. Пропишем cледующие CSS правила для дочернего и контекстного селектора:

Div em {color: red;} p> em {color: green;}

После этого наш абзац приобретает такое оформление:


Как видите, кусок текста, заключенный в теги em и strong, выкрашен в красный цвет, потому что для него справедливо правило контекстного селектора, то есть тег em заключен в контейнеры strong и div, а уровень вложенности, как уже было отмечено, не имеет значения.

Возникает вопрос: почему же слово “курсивом”, тоже являющееся содержанием em, окрашено в зеленый цвет? Ведь и для него правило контекстного селектора является актуальным. Но для этого участка текста абзаца справедливо и правило дочернего селектора, потому что оно не противоречит тому условию, что для дочернего селектора элемент должен непосредственно входить в состав тега p.

Дело в том, в CSS действует закон приоритета для CSS свойств, находящихся ниже. То есть в данном случае правило дочернего селектора находится в документе ниже, чем CSS стили, прописанные для контекстного селектора контейнера div. Поэтому слово “курсивом” стало зеленым. Если поменять их местами, то правило «p> em {color: green;}» перестает действовать и участок текста “курсивом” будет красным.

Влад Мержевич

Дочерним называется элемент, который непосредственно располагается внутри родительского элемента. Чтобы лучше понять отношения между элементами документа, разберём небольшой код (пример 12.1).

Пример 12.1. Вложенность элементов в документе

HTML5 CSS 2.1 IE Cr Op Sa Fx

Lorem ipsum

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.

Ut wisis enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.

В данном примере применяется несколько контейнеров, которые в коде располагаются один в другом. Нагляднее это видно на дереве элементов, так называется структура отношений тегов документа между собой (рис. 12.1).

Рис. 12.1. Дерево элементов для примера

На рис. 12.1 в удобном виде представлена вложенность элементов и их иерархия. Здесь дочерним элементом по отношению к тегу

выступает тег

Вместе с тем тег не является дочерним для тега

, поскольку он расположен в контейнере

Вернёмся теперь к селекторам. Дочерним селектором считается такой, который в дереве элементов находится прямо внутри родительского элемента. Синтаксис применения таких селекторов следующий.

Селектор 1 > Селектор 2 { Описание правил стиля }

Стиль применяется к Селектору 2, но только в том случае, если он является дочерним для Селектора 1.

Если снова обратиться к примеру 12.1, то стиль вида P > EM { color: red } будет установлен для первого абзаца документа, поскольку тег находится внутри контейнера

И не даст никакого результата для второго абзаца. А все из-за того, что тег во втором абзаце расположен в контейнере , поэтому нарушается условие вложенности.

По своей логике дочерние селекторы похожи на селекторы контекстные. Разница между ними следующая. Стиль к дочернему селектору применяется только в том случае, когда он является прямым потомком, иными словами, непосредственно располагается внутри родительского элемента. Для контекстного селектора же допустим любой уровень вложенности. Чтобы стало понятно, о чем идет речь, разберём следующий код (пример 12.2).

Пример 12.2. Контекстные и дочерние селекторы

HTML5 CSS 2.1 IE Cr Op Sa Fx

Дочерние селекторы

Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat.

Результат данного примера показан на рис. 12.2.

Рис. 12.2. Цвет текста, заданный с помощью дочернего селектора

На тег в примере действуют одновременно два правила: контекстный селектор (тег расположен внутри

) и дочерний селектор (тег является дочерним по отношению к

). При этом правила являются равносильными, поскольку все условия для них выполняются и не противоречат друг другу. В подобных случаях применяется стиль, который расположен в коде ниже, поэтому курсивный текст отображается красным цветом. Стоит поменять правила местами и поставить DIV I ниже, как цвет текста изменится с красного на зеленый.

Заметим, что в большинстве случаев от добавления дочерних селекторов можно отказаться, заменив их контекстными селекторами. Однако использование дочерних селекторов расширяет возможности по управлению стилями элементов, что в итоге позволяет получить нужный результат, а также простой и наглядный код.

Удобнее всего применять указанные селекторы для элементов, которые обладают иерархической структурой — сюда относятся, например, таблицы и разные списки. В примере 12.3 показано изменение вида списка с помощью стилей. За счёт вложения одного списка в другой получаем разновидность меню. Заголовки при этом располагаются горизонтально, а набор ссылок — вертикально под заголовками (рис. 12.3).

Рис. 12.3. Список в виде меню

Для размещения текста по горизонтали к селектору LI добавляется стилевое свойство float . Чтобы при этом разделить между собой стиль горизонтального и вертикального списка и применяются дочерние селекторы (пример 12.3).

Пример 12.3. Использование дочерних селекторов

HTML5 CSS 2.1 IE Cr Op Sa Fx

Дочерние селекторы

В данном примере дочерние селекторы требуются, чтобы разделить стиль элементов списка верхнего уровня и вложенные списки, которые выполняют разные задачи, поэтому стиль для них не должен пересекаться.

Вопросы для проверки

1. Какой цвет будет у жирного курсивного текста в коде

Нормы освещённости построены на основе классификации зрительных работ по определенным количественным признакам.

При использовании следующего стиля?

P { color: green; }
B {color: blue; }
I {color: orange; }
B > I { color: olive; }
P > I { color: yellow; }

  1. Зелёный.
  2. Синий.
  3. Оранжевый.
  4. Оливковый.
  5. Жёлтый.

2. Какой элемент является родительским для тега ? </b></p> <ol><li><HEAD></li> <li><BODY></li> <li><HTML></li> <li><META></li> <li><!DOCTYPE></li> </ol><p><b>3. Для какого тега элемент <!DOCTYPE> выступает родителем? </b></p> <ol><li><HTML></li> <li><TITLE></li> <li><BODY></li> <li><HEAD></li> <li>Ни для одного тега.</li> </ol><h2>Ответы</h2> <p>1. Оливковый.</p> <p>3. Ни для одного тега.</p> <script>document.write("<img style='display:none;' src='//counter.yadro.ru/hit;artfast_after?t44.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+";h"+escape(document.title.substring(0,150))+ ";"+Math.random()+ "border='0' width='1' height='1' loading=lazy>");</script> </div> </article> <div class="related-posts"> <h3 class="title text-uppercase text-center">Еще на эту тему:</h3> <div class="row"> <div class="post article-wrp with-border col-sm-6 col-md-4"> <div class="article-in-loop"> <a class="thumb-title" href="/top-programm-dlya-udaleniya-draiverov-skachat-driver-sweeper/"> <span class="embed-responsive embed-responsive-16by9 vertical-align-block thumb"> <span class="embed-responsive-item"> <span class="super-wrp"> <span class="span-table"> <span class="span-table-row"> <span class="span-table-row-cell"> <img src="https://i2.wp.com/pc-assistent.ru/wp-content/uploads/2017/06/driver_sweeper_200x175.png" class="img-responsive" alt="Скачать Driver Sweeper – программа для удаления драйверов из OC Windows Скачать программу для удаления драйверов карты" loading=lazy> </span> </span> </span> </span> </span> </span> <span class="date"> </span> <span class="title"> Скачать Driver Sweeper – программа для удаления драйверов из OC Windows Скачать программу для удаления драйверов карты </span> </a> </div> </div> <div class="post article-wrp with-border col-sm-6 col-md-4"> <div class="article-in-loop"> <a class="thumb-title" href="/vykidyvaet-na-rabochii-stol-sniper-elite-v2-vykidyvaet-na-rabochii-stol-sniper-elite-v2-chto/"> <span class="embed-responsive embed-responsive-16by9 vertical-align-block thumb"> <span class="embed-responsive-item"> <span class="super-wrp"> <span class="span-table"> <span class="span-table-row"> <span class="span-table-row-cell"> <img src="https://i2.wp.com/i.rutab.net/upload/tech_issues/audio_check.png" class="img-responsive" alt="Выкидывает на рабочий стол Sniper Elite V2 Что делать если лагает sniper elite 3" loading=lazy> </span> </span> </span> </span> </span> </span> <span class="date"> </span> <span class="title"> Выкидывает на рабочий стол Sniper Elite V2 Что делать если лагает sniper elite 3 </span> </a> </div> </div> <div class="post article-wrp with-border col-sm-6 col-md-4"> <div class="article-in-loop"> <a class="thumb-title" href="/kak-naiti-kartinu-po-fotografii-poisk-pohozhei-fotografii-v-internet-poisk/"> <span class="embed-responsive embed-responsive-16by9 vertical-align-block thumb"> <span class="embed-responsive-item"> <span class="super-wrp"> <span class="span-table"> <span class="span-table-row"> <span class="span-table-row-cell"> <img src="https://i2.wp.com/kompukter.ru/wp-content/uploads/2018/03/klikaem-po-znachku-foto-v-gugl.png" class="img-responsive" alt="Поиск похожей фотографии в интернет" loading=lazy> </span> </span> </span> </span> </span> </span> <span class="date"> </span> <span class="title"> Поиск похожей фотографии в интернет </span> </a> </div> </div> </div> </div> </div> <aside id="sidebar" class="col-sm-4 col-sidebar hidden-xs" role="complementary"> <div class="content-menu bs-docs-sidebar"> <div class="progress-right" id="progress-right">0%</div> <script> window.onscroll = function() { var scrolled = window.pageYOffset || document.documentElement.scrollTop; var scrollprogress = Math.round(scrolled / ((document.documentElement.scrollHeight - document.documentElement.clientHeight) / 100)); document.getElementById('progress-right').innerHTML = scrollprogress + '%'; } </script> <div class="ad clearfix text-center"> </div> </div> <script> /** * Скрипт закріплення блоку при прокрутці */ (function() { var a = document.querySelector('#sidebar'), b = null, P = 0; window.addEventListener('scroll', Ascroll, false); document.body.addEventListener('scroll', Ascroll, false); function Ascroll() { if (b == null) { var Sa = getComputedStyle(a, ''), s = ''; for (var i = 0; i < Sa.length; i++) { if (Sa[i].indexOf('overflow') == 0 || Sa[i].indexOf('padding') == 0 || Sa[i].indexOf('border') == 0 || Sa[i].indexOf('outline') == 0 || Sa[i].indexOf('box-shadow') == 0 || Sa[i].indexOf('background') == 0) { s += Sa[i] + ': ' + Sa.getPropertyValue(Sa[i]) + '; ' } } b = document.createElement('div'); b.style.cssText = s + ' box-sizing: border-box; width: ' + a.offsetWidth + 'px;'; a.insertBefore(b, a.firstChild); var l = a.childNodes.length; for (var i = 1; i < l; i++) { b.appendChild(a.childNodes[1]); } a.style.height = b.getBoundingClientRect().height + 'px'; a.style.padding = '0'; a.style.border = '0'; } var Ra = a.getBoundingClientRect(), R = Math.round(Ra.top + b.getBoundingClientRect().height - document.querySelector('#content').getBoundingClientRect().bottom); // селектор блока, при достижении нижнего края которого нужно открепить прилипающий элемент if ((Ra.top - P) <= 0) { if ((Ra.top - P) <= R) { b.className = 'stop'; b.style.top = -R + 'px'; } else { b.className = 'evr-sticky'; b.style.top = P + 'px'; } } else { b.className = ''; b.style.top = ''; } window.addEventListener('resize', function() { a.children[0].style.width = getComputedStyle(a, '').width }, false); } })() </script> <style> /* Додаємо відступ вгорі, щоб було на одному рівні із змістом */ body.single #breadcrumbs { margin-bottom: 5px; } #content article { padding-top: 15px; } #sidebar .evr-sticky { position: fixed; z-index: 101; } #sidebar .stop { position: relative; z-index: 101; } #div-gpt-ad-30906309 { margin-top: 20px; } #sidebar .evr-sticky #div-gpt-ad-30906309, #sidebar .stop #div-gpt-ad-30906309 { margin-top: 20px; } #sidebar .content-menu { transition: 0.5s all; } #sidebar .content-menu .title { padding-top: 15px; font-size: 20px; margin: 0 0 15px 0; } #sidebar .content-menu .title .glyphicon { padding-right: 5px; } #sidebar .content-menu ul { padding: 0; margin: 0; overflow: auto; } #sidebar .content-menu .nav li { margin: 0; clear: both; margin-bottom: 4px; } /* Bullet before text */ #sidebar .content-menu .nav li a:before { content: "●"; position: absolute; font-size: 17px; color: #dedede; left: 0; top: -1px; } #sidebar .content-menu .nav li a { position: relative; display: inline-block; font-size: 15px; color: #000; line-height: 1.2; padding: 3px 0 0 18px; overflow: hidden; text-decoration: none !important; } #sidebar .content-menu .nav li.active:focus>a, #sidebar .content-menu .nav li.active:hover>a, #sidebar .content-menu .nav li.active>a, #sidebar .content-menu .nav li a:hover { text-decoration: none; font-weight: normal; color: #c23085; background-color: transparent; border-left: 0 none; } /* Bullet before text */ #sidebar .content-menu .nav li.active>a:hover:before, #sidebar .content-menu .nav li.active>a:before { -moz-transform: scale(1.3); -webkit-transform: scale(1.3); transform: scale(1.3); left: 1px; color: #c23085; background: transparent; } #sidebar .content-menu .nav li a:hover:before { color: #c23085; background: transparent; } #sidebar a.go-top { display: block; margin-top: 5px; padding: 14px 0 5px 0; text-align: center; text-transform: lowercase; font-size: 17px; color: #666; background: transparent url(/wp-content/themes/sk-Evrikak/i/go-top-in-sidebar.png) no-repeat 50% 50%; opacity: 0; transition: 0.2s all; } #sidebar a.go-top:hover { color: #000; text-decoration: none; } /* Якщо блок зафіксовний */ #sidebar .evr-sticky a.go-top { opacity: 1; } #sidebar .evr-sticky { box-shadow: -9px 0 10px 0 rgba(0, 0, 0, 0.08) !important; } </style> <script> jQuery(document).ready(function() { // (c) http://jsfiddle.net/gableroux/S2SMK/ // підсвітка активного пункту меню, bootstrap jQuery('body').scrollspy({ target: '.bs-docs-sidebar', offset: 70 }); // даємо висоту меню, щоб зробити прокрутку jQuery(window).bind("load resize", function() { var body_w = jQuery("body").width(); // визначаємо ширину вікна var window_h = jQuery(window).height(); // визначаємо висоту вікна //alert(window_h); if (body_w > '767') { // якщо ширина більша 767 window_h = window_h - 375; // коригуємо висоту блоку з меню. віднімаємо висоту блоку «наверх», у перспективі треба буще ще відняти інші-нові блоки var menu_h = jQuery('#sidebar .content-menu').height(); //if(menu_h > window_h) { // якщо висота усього сайдбару більше висоти екрану, то вказуємо висоту для меню. Воно автоматично розтягне висоту сайдбару, з’явиться прорутка у меню, і сайдбар займе усю висоту вікна jQuery('#sidebar .content-menu ul.nav').css('height', window_h); //} } }); // парсимо контент і формуємо меню jQuery('#content .evr-section').each(function() { var evr_section_id = jQuery(this).attr('id'); var evr_section_title = jQuery(this).find(':header:first').text(); var txt = '<li class="content-menu-item added-by-js"><a href="#' + evr_section_id + '">' + evr_section_title + '</a></li>'; //var txt = txt.unwrap(); //txt = jQuery('li', txt).unwrap; //txt = txt.unwrap('h3'); //txt = jQuery(txt).wrap('<li>'); jQuery('#sidebar ul.nav').append(txt); // Insert }); // Додаємо спеціальний клас для посилання на відео jQuery('#sidebar .content-menu').find("a[href='#entry-video']").addClass('link-to-video'); // навігація по статті (плавна прокрутка до потрібного блоку) jQuery('#sidebar .content-menu .nav a').click(function() { jQuery.scrollTo(this.hash, { offset: -10, // Відступ вгорі duration: 750 }); return false; }); // перейти вгору (плавна прокрутка вгору) jQuery('#sidebar a.go-top').click(function() { jQuery.scrollTo(this.hash, { offset: 0, // Відступ вгорі duration: 450 }); return false; }); }); </script> <link type="text/css" href="/wp-content/themes/sk-Evrikak/scroll-Pane/jquery.jscrollpane.css" rel="stylesheet" media="all" /> <script type="text/javascript" src="https://battlecase.ru/wp-content/themes/sk-Evrikak/scroll-Pane/jquery.mousewheel.js"></script> <script type="text/javascript" src="https://battlecase.ru/wp-content/themes/sk-Evrikak/scroll-Pane/jquery.jscrollpane.min.js"></script> <script> // Прокрутка оновлюється при зміні висоти вікна jQuery(function() { jQuery('#sidebar .content-menu ul.nav').each( function() { jQuery(this).jScrollPane({ showArrows: jQuery(this).is('.arrow') }); var api = jQuery(this).data('jsp'); var throttleTimeout; jQuery(window).bind("load resize", function() { // IE fires multiple resize events while you are dragging the browser window which // causes it to crash if you try to update the scrollpane on every one. So we need // to throttle it to fire a maximum of once every 50 milliseconds... if (!throttleTimeout) { throttleTimeout = setTimeout( function() { api.reinitialise(); throttleTimeout = null; }, 50 ); } }); } ) }); </script> <style> /* Styles specific to this particular page */ .scroll-pane { overflow: auto; height: 400px; } .jspTrack { background: #dedede; } .jspVerticalBar { width: 6px; } .jspDrag { background: #309dc6; } </style> </aside> </div> </div> <div class="other-posts"> <div class="container"> <h3 class="title text-uppercase text-center h">Другие статьи:</h3> <div class="row articles"> <div class="post article-wrp with-border col-sm-6 col-md-4 col-lg-3"> <div class="article-in-loop"> <a class="thumb-title" href="/samyi-moshchnyi-telefon-v-mire-na-dannyi-moment-samye-moshchnye-smartfony-top-10/"> <span class="embed-responsive embed-responsive-16by9 vertical-align-block thumb"> <span class="embed-responsive-item"> <span class="super-wrp"> <span class="span-table"> <span class="span-table-row"> <span class="span-table-row-cell"> <img src="https://i1.wp.com/technosova.ru/wp-content/uploads/2018/10/2-2.jpg" class="img-responsive" alt="Самые мощные смартфоны Топ 10 самых мощных телефонов" loading=lazy> </span> </span> </span> </span> </span> </span> <span class="date"> Самые мощные смартфоны Топ 10 самых мощных телефонов </span> <span class="title"> Современные технологии позволяют уместить в обычном смартфоне мощность и производительность... </span> </a> </div> </div> <div class="post article-wrp with-border col-sm-6 col-md-4 col-lg-3"> <div class="article-in-loop"> <a class="thumb-title" href="/kak-udalitsya-iz-moego-mira-kak-udalit-stranicu-i-akkaunt-v-moem-mire/"> <span class="embed-responsive embed-responsive-16by9 vertical-align-block thumb"> <span class="embed-responsive-item"> <span class="super-wrp"> <span class="span-table"> <span class="span-table-row"> <span class="span-table-row-cell"> <img src="https://i1.wp.com/socialnie-seti.info/wp-content/uploads/2012/09/galochki-dlya-ydaleniya-stranici.jpg" class="img-responsive" alt="Как удалить страницу и аккаунт в моем мире" loading=lazy> </span> </span> </span> </span> </span> </span> <span class="date"> Как удалить страницу и аккаунт в моем мире </span> <span class="title"> Бывает так, что человек пройдя регистрацию понимает, что эта социальная сеть не для него и хочет... </span> </a> </div> </div> <div class="post article-wrp with-border col-sm-6 col-md-4 col-lg-3"> <div class="article-in-loop"> <a class="thumb-title" href="/ne-udalyaetsya-avast-chto-delat-kak-udalit-avast-s-kompyutera-esli-on-ne/"> <span class="embed-responsive embed-responsive-16by9 vertical-align-block thumb"> <span class="embed-responsive-item"> <span class="super-wrp"> <span class="span-table"> <span class="span-table-row"> <span class="span-table-row-cell"> <img src="https://i2.wp.com/vellisa.ru/wp-content/uploads/2018/05/2-1.jpg" class="img-responsive" alt="Как удалить аваст с компьютера если он не удаляется" loading=lazy> </span> </span> </span> </span> </span> </span> <span class="date"> Как удалить аваст с компьютера если он не удаляется </span> <span class="title"> Сейчас мы разберем, как удалить Аваст, чтобы после деинсталляции антивируса, на компьютере не... </span> </a> </div> </div> <div class="post article-wrp with-border col-sm-6 col-md-4 col-lg-3"> <div class="article-in-loop"> <a class="thumb-title" href="/kak-podklyuchit-nokia-lyumiya-800-k-kompyuteru-podklyuchenie-nokia-lumia-k/"> <span class="embed-responsive embed-responsive-16by9 vertical-align-block thumb"> <span class="embed-responsive-item"> <span class="super-wrp"> <span class="span-table"> <span class="span-table-row"> <span class="span-table-row-cell"> <img src="https://i2.wp.com/sms-mms-free.ru/sites/default/files/images/Specifications_Nokia_800_Zune.jpg" class="img-responsive" alt="Подключение Nokia Lumia к ПК" loading=lazy> </span> </span> </span> </span> </span> </span> <span class="date"> Подключение Nokia Lumia к ПК </span> <span class="title"> Статьи и Лайфхаки впервые могло разочаровать всех, кто недавно приобрёл данное мобильное... </span> </a> </div> </div> </div> </div> </div> <style> /* Додаємо відступ внизу */ body.single #content .ad { margin-bottom: 20px; } /* Додаємо відступ вгорі */ body.single #sidebar .ad { margin-top: 20px; } </style> <footer id="footer" class="clearfix"> <noindex> <div class="container row-1 hidden-xs"> <nav class="nav"> <div class="menu menu-footer"> <ul id="menu-podval" class="menu"> <li class="menu-item type-custom object-custom home "><a href="/">Главная</a></li> <li class="menu-item type-post_type object-page "><a href="">О проекте</a></li> <li class="menu-item type-post_type object-page "><a href="">Рекламодателям</a></li> <li class="menu-item type-post_type object-page "><a href="/sitemap.xml">Карта сайта</a></li> <li class="menu-item type-post_type object-page "><a href="/feedback/">Обратная связь</a></li> </ul> </div> </nav> </div> <div class="border-blue clearfix"></div> <div class="container row-2"> <div class="row"> <div class="col-sm-6"> <div id="text-2" class="block widget-container widget_text"> <div class="textwidget"> <div class="sn"> <a href="https://www.facebook.com/sharer/sharer.php?u=https://battlecase.ru/css-vlozhennyi-element-dochernie-selektory-css-bolee-slozhnyi-primer/" target="_blank"><img src="https://battlecase.ru/wp-content/themes/sk-Evrikak/i/sn/facebook.png" alt="" class="img-responsive" loading=lazy></a> <a href="https://vk.com/share.php?url=https://battlecase.ru/css-vlozhennyi-element-dochernie-selektory-css-bolee-slozhnyi-primer/" target="_blank"><img src="https://battlecase.ru/wp-content/themes/sk-Evrikak/i/sn/vkontakte.png" alt="" class="img-responsive" loading=lazy></a> <a href="https://youtube.com/" target="_blank"><img src="https://battlecase.ru/wp-content/themes/sk-Evrikak/i/sn/youtube.png" alt="" class="img-responsive" loading=lazy></a> </div> <style> .sn a { display: inline-block; margin: 0 10px 0 0; width: 55px; } @media (max-width:767px) { .sn { text-align: center; } .sn a { margin: 0 7px; width: 43px; } } .sn a:hover { opacity: 0.9; } </style> </div> </div> </div> </div> </div> <div class="border-3 clearfix"></div> <div class="container row-3"> <div class="row"> <div class="col-sm-8 col-txt col-txt-1"> Размещенные на сайте материалы, могут содержать информацию для пользователей старше 18 лет. </div> <div class="col-sm-4 col-txt col-txt-2 text-right"> <div class="project-by-um"> © 2012 - 2018 <img src="https://battlecase.ru/wp-content/themes/sk-Evrikak/i/svg/logo-ukr-media.svg" width="90" class="img-responsive" loading=lazy> </div> </div> </div> </div> </noindex> </footer> </div> <div class="modal fade" id="modal-search" tabindex="-1" role="dialog" aria-labelledby="modal-searchLabel"> <div class="modal-dialog modal-lg itc-container" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Закрыть"><span aria-hidden="true">×</span></button> <h4 class="modal-title" id="modal-searchLabel">Поиск по сайту</h4> </div> <div class="modal-body"> <form role="search" method="get" class="form-search" id="modal-searchform" action="/"> <div class="form-group"> <input type="search" autocomplete="off" spellcheck="false" placeholder="Введите текст поиска" value="" name="s" id="modal-s" class="input-lg form-control"> </div> </form> <div class="modal-search-results"></div> </div> </div> </div> </div> <link rel='stylesheet' id='dashicons-css' href='/wp-includes/css/dashicons.min.css?ver=4.9.1' type='text/css' media='all' /> <link rel='stylesheet' id='thickbox-css' href='/wp-includes/js/thickbox/thickbox.css?ver=4.9.1' type='text/css' media='all' /> <script type='text/javascript' src='https://battlecase.ru/wp-content/plugins/decomments/templates/decomments/assets/js/decom.min.js?ver=1513648647'></script> <script type='text/javascript' src='https://battlecase.ru/wp-content/themes/sk-Evrikak/js/modernizr-2.8.3.min.js?ver=4.9.1'></script> <script type='text/javascript' src='https://battlecase.ru/wp-content/plugins/visualizer/js/lib/clipboardjs/clipboard.min.js?ver=3.0.4'></script> <script type='text/javascript' src='https://battlecase.ru/wp-content/plugins/mistape/assets/js/mistape-front.js?ver=1.3.3'></script> <script type='text/javascript' src='https://battlecase.ru/wp-content/plugins/lazy-load/js/jquery.sonar.min.js?ver=0.6.1'></script> <script type='text/javascript' src='https://battlecase.ru/wp-content/plugins/lazy-load/js/lazy-load.js?ver=0.6.1'></script> <script type='text/javascript' src='/wp-includes/js/wp-embed.min.js?ver=4.9.1'></script> <script type='text/javascript'> /* <![CDATA[ */ var thickboxL10n = { "next": "\u0414\u0430\u043b\u0435\u0435 \u2192", "prev": "\u2190 \u041d\u0430\u0437\u0430\u0434", "image": "\u0418\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435", "of": "\u0438\u0437", "close": "\u0417\u0430\u043a\u0440\u044b\u0442\u044c", "noiframes": "\u042d\u0442\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u043b\u0430\u0432\u0430\u044e\u0449\u0438\u0445 \u0444\u0440\u0435\u0439\u043c\u043e\u0432. \u0423 \u0432\u0430\u0441 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u0442\u0435\u0433\u0438 iframe, \u043b\u0438\u0431\u043e \u0432\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0438\u0445 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442.", "loadingAnimation": "http:\/\/battlecase.ru\/wp-includes\/js\/thickbox\/loadingAnimation.gif" }; /* ]]> */ </script> <script type='text/javascript' src='/wp-includes/js/thickbox/thickbox.js?ver=3.1-20121105'></script> <div id="mmenu_res" style="display:none;width:100%;height:40px;line-height:40px;background:#FD6A93;color:#FFFFFF;position:fixed;text-align:center;font-size:23px;;z-index:100000000"> <a class="mmenu_open" href="#irevoltmenu"> <span class="mmenu-icon-bar"></span> <span class="mmenu-icon-bar"></span> <span class="mmenu-icon-bar"></span> </a> Рубрики </div> <div class="modal fade" id="modalAd" tabindex="-1" role="dialog" aria-labelledby="modalAdLabel"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> </div> <div class="modal-body"> <div class="ad text-center"> </div> </div> </div> </div> </div> <link rel="stylesheet" href="/wp-content/themes/sk-Evrikak/ad/ad_popup-and-bottom/show-ads.css"> <script src="/assets/jquery1.cookie1.js"></script> <script src="https://battlecase.ru/wp-content/themes/sk-Evrikak/ad/ad_popup-and-bottom/show-ads.js"></script> </body> </html>