Irbisa · Шпаргалка
HTML и CSS
Семантический HTML, блочная модель, display и позиционирование, единицы, Flexbox и Grid, схлопывание отступов, адаптивность и container queries, CSS-переменные и темы, CSS Modules, Tailwind и CSS-in-JS
Что такое семантическая вёрстка (semantic HTML) и зачем использовать
<nav>,<main>,<article>или<button>вместо<div>?<body> <header> <nav aria-label="Main"> <a href="/">Home</a> <a href="/pricing">Pricing</a> </nav>…Что такое блочная модель CSS (box model) и какой ширины будет
.cardна экране сbox-sizing: border-boxи без него?.card { width: 300px; padding: 20px; border: 2px solid #ccc; margin: 16px;} .card.border-box { box-sizing: border-box;}Чем отличаются блочные, строчные и строчно-блочные элементы (block, inline и inline-block)?
Чем отличаются три способа скрыть элемент:
display: none,visibility: hiddenиopacity: 0?/* Hidden on screen, still read by screen readers */.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px;…Чем отличаются
static,relative,absolute,fixedиsticky, и относительно чего позиционируется элемент сabsolute?.avatar { position: relative; /* the badge is placed against this box */}.avatar .badge { position: absolute; top: -4px;…Чем отличаются
px,em,rem,%,vhиdvh, и что использовать для размера шрифта?Как отцентрировать элемент по горизонтали и вертикали, и какой способ вы бы выбрали сегодня?
/* Both axes, any child size */.center-grid { display: grid; place-items: center; min-height: 100dvh;}…Чем псевдоклассы отличаются от псевдоэлементов, и что даёт
:has()?/* pseudo-element: a tooltip arrow that is not in the DOM */.tooltip::after { content: ""; position: absolute; top: 100%; left: 16px;…Что такое схлопывание margin (margin collapsing) и что такое блочный контекст форматирования (BFC)?
.card { background: white;}.card h2 { margin-top: 24px; /* escapes: the card itself moves down 24px */}…Что делают
flex-grow,flex-shrinkиflex-basis, и что на самом деле означаетflex: 1?.row { display: flex; gap: 8px;} /* equal columns whatever their content */…Найдите баг: длинное имя файла во flex-строке не обрезается многоточием и выталкивает кнопки за край экрана.
/* <li class="file-row"> <div class="info"><p class="name">quarterly-report-final-v2.pdf</p><p>2.4 MB</p></div> <button>Rename</button> <button>Delete</button> </li> */.file-row { display: flex; gap: 8px;}.info { flex: 1;}.name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis;}Как
fr,minmax()иrepeat()задают размеры треков в CSS Grid, и чемauto-fillотличается отauto-fit?.page { display: grid; grid-template-columns: 240px minmax(0, 1fr); grid-template-areas: "header header" "nav main";…Что такое CSS custom properties (CSS-переменные), чем они отличаются от переменных Sass, и как сделать на них светлую и тёмную темы?
:root { --surface: #ffffff; --text: #111827; --accent: #2563eb; color-scheme: light;}…Как построить адаптивную раскладку на медиазапросах по принципу mobile-first, и когда лучше подходят container queries?
/* base: one column for phones */.layout { display: grid; gap: 16px;}…Как
srcset,sizesи<picture>отдают подходящую картинку, и как не дать картинкам сдвигать раскладку?<picture> <source type="image/avif" srcset="/img/hero-800.avif 800w, /img/hero-1600.avif 1600w" sizes="100vw" /> <img src="/img/hero-1600.jpg" srcset="/img/hero-800.jpg 800w, /img/hero-1600.jpg 1600w" sizes="100vw"…Чем CSS
transitionотличается от анимации на@keyframes, и какие свойства можно анимировать плавно?.menu { opacity: 0; transform: translateY(-8px); visibility: hidden; transition: opacity 150ms ease-out, transform 150ms ease-out, visibility 150ms;}…Как изолировать стили в React-приложении: BEM, CSS Modules, Tailwind или CSS-in-JS, и чем приходится платить за каждый подход?
import styles from './Button.module.css'; // .button, .primary and .bar inside interface ButtonProps { primary?: boolean; children: React.ReactNode;}…Чем приходится платить за runtime CSS-in-JS вроде styled-components или Emotion, и почему Server Components подталкивают команды к стилям без рантайма?
// before: Title.tsx, styles built at runtime from a propconst Title = styled.h1<{ $accent: string }>` font-size: 2rem; color: ${(p) => p.$accent};`;…