- CSS first-child и last-child не работают при использовании одного и того же элемента
- 2 ответов
- Почему не срабатывает :first-child?
- :first-child not working as expected
- 5 Answers 5
- Not the answer you’re looking for? Browse other questions tagged css css-selectors or ask your own question.
- Linked
- Related
- Hot Network Questions
- Subscribe to RSS
- First child css не работает
- CSS-псевдоклассы
- Выбор первого элемента
- Синтаксис
- Типичные ошибки
- Учет типа элемента
- Выбор последнего элемента
- Дочерние селекторы CSS
- Дополнительные псевдоклассы
- Пример использования :first-child, :last-child и :nth-child
- ), то стиль p:first-child уже не будет отображаться, поскольку
- Пример использования :first-of-type, :last-of-type, :nth-of-type и :only-of-type
- , присутствие которого никак не влияет на выполнение CSS-правила (в отличие от варианта с :last-of-child ).
- , делая текст подчеркнутым. Данный стиль работает лишь потому, что тег
- является единственным дочерним элементом своего типа. Если в HTML-код добавить еще один тег
- , стиль не будет применён.
- Выводы
- CSS Selectors
CSS first-child и last-child не работают при использовании одного и того же элемента
Я только что заметил, что CSS :first-child и :last-child не работает при использовании одного и того же элемента. Используется только один. Мне интересно, почему это так, и если есть обходной путь к этому в CSS? Мне кажется, что ошибка CSS — первый элемент может быть также последним элементом.
Я не мог найти ничего в Google по этому вопросу. Каждый учебник предполагает, что будет по крайней мере 2 элемента.
Я ищу что-то вроде: «первый ребенок и последний ребенок» селектора. Сделать его существовать?
2 ответов
мне интересно, почему это так и есть ли обходной путь к этому в CSS? Мне кажется, что ошибка CSS — первый элемент может быть также последним элементом.
это не ошибка. Так работает каскад: если элемент является как первым, так и последним дочерним элементом, то если у вас есть :first-child и :last-child на отдельные правила, и они оба соответствуют одному и тому же элементу, тогда что-либо в более позднем объявленном или более конкретном правиле переопределит другой.
вы можете найти пример такого поведения здесь С border-radius свойство shorthand и обходные пути, которые включают использование свойств компонента вместо стенографии, а также указание отдельного правила с использованием одного из следующих селекторов.
Я ищу что-то вроде: «первый ребенок и последний ребенок» селектора. Существует ли она?
буквально, Вы бы связали оба псевдо-класса, как это, что отлично работает:
однако существует специальный псевдокласс, который действует так же:
основное отличие (на самом деле,только разница) между этими двумя селекторами является специфичностью: первый более специфичен, поскольку он содержит один дополнительный псевдокласс. Нет никакой разницы даже в поддержке браузера, как :last-child и :only-child оба поддерживаются точно такими же версиями каждого браузера.
Я понимаю, что я массово опаздываю на это, но вы также можете использовать это CSS :first-of-type и :last-of-type . Например:
Источник
Почему не срабатывает :first-child?
У тебя .action_block не является первым дочерним элеменом блока .action_wrapper, поэтому :first-child не срабатывал.
Почитав здесь вопрос и ответы, я понял свою ошибку. Хочу поделиться 🙂
У нас есть меню
И мне нужно было к каждой пункту меню сделать справа и слева бордеры разных цветов
НО! у первого пункта нужно было отменить левый бордер, а у последнего — правый.
Сделал так: к каждой !ССЫЛКЕ! (.top-line .menu ul li a) я применил бордеры:
Потом начал отменять бордеры у первого и последнего элемента
И не работали псевдоклассы :first-child и :last-child! Ломал голову. Была ночь 4 часа утра.
На утро дошло 😀
У нас же только одна ссылка внутри li! Какие тут псевдоклассы?!
Поэтому применил бордеры к .top-line .menu ul li.
Псевдоклассы применил к .top-line .menu ul li.
Источник
:first-child not working as expected
I’m trying to select the first h1 inside a div with a class called detail_container . It works if h1 is the first element within this div , but if it comes after this ul it won’t work.
I was under the impression that the CSS I have will select the first h1 no matter where it is in this div . How can I make it work?
5 Answers 5
The h1:first-child selector means
Select the first child of its parent
if and only if it’s an h1 element.
The :first-child of the container here is the ul , and as such cannot satisfy h1:first-child .
There is CSS3’s :first-of-type for your case:
But with browser compatibility woes and whatnot, you’re better off giving the first h1 a class, then targeting that class:
:first-child selects the first h1 if and only if it is the first child of its parent element. In your example, the ul is the first child of the div .
The name of the pseudo-class is somewhat misleading, but it’s explained pretty clearly here in the spec.
jQuery’s :first selector gives you what you’re looking for. You can do this:
$(‘.detail_container h1:first’).css(«color», «blue»);
For that particular case you can use:
But if you need that same selector on many cases, you should have a class for those, like BoltClock said.
you can also use
By changing the number 1 by any other number you can select any other h1 item.
You could wrap your h1 tags in another div and then the first one would be the first-child . That div doesn’t even need styles. It’s just a way to segregate those children.
Not the answer you’re looking for? Browse other questions tagged css css-selectors or ask your own question.
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
site design / logo © 2021 Stack Exchange Inc; user contributions licensed under cc by-sa. rev 2021.10.15.40479
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Источник
First child css не работает
Результат примера показан на рис. 1. В данном примере псевдокласс :first-child добавляется к селектору b и устанавливает для него красный цвет текста. Хотя контейнер встречается в первом абзаце три раза, красным цветом будет выделено лишь первое упоминание, т. е. текст «Lorem ipsum». В остальных случаях содержимое контейнера отображается чёрным цветом. Со следующим абзацем всё начинается снова, поскольку родительский элемент поменялся. Поэтому фраза «Ut wisis enim» также будет выделена красным цветом.
Рис. 1. Выделение цветом первого дочернего элемента абзаца
Результат данного примера показан на рис. 2.
Рис. 2. Ссылки с линией слева
CSS-псевдоклассы
Наряду с идентификаторами, классами, тегами и атрибутами псевдоклассы являются одним из видов CSS-селекторов. Их особенность в том, что они не могут быть установлены непосредственно в HTML.
Примерами псевдоклассов являются «первая строка в контейнере», «первая буква в слове», «первый дочерний элемент у родителя». Браузер может обнаружить подобные элементы только после того, как он проанализировал страницу и составил DOM-дерево, а в ряде случаев только после отрисовки.
Наличие в CSS подобного механизма позволяет определять оформление, не привязанное к HTML-коду, что открывает большие возможности для дизайна.
Выбор первого элемента
Псевдокласс first-child в CSS отвечает за выбор самого первого элемента в родительском контейнере. Текстовые узлы при этом игнорируются, в счет идут только полноценные теги.
Найдем первые элементы в двух простых HTML-структурах.
В результате выбраны будут первый пункт списка и тег, определяющий жирное начертание шрифта.
Синтаксис
Все псевдоклассы в CSS определяются по определенному шаблону. Сначала указывается основной селектор, затем искомый псевдокласс, отделенный двоеточием.
Такое правило подчеркнет текст первого элемента b внутри каждого контейнера.
На скриншоте очевидно, что выделились только элементы, соответствующие одновременно селектору тега b и селектору псевдокласса :first-child. Стиль был применен внутри каждого контейнера, в данном случае внутри всех пунктов списка.
Помимо тега, в качестве основного можно использовать любой другой селектор CSS, например:
Типичные ошибки
Псевдокласс первого элемента first-child в CSS выбирает строго тег, находящийся на первом месте в родительском контейнере. Даже если элемент полностью соответствует селектору, но не является первым потомком, он не будет выбран.
Для примера возьмем предыдущий список цитат и перенесем авторов в начало.
Несмотря на то что селектор элемента остался прежним, CSS-стиль не применился, так как первым элементом в контейнере теперь является i.
Еще одной ошибкой является игнорирование тега
. Это такой же HTML-элемент, как и прочие. Если он окажется в контейнере перед искомым блоком, то селектор CSS first-child не сработает.
Учет типа элемента
Чтобы избежать подобных ситуаций, можно использовать псевдокласс first-of-type. Он работает так же, как селектор CSS first-child, но учитывает тип элемента.
Теперь при подсчете учитываются только элементы, соответствующие селектору b.
Выбор последнего элемента
Существует также псевдокласс last-child, который работает аналогично селектору CSS first-child, но начинает счет элементов с конца контейнера.
Потестил эту муть немного, инфу поискал. Вот что вышло…
Короче :last-of-type как и :nth-last-of-type работают исправно и аналогично-противоположно(аля словоблуд) как и :first-of-type ,просто есть одна важная особенность.
Вот тут можно поиграть с этим явлением: http://jsfiddle.net/a5r3jut3/ .
Короткое и ясное правило для использования этого псевдо класса: (путь к последнему такому дочерному тегу родителя):last-of-type
- http://jsfiddle.net/djvgaw57/
Класс box выставлен в трех тегах
Вроде формулировку использовал правильную, делал пост и пытался понять 3 часа. Даже если что то не сказал, это можно понять по выложеным примерам.
Слово “Последовательность” использовалось для замены формулировки “Последовательность дочерных одинаковых тегов в общем родителе”
Дочерние селекторы CSS
В предыдущей статье мы рассказывали о родственных связях между элементами HTML-документа, в том числе и о дочерних элементах. Давайте посмотрим на примере, как эти связи можно использовать в CSS.
Представьте, что вам нужно присвоить стиль только тем тегам
, которые являются дочерними по отношению к , не затрагивая остальные
, дочерние по отношению к
Обратите внимание на символ > после body . С помощью него вы указываете, что стиль применяется исключительно для дочерних тегов
родителя . Если символ убрать, то стиль применится абсолютно ко всем тегам
, которые находятся внутри тега , хотя они могут и не являться для него дочерними.
Дополнительные псевдоклассы
В CSS3 существует ряд псевдоклассов для работы с дочерними элементами. Ниже приведено описание каждого из них, примеры использования, а также отличия между псевдоклассами вида «child» и «of-type».
Пример использования :first-child, :last-child и :nth-child
Скриншот: применение :first-child, :last-child и :nth-child
Мы написали CSS стиль для дочерних элементов простого HTML-документа, где тег
,