25 CSS-трюков, которые должен знать каждый разработчик

1. Плавная прокрутка страницы

html {
  scroll-behavior: smooth;
}

2. Стилизация внешних ссылок

a[href^="https"] {
  color: dodgerblue;
}

3. Стилизация последующих элементов

h2 ~ p {
  color: blue;
}

4. Стилизация элементов без определенного класса

li:not(.special) {
  font-style: italic;
}

5. Адаптивный размер шрифта

h1 {
  font-size: 5vw;
}

6. Центрирование элементов

.container {
  display: grid;
  place-items: center;
}

7. Увеличение размера элемента при наведении

button:hover {
  transform: scale(1.05);
  transition: transform 0.3s ease-in-out;
}

8. Кастомный курсор

button {
  cursor: url('custom-cursor.png'), auto;
}

9. Настройка параметров шрифта

body {
  font-family: 'Inter', sans-serif;
  font-variation-settings: 'wght' 700, 'wdth' 75;
}

10. Ограничение текста определенным количеством строк

p {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
}

11. Настройка внешнего вида полосы прокрутки

::-webkit-scrollbar {
  width: 10px;
}

::-webkit-scrollbar-thumb {
  background-color: darkgrey;
  border-radius: 10px;
}

::-webkit-scrollbar-track {
  background-color: lightgrey;
}

12. Автоматическое выравнивание колонок

.container {
  display: flex;
}

.column {
  flex: 1;
}

13. Закрепление фонового изображения при прокрутке

.hero {
  background-image: url('background.jpg');
  background-attachment: fixed;
  background-size: cover;
}

14. Создание сложных макетов с использованием Grid

.container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

15. Предпочтение цветовой схемы

:root {
  --bg-color: white;
  --text-color: black;
}

@media (prefers-color-scheme: dark) {
  :root {
    --bg-color: black;
    --text-color: white;
  }
}

body {
  background-color: var(--bg-color);
  color: var(--text-color);
}

16. Создание контура вокруг текста

h1 {
  -webkit-text-stroke: 2px black;
  color: white;
}

17. Закрепление элемента при прокрутке

header {
  position: sticky;
  top: 0;
  background-color: white;
  z-index: 1000;
}

18. Градиентные границы

button {
  border: 5px solid transparent;
  background-image: linear-gradient(to right, red, blue);
  background-clip: border-box;
  border-radius: 10px;
}

19. Создание элемента сложной формы

div {
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  background-color: teal;
}

20. Масштабирование изображений в контейнерах

img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

21. Расстояние между текстом и линией подчеркивания

.nav-link:hover {
  text-decoration: underline 2px solid green;
  text-underline-offset: 6px;
}

22. Сокращенное свойство для задания положения элемента

.positioned-element {
  inset: 5px 3px 1px 4px;
}

23. Контроль отображаемой части изображения

.image {
  height: 350px;
  width: 500px;
  object-fit: cover;
  object-position: center bottom;
}

24. Отступ сверху при прокрутке к элементу

#section-header {
  scroll-margin-top: 100px;
}