Css как: Как работает CSS — Изучение веб-разработки

Содержание

Как работает nth-child — Веб-стандарты

Существует такой селектор, точнее псевдокласс, называемый :nth-child. Вот пример его использования:

ul li:nth-child(3n+3) {
    color: #cccccc;
}

Что делает CSS-код, приведенный выше? Он выбирает каждый третий элемент внутри маркированного списка: это 3-й, 6-й, 9-й, 12-й и т.д. Давайте посмотрим, как именно работает это выражение и что еще можно сделать с помощью :nth-child.

Всё зависит от того, что находится между скобками. Селектор :nth-child принимает два ключевых слова: even и odd. Тут всё просто: even выбирает чётные элементы, такие как 2-й, 4-й, 6-й и т.д., а odd выбирает нечётные элементы, такие как 1-й, 3-й, 5-й и т.д.

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

Например, вот как выбрать только пятый элемент:

ul li:nth-child(5) {
    color: #cccccc;
}

Однако давайте вернемся к 3n+3 из первого примера. Как он работает и почему выбирается каждый третий элемент? Весь фокус в понимании переменной n и приведенного алгебраического уравнения. Подумайте об n, как о начинающемся с нуля множестве целых чисел. Потом дополните уравнение. Так 3n это 3×n, а все уравнение вместе это (3×n)+3. Теперь, подставляя вместо n числа больше или равные нулю, мы получим:

  • (3 × 0) + 3 = 3 = 3-й элемент
  • (3 × 1) + 3 = 6 = 6-й элемент
  • (3 × 2) + 3 = 9 = 9-й элемент и т.д.

А как насчёт :nth-child(2n+1)?

  • (2 × 0) + 1 = 1 = 1-й элемент
  • (2 × 1) + 1 = 3 = 3-й элемент
  • (2 × 2) + 1 = 5 = 5-й элемент и т.д.

Так, стоп! Это ведь то же самое, что и 

odd. Тогда, возможно, не стоит использовать это выражение? Но разве в этом случае мы не подвергаем наш первый пример излишнему усложнению? Что, если вместо 3n+3 мы запишем 3n+0 или ещё проще 3n?

  • (3 × 0) = 0 = ничего нет
  • (3 × 1) = 3 = 3-й элемент
  • (3 × 2) = 6 = 6-й элемент
  • (3 × 3) = 9 = 9-й элемент и т. д.

Итак, как вы можете видеть, результат получится такой же, а значит, нет необходимости в +3. Мы можем использовать и отрицательные значения n, с таким же успехом, как и вычитание в уравнениях. Например, 4n-1:

  • (4 × 0) – 1 = –1 = ничего нет
  • (4 × 1) – 1 = 3 = 3-й элемент
  • (4 × 2) – 1 = 7 = 7-й элемент и т.д.

Использование -n может показаться странным — ведь если конечный результат отрицательный, то никакие элементы в выборку не попадут. Но если дополнить уравнение и снова сделать результат положительным, то выборка окажется довольно интересной: при помощи неё можно будет получить первые

n элементов, например так: -n+3:

  • –0 + 3 = 3 = 3-й элемент
  • –1 + 3 = 2 = 2-й элемент
  • –2 + 3 = 1 = 1-й элемент
  • –3 + 3 = 0 = ничего нет и т.д.

На SitePoint есть хороший справочник с милой табличкой, которую я бесстыдно опубликую здесь:

n2n+14n+14n+44n5n-2-n+3
01143
1358432
2591881
371111
4917201618
51121242023

Поддержка браузерамиСкопировать ссылку

Селектор :nth-child — один из немногих CSS-селекторов, который почти полностью поддерживается в современных браузерах и абсолютно не поддерживается в IE, даже в IE8. Поэтому когда дело доходит до его использования, и конечный результат сделан по технологии прогрессивного улучшения — вы можете смело использовать его для некоторых оформительских элементов, вроде расцветки строк таблицы. Однако не стоит применять его в более серьезных случаях. Например, полагаться на него в раскладке сайта или удалять правое поле из каждого третьего блока в сетке три на три, чтобы они вошли в ряд.

Спасением здесь может послужить библиотека jQuery, которая реализует поддержку всех CSS-селекторов, включая :nth-child, даже в Internet Explorer.

Всё равно неясно?Скопировать ссылку

Я не большой поклонник фразы я лучше воспринимаю визуальную информацию. И вы, конечно, тоже. Но примеры являются чрезвычайно полезными именно в таких ситуациях. Чтобы облегчить понимание, я сделал небольшую тестовую страничку. На ней вы сможете написать свои уравнения и ниже увидеть то, что попадет в выборку.

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

Как изменить элемент с помощью CSS, если у нас нет класса или идентификатора с псевдоклассами

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

Не волнуйтесь, не все потеряно.

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

Оглавление

Все, что мы увидим в этом уроке он работает для любой страницы, которую вы создаете с помощью HTML и CSS.

И в частности, конечно, это справедливо для WordPress, ведь в наших примерах мы будем делать это в WordPress.

📺️ Видеоурок:

Suscríbete a mi канал:  

:first-of-type Изменить только первый элемент

Этот псевдокласс позволяет нам изменять только первый элемент своего типа среди группы родственных элементов.

Теперь мы увидим конкретные примеры, но вот вам помощь очень хорошо об этом псевдоклассе.

Первое, что мы собираемся изменить, это первый элемент меню:

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

Элемент, который я хочу изменить, имеет определенный идентификатор, поэтому мне действительно не нужно использовать псевдоклассы.

Но представьте, что вы его видели и я не знаю, что у него есть идентификатор 🙈

Я собираюсь изменить этот элемент, как если бы этого идентификатора не существовало.

Чтобы использовать псевдоклассы, я должен добавить псевдокласс, которому предшествует двоеточие:

#top-menu li:first-of-type {
    margin-right: 140px;
}

И вот результат:

Как мы видим на скриншоте выше, к первому элементу применяется только правое поле.

:last-of-type Изменить только последний элемент

Так же, как и в предыдущем примере, мы можем изменить только последний элемент.

На этот раз мы будем использовать :last-of-type следующим образом:

#top-menu li:last-of-type {
    margin-right: 140px;
}

И результатом будет:

:nth-of-type Изменить элемент или элементы, которые мы хотим

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

Давайте представим, что мне нужно изменить второй элемент моего меню, для этого мы будем использовать nth-of-type следующим образом:

#top-menu li:nth-of-type(2) {
    margin-right: 140px;
}

Создание шаблонов с помощью :nth-of-type на четных элементах

Если вместо ссылки на конкретный элемент мы хотим ссылаться на элемент через каждые n элементов, мы должны сделать это следующим образом:

#top-menu li:nth-of-type(2n) {
    margin-right: 140px;
}

И результатом будет применение поля ко второму и четвертому элементам:

Создание шаблонов с помощью :nth-of-type на нечетных элементах

Точно так же мы можем обращаться к нечетным элементам следующим образом:

#top-menu li:nth-of-type(2n+1) {
    margin-right: 140px;
}

И результатом будет:

Добавить изменения CSS в WordPress

Мы вносили изменения CSS в инспектор элементов. И это здорово, чтобы проверить это, но как только мы обновим страницу, изменения исчезнут, поскольку эти изменения сохраняются не в Интернете, а в нашем собственном браузере.

Чтобы добавить изменения в WordPress, есть много способов, от изменения файла CSS нашего шаблона до использования самого интерфейса WordPress.

Мы собираемся использовать сам интерфейс WordPress, для этого переходим в меню «Настроить» -> «Добавить дополнительный CSS»:

Мы нажимаем и попадаем на экран, где мы должны добавить CSS:

Бонусный трек: добавление псевдокласса к дочернему элементу

Как мы видели, эти псевдоклассы позволяют нам легко модифицировать родственные элементы, то есть элементы, находящиеся на одном уровне.

Но давайте представим, что мы хотим изменить цвет нечетных элементов нашего меню.

Цвет определяется не в элементе списка (li), а в элементе ссылки (a), который находится внутри элемента списка:

Если мы посмотрим на инспектор элементов:

Если мы присмотримся, то увидим, что мы не смогли создать шаблон следующим образом:

#top-menu li a:nth-of-type(2n+1) {
    color: red;
}

Поскольку каждая ссылка находится в другом li, все они будут первым элементом и все они изменят цвет:

Что нам нужно сделать, так это применить шаблон с псевдоклассом к элементу li следующим образом:

#top-menu li:nth-of-type(2n+1) a {
    color: red;
}

В результате получилось то, что мы действительно хотели:

Как мы видели, это не конец света, если у нас нет идентификатора или класса.

Благодаря псевдоклассам мы можем получить доступ практически к любому элементу нашего HTML.

Надеюсь вам понравилось 😉

Что это за селектор CSS? [класс*=»диапазон»]

спросил

11 лет, 3 месяца назад

Изменено 9 месяцев назад

Просмотрено 290 тысяч раз

Я видел этот селектор в Twitter Bootstrap:

 .show-grid [class*="span"] {
    цвет фона: #eee;
    выравнивание текста: по центру;
    радиус границы: 3px;
    минимальная высота: 30 пикселей;
    высота строки: 30 пикселей;
}
 

Кто-нибудь знает, как называется эта техника и что она делает?

  • css
  • css-селекторы
4

Это селектор подстановочных знаков атрибута. В приведенном вами образце он ищет любой дочерний элемент под . show-grid , у которого есть класс, содержащий CONTAINS span .

Таким образом, в этом примере будет выбран элемент

:

 
Бла-бла-бла
9="что-то"] { }

, который будет работать примерно так: —

 

и «заканчивается на…»

 div[class$="something"] { }
 

, который будет работать на

 

Хорошие ссылки

  • Селекторы атрибутов CSS3: Сопоставление подстрок
  • 30 селекторов CSS, которые вы должны запомнить
  • Селекторы W3C CSS3
5

 .show-grid [класс*="диапазон"]
 

Это селектор CSS, который выбирает все элементы с классом show-grid , у которых есть дочерний элемент, чей класс содержит имя span .

2

Следующее:

 .
show-grid [class*="span"] {

означает, что все дочерние элементы ‘.show-grid’ с классом, СОДЕРЖАЩИМ в нем слово ‘span’, приобретут эти свойства CSS.

 <дел>
  
.span
span6
внимание
испанский
Мариоспэн
испанский
<дел>
.span

диапазон

Я ПОЛУЧИЛ УДАР Я НЕ ПОЛУЧИЛ УДАР, так как мне нужен класс 'span'
Я НЕ ПОЛУЧИЛ УДАР, так как нахожусь за пределами .show-grid

Поражаются все элементы, кроме самого .

в отношении начальной загрузки:

  • SPAN6 : это была методика каркасов Bootstrap 2, которая разделила участок на горизонтальную сетку, основываясь на частях 12. Таким образом, SPAN6 будет иметь ширину 50%.
  • В текущей реализации Bootstrap (v.3 и v.4) вы теперь используете классы
    .col-*
    (например, col-sm-6 ), которые также определяют точку останова мультимедиа для обработки реакции, когда окно сжимается до определенного размера. Проверьте Bootstrap 4.1 и Bootstrap 3.3.7 для получения дополнительной документации. Я бы порекомендовал перейти на более позднюю версию Bootstrap в настоящее время 9= для начала строки и $= для конца строки. Вот хороший справочник по некоторым селекторам CSS.

    Я знаком только с классами начальной загрузки spanX , где X — целое число, но если бы были другие селекторы, которые заканчивались бы в span , они также подпадали бы под эти правила.

    Это просто помогает применять общие правила CSS.

    В моем случае я не могу применить цвет фона для класса из-за динамического изменения имени класса с цифрами

    Пример:

    Выпуск:

     body .ForwardRef-root-198 .aura-ag-grid .ag-row:hover, body .ForwardRef-root-198 .ag-details-grid .ag-row: наведите {
        background-color: #2196f35c !важно;
    }
     

    Решение:

     body div[class*="ForwardRef-root-"] . aura-ag-grid .ag-row:hover, body div[class*="ForwardRef-root-"] .ag- подробная сетка .ag-row: hover {
        background-color: #2196f35c !важно;
    }
     

    Ссылка: ссылка

    Зарегистрируйтесь или войдите в систему

    Зарегистрируйтесь с помощью Google

    Зарегистрироваться через Facebook

    Зарегистрируйтесь, используя электронную почту и пароль

    Опубликовать как гость

    Электронная почта

    Обязательно, но не отображается

    Опубликовать как гость

    Электронная почта

    Требуется, но не отображается

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

    Как писать CSS как профессионал. Лучшие техники перехода от идеи к идеальному результату. | Ник Харалампопулос

    Ник Харалампопулос

    ·

    Подписаться

    5 минут чтения

    ·

    19 февраля 2020 г.

    Дизайн создан pikisuperstar

    Потратив много времени на изучение CSS, вы, наконец, освоили его. Теперь вы чувствуете себя готовым взяться за любой проект. Вы начинаете создавать свой первый проект, и все работает так, как вы ожидаете. Страница выглядит именно так, как вы хотите, но ваш файл CSS содержит более 1000 строк. И тогда вам нужно внести изменения. После нескольких минут попыток найти, где внести изменения, вы понимаете, что вам нужно лучше организовать свой код.

    В этой статье я дам вам лучшие методы, чтобы ваш CSS был организован и его размер был как можно меньше. Сначала позвольте мне представиться. Я разработчик FileMaker Pro более 20 лет. Я создал полные решения, а также участвовал во многих других. Последние пару лет я переключил интерес на веб-разработку. Эта статья является кратким изложением того, что я уже изучил в CSS.

    Перед началом работы необходимо использовать соответствующие инструменты. Необходим редактор кода, такой как VS Code, Brackets, Atom. Они не только подсвечивают синтаксис, но и обнаруживают любые орфографические ошибки. С соответствующими плагинами они также автоматически заполняются, пока вы печатаете, ускоряя весь процесс.

    1. Сброс значений CSS по умолчанию

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

    Мой любимый инструмент для работы — сброс CSS. http://meyerweb.com/eric/tools/css/reset/

    2. Используйте переменные CSS

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

    3. Используйте осмысленные имена для ваших классов и идентификаторов

    Важно заранее подумать, когда вы называете свои классы и идентификаторы. Это облегчит вам жизнь, когда вы захотите внести изменения на странице. Например, если у вас есть класс background-blue, изменение цвета фона может быть бессмысленным.

    Предположим, у вас есть готовый дизайн страницы и вы знаете все необходимые элементы. Вы должны назначить один и тот же класс всем элементам с одинаковым стилем. Например, у вас может быть несколько изображений людей, которые должны быть одинакового размера, границ и теней. Присвойте им одно и то же имя класса class=»people-picture». Для элементов, которые имеют частично одинаковый стиль, но имеют одно или два различия, вы все равно можете назначить им один и тот же класс и использовать второй класс для стилизации только различий. Если отличается только один элемент, например, изображение генерального директора, используйте идентификатор для дополнительного стиля. Помните, что более конкретные селекторы имеют приоритет над менее конкретными.

    4. Используйте комментарии, чтобы упорядочить селекторы CSS в соответствии с вашими элементами HTML

    Обычно при стилизации вы переходите от одной части страницы к другой, при этом для каждой части пишется несколько строк CSS для ее стилизации. Это делает ваш код фрагментированным. Селекторы CSS проще писать в том же порядке, что и элементы страницы. Итак, сначала у вас есть общие стили для всей страницы, затем заголовок, панель навигации, тело и т. д. Таким образом, когда вам нужно внести изменения, очень легко быстро перейти к нужным строкам в вашем файле CSS.

    5. Сгруппируйте селекторы по элементу, классу и идентификатору

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

    6. Не используйте именованные «цвета»

    Используйте шестнадцатеричные коды для ваших цветов. Их сложнее читать, но у них есть некоторые преимущества. Во-первых, они рендерятся быстрее, чем при использовании имен цветов. Во-вторых, браузеры не согласны с тем, что означают названия некоторых цветов. В-третьих, у вас есть выбор из 16 777 216 цветов. Также вам будет легче решать их, как только вы начнете играть с Javascript.

    Но подождите. Вы еще не закончили. Есть еще несколько шагов, необходимых для обеспечения наилучшего опыта для ваших пользователей.

    7. Используйте CSS Validator

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