🀹 25 CSS-Ρ‚Ρ€ΡŽΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π²Π΅Π±-Π΄ΠΈΠ·Π°ΠΉΠ½ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ понимания возмоТностСй CSS. ΠœΡ‹ расскаТСм ΠΎ 25 ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Ρ… CSS-Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒΠ½Ρ‹Π΅, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Π±-сайты, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ послСдним Ρ‚Ρ€Π΅Π½Π΄Π°ΠΌ.

Π­Ρ‚ΠΎΡ‚ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» взят ΠΈΠ· нашСй СТСнСдСльной email-рассылки, посвящСнной Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Ρƒ. ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² числС ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, ΠΊΡ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ дайдТСст.

scroll-behavior: smooth – Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΡƒ страницы ΠΏΠ»Π°Π²Π½ΠΎΠΉ:

html {
  scroll-behavior: smooth;
}

a[href^="https"] – позволяСт ΡΡ‚ΠΈΠ»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ внСшниС ссылки ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ…:

a[href^="https"] {
  color: dodgerblue;
}
πŸ‘¨β€πŸ’»πŸŽ¨ Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅Ρ€Π°
Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅Ρ€Π°Β»

~ – Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈ стилизуСт ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты с использованиСм ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ‚ΠΎΡ€Π° ΠΎΠ±Ρ‰Π΅Π³ΠΎ родства. НапримСр, Ρ‚Π°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΡ‚ΠΈΠ»ΡŒ ΠΊ Π°Π±Π·Π°Ρ†Π°ΠΌ, ΠΈΠ΄ΡƒΡ‰ΠΈΠΌ послС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ уровня:

h2 ~ p {
  color: blue;
}

:not(.special) – Π²Ρ‹Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΈ стилизуСт элСмСнты, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ класса:

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

Адаптивный Ρ€Π°Π·ΠΌΠ΅Ρ€ ΡˆΡ€ΠΈΡ„Ρ‚Π° Π² зависимости ΠΎΡ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° экрана:

h1 {
  font-size: 5vw;
}

Π¦Π΅Π½Ρ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ элСмСнтов ΠΊΠ°ΠΊ ΠΏΠΎ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΠΈ, Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΠΈ:

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

Π‘ 28 августа ΠΏΠΎ 4 сСнтября ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ 35% скидку Π½Π° курсы ΠΎΡ‚ Proglib Academy ΠΈ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΡΡ‚Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΈ вострСбованными спСциалистами.

***

Π£Π²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° элСмСнта ΠΏΡ€ΠΈ Π½Π°Π²Π΅Π΄Π΅Π½ΠΈΠΈ курсора:

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

ΠšΠ°ΡΡ‚ΠΎΠΌΠ½Ρ‹ΠΉ курсор:

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

Вочная настройка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² насыщСнности, ΡˆΠΈΡ€ΠΈΠ½Ρ‹ ΠΈ Π½Π°ΠΊΠ»ΠΎΠ½Π° ΡˆΡ€ΠΈΡ„Ρ‚Π°:

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

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ тСкста ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ количСством строк:

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

Настройка внСшнСго Π²ΠΈΠ΄Π° полосы ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ ΠΏΠΎΠ΄ Π΄ΠΈΠ·Π°ΠΉΠ½ сайта:

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

АвтоматичСскоС Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ ΠΏΠΎ высотС:

.container {
  display: flex;
}
 
.column {
  flex: 1;
}

Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ Ρ„ΠΎΠ½ΠΎΠ²ΠΎΠ³ΠΎ изобраТСния ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ΅:

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

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ слоТных ΠΌΠ°ΠΊΠ΅Ρ‚ΠΎΠ² с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ количСством ΠΊΠΎΠ΄Π°:

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

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ прСдпочтСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠΎ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠΉ схСмС (свСтлая/тСмная) Π½Π° основС систСмных настроСк:

: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);
}

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚ΡƒΡ€Π° Π²ΠΎΠΊΡ€ΡƒΠ³ тСкста:

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

Π—Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½ΠΈΠ΅ элСмСнта ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ΅:

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

Π“Ρ€Π°Π΄ΠΈΠ΅Π½Ρ‚Π½Ρ‹Π΅ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹:

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

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ элСмСнта слоТной Ρ„ΠΎΡ€ΠΌΡ‹:

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

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ… Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π°:

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

text-underline-offset – Π·Π°Π΄Π°Π΅Ρ‚ расстояниС ΠΌΠ΅ΠΆΠ΄Ρƒ тСкстом ΠΈ Π»ΠΈΠ½ΠΈΠ΅ΠΉ подчСркивания (пригодится, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠΊΠ²Ρ‹ выходят Π·Π° ниТнюю Π³Ρ€Π°Π½ΠΈΡ†Ρƒ строки):

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

inset – сокращСнноС свойство для задания полоТСния элСмСнта сразу с Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… сторон:

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

object-position – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ вмСстС с object-fit: cover для контроля Ρ‚ΠΎΠ³ΠΎ, какая Ρ‡Π°ΡΡ‚ΡŒ изобраТСния Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π΅Π·ΠΊΠ΅:

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

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ отступа свСрху ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠ΅ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ элСмСнту страницы (ΠΏΠΎΠ»Π΅Π·Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ фиксированноС мСню свСрху ΠΈ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°Π»ΠΎ содСрТимоС ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΠΏΠΎ якорным ссылкам):

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

Π•ΡΡ‚ΡŒ Π»ΠΈ Ρƒ вас свои Π»ΡŽΠ±ΠΈΠΌΡ‹Π΅ CSS-ΠΏΡ€ΠΈΠ΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ вошли Π² наш список?

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
06 фСвраля 2017

15 прСкрасных ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² для Sublime Text

ВстрСчайтС список ΠΏΠ΅Ρ€Π²ΠΎΠΉ нСобходимости – 15 самых Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² для Subli...