Корзина
Светлая тема
Войти
DEVNEW.ORG » Блог » Уроки по HTML » Урок 8. Селекторы CSS. Задаем CSS-правила
Урок 8. Селекторы CSS. Задаем CSS-правила
admin
24-10-2023, 20:12 197 0

Урок 8. Селекторы CSS. Задаем CSS-правила

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

Селекторы по тегу, классу и id

Этот тип селекторов указывает на все элементы страницы с определенным тегом. Чтобы прописать стили по тегу, необходимо взять название тега и в фигурных свойствах отметить все свойства для них. Что касается селектора по классу, то необходимо указать сначала название класс, а потом в фигурных скобках css-свойства для него. Для селектора по id ситуация идентичная.

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

<div class="content">
    <p>...</p>
    ...
    <p class="last">...</p>
</div>


p {
margin-bottom: 10px;
color: #000;
font-size: 14px; }
.last {
margin-bottom: 25px;
}

Вложенные и соседние селекторы

Далее поговорим о вариациях, как можно проще задавать стили для различных элементов, не прибегая к использованию классов. Часто мы должны задать стили только для вложенных элементов. Допустим определенные стили ТОЛЬКО у ссылок меню или ТОЛЬКО у абзацей определенного блока, например, блока с контентом. Для этого используется понятие вложенных селекторов. Необходимо слева направо задать порядок вложенности.

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

<div class="content">
    <p>...</p>
    ...
    <p>...</p>
</div>


p {
margin-bottom: 10px;
color: #000;
font-size: 14px; }
.content p {
color: #eee;
font-size: 16px;
matgin-bottom: 15px;
}

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

Например, для селектора по классу .sec применется отступ сверху, если он стоит после элемента с классом .first:

<div class="content">
    <p class="first">...</p>
    <p class="sec">...</p>
</div>


.first + .sec {
margin-top: 20px;
}

Вложенные и соседние селекторы можно комбинировать. Если зададим в примере перед конструкцией .first + .sec класс .content, то свойства применяются для второго класса в случае, если он идет после первого и они оба лежат в блоке с классом .content.

Стили для дочерних селекторов. Чем дочерние элементы отличаются от потомков

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

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

<div class="content">    
<span>...</span>
<p class="first">
<span>...<span>
</p> <p class="sec">...</p> </div>


.content > span {
...
}

Псевдоклассы

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

  • first-child и last-child. Задает стили для первого и последнего дочернего элемента внутри родителя. Например, стили только для первого абзаца внутри контентной области.
    p:first-child{...}
  • nth-of-type. Идея схожа с предыдущем псевдоклассом. Указывает на элеменет в зависимости его расположения внутри родителя. Только здесь еще точнее, может отметить не только первый и последний элементо, но и с любым порядковым номер. Синтаксис такой селектор:nth-child(значение). Значение может быть целочисленное или заданное с помощью формулы. Например, для всех четных абзацей можно использовать такую запись:
    p:nth-of-type(2n){...}
  • hover. С помощью этого псевдокласса можно отследить такое действие пользователя, как наведение на элемент и задать при этом стилистические особенности. Например, при наведении на ссылку уберем ее подчеркивание.
    a:hover {text-decoration: none;}
  • :link, :visited и :active. Специальные псевдоклассы для работы со ссылками. С помощью них можно добавить стили непосещенных, посещенных и активных ссылок.
  • :focus. Псевдокласс для элементов в фокусе, например для input куда мы на данный момент вводим значение.



Cмотрите также

Игры для Linux 17-04-2023, 19:46
[xfnotgiven_posterlogo]

Mindustry Linux

[/xfnotgiven_posterlogo] [xfgiven_posterlogo][/xfgiven_posterlogo]

Mindustry — игра в жанре Tower Defense с элементами стратегии. Строительство башен, защита от врагов, производство материалов для строительства.

Возможности

  • Жанр Tower Defense с элементами стратегии.
  • Создание конвейеров для подачи боеприпасов в башни.
  • Производство/добыча материалов для строительства.
  • Создание материалов.
  • Создание дронов для автоматической добычи ресурсов.
  • Одиночная кампания.
  • Обучающий уровень в рамках кампании.
  • Сетевая игра.
  • Пользовательская игра — настраиваемые условия.
  • Редактор уровней.

    Установка через Flatpak

    Установка:

    flatpak install flathub com.github.Anuken.Mindustry

    Запуск:

    flatpak run com.github.Anuken.Mindustry

    Установка через Snap

    sudo snap install mindustry
Программы для Linux 17-04-2023, 19:10
[xfnotgiven_posterlogo]

PikoPixel Linux

[/xfnotgiven_posterlogo] [xfgiven_posterlogo][/xfgiven_posterlogo]

PikoPixel — программа для рисования пиксельных изображений.

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

Основные возможности

  • Инструменты рисования: карандаш, линия, прямоугольник, окружность, заливка, ластик, пипетка.
  • Инструменты выделения: прямоугольное выделение, выделение произвольной области, выделение замкнутой области.
  • Поддержка слоев.
  • Поддержка прозрачности слоев.
  • Редактирование сетки.
  • Настраиваемый фон холста.
  • Поддержка горячих клавиш.
  • Неограниченное количество отмены действий.
  • Экспорт увеличенных изображений.
  • Диалог выбора цвета с несколькими палитрами.
  • Интерфейс с плавающими панелями.

    Установка в ArchLinux из AUR

    git clone https://aur.archlinux.org/pikopixel.git
    cd pikopixel
    makepkg -sri

    Установка в Gentoo

    sudo emerge -a gnustep-apps/pikopixel
Программы для Linux 17-04-2023, 19:11
[xfnotgiven_posterlogo]

QEMU Linux

[/xfnotgiven_posterlogo] [xfgiven_posterlogo][/xfgiven_posterlogo]

QEMU — виртуальная машина (эмулятор). Программа для запуска гостевых операционных систем внутри хост-системы. Поддерживает аппаратную виртуализацию.

Возможности

  • Эмуляция хост-системы (CPU, память, устройства) для запуска-гостевых операционных систем.
  • Поддержка виртуализации KVM, Xen, Hax, Hypervisor.Framework для исполнения гостевых-систем непосредственно на CPU.
  • Эмуляция в режиме «User mode» для запуска приложений, скомпилированнных под один CPU, на другом CPU. В данном режиме всегда выполняется эмуляция CPU.

    Поддерживаемые хост-архитектуры

    Arm kvm (64 bit only), tcg, xen
    MIPS kvm, tcg
    PPC kvm, tcg
    RISC-V kvm, tcg
    s390x kvm, tcg
    SPARC tcg
    x86 hax, hvf (только 64-bit), kvm, nvmm, tcg, whpx (только 64-bit), xen


    Установка в Ubuntu (LinuxMint)

    sudo apt install qemu

    Установка в Fedora

    sudo dnf install qemu

    Установка в openSuse

    sudo zypper install qemu

    Установка в Gentoo

    sudo emerge -a acct-user/qemu
Игры для Linux 17-04-2023, 19:37
[xfnotgiven_posterlogo]

KGoldrunner Linux

[/xfnotgiven_posterlogo] [xfgiven_posterlogo][/xfgiven_posterlogo]

KGoldrunner — аркада, в которой герой бегает по лабиринту, поднимается по лестницам, выкапывает ямы и уклоняется от врагов.

Возможности

  • Необходимо собрать все золотые самородки и пройти на следующий уровень. Враги также охотятся за золотом и за героем.
  • Простая 2D графика.
  • В игре представлено сотни различных уровней. От простых до очень сложных.
  • Два режима игры: классический и KGoldrunner-mode, в котором враги более умные.
  • Управление выполняется с помощью клавиатуры и мыши.
  • Сохранение и загрузка игры.
  • Поддерживается изменение темы оформления.
  • Воспроизведение решения, подсказки, демонстрация прохождения.
  • Доступен редактор уровней.

    Установка через Flatpak

    Установка:

    flatpak install flathub org.kde.kgoldrunner

    Запуск:

    flatpak run org.kde.kgoldrunner

    Установка через Snap

    sudo snap install kgoldrunner

    Установка в Ubuntu (LinuxMint)

    sudo apt install kgoldrunner

    Установка в ArchLinux (Manjaro)

    sudo pacman -S kgoldrunner

    Установка в Fedora

    sudo dnf install kgoldrunner

    Установка в openSuse

    sudo zypper install kgoldrunner

    Установка в Gentoo

    sudo emerge -a kde-apps/kgoldrunner
Игры для Linux 17-04-2023, 19:35
[xfnotgiven_posterlogo]

Space Cadet Pinball Linux

[/xfnotgiven_posterlogo] [xfgiven_posterlogo][/xfgiven_posterlogo]

Space Cadet Pinball — игра пинбол для Linux. Создана с помощью реверс-инжиниринга на базе windows-игры Space Cadet.

Установка через Flatpak

Установка:

flatpak install flathub com.github.k4zmu2a.spacecadetpinball

Запуск:

flatpak run com.github.k4zmu2a.spacecadetpinball

Отзывы (0)

Кликните на изображение чтобы обновить код, если он неразборчив