DevSkillRoad

Дополнительные полезные свойства CSS

🔧 cursor, scroll-behavior, user-select, opacity, visibility, overflow, resize, pointer-events

В этой лекции соберём несколько полезных свойств, которые не вошли в предыдущие разделы.

1. cursor — изменение вида курсора

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

Возможные значения:

.clickable {
    cursor: pointer;
}
.draggable {
    cursor: grab;
}
pointer (рука)
grab (захват)
help (помощь)

✅ Наведите курсор на разные блоки

2. scroll-behavior — плавная прокрутка

Определяет, как будет происходить прокрутка страницы при переходе по якорным ссылкам.

Возможные значения:

html {
    scroll-behavior: smooth;
}
📌 Достаточно добавить это правило один раз на весь сайт. При клике на ссылку типа <a href="#section"> страница будет плавно прокручиваться к нужному элементу.

3. user-select — запрет выделения текста

Запрещает или разрешает пользователю выделять текст на элементе.

Возможные значения:

.no-select {
    user-select: none;
}
Этот текст нельзя выделить (user-select: none)
Этот текст можно выделить (user-select: text)

✅ Попробуйте выделить текст в обоих блоках

4. pointer-events — отключение кликов

Определяет, реагирует ли элемент на действия мыши (клики, наведение, курсор).

Возможные значения:

.no-click {
    pointer-events: none;
}
На этот блок нельзя кликнуть

✅ При клике ничего не происходит (ссылка не сработает, если её обернуть)

5. opacity — прозрачность

Задаёт прозрачность элемента. Значения от 0 (полностью прозрачный) до 1 (полностью непрозрачный).

Возможные значения: число от 0 до 1 (например, 0, 0.5, 1).

.opacity-1 {
    opacity: 1;     /* полностью непрозрачный */
}
.opacity-0-5 {
    opacity: 0.5;   /* полупрозрачный */
}
.opacity-0 {
    opacity: 0;     /* полностью прозрачный (невидим) */
}
opacity: 1 (полностью видим)
opacity: 0.5 (полупрозрачный)
opacity: 0.1 (почти полностью прозрачный)

✅ Сравнение трёх уровней прозрачности

6. visibility — скрытие элемента

Скрывает элемент, но сохраняет занимаемое им место.

Возможные значения:

.invisible {
    visibility: hidden;
}
visible — видим
hidden — скрыт (но место осталось)
Текст после скрытого блока

✅ Элемент с visibility: hidden не виден, но место под ним осталось

📌 Разница между display: none и visibility: hidden:
  • display: none — элемент полностью удаляется из потока (место исчезает)
  • visibility: hidden — элемент не виден, но место остаётся

7. overflow — обрезка содержимого

Определяет, что делать с содержимым, которое не помещается в элемент.

Возможные значения:

.overflow-hidden {
    width: 150px;
    height: 80px;
    overflow: hidden;
}
Этот текст очень длинный и не помещается в блок. Он будет обрезан.

✅ Текст, который не поместился, скрыт

8. resize — изменение размера пользователем

Позволяет пользователю изменять размер элемента мышкой.

Возможные значения:

.resizable {
    resize: both;
    overflow: auto;
}
Потяни за правый нижний угол

✅ Размер можно изменить мышкой

📓 Из тетради: «Эти свойства не используются каждый день, но когда они нужны — без них никуда. Запомните: cursor для обратной связи, scroll-behavior для красоты, user-select для интерфейсов, opacity для полупрозрачности, overflow для обрезки».