Вопросы и задачи на собеседованиях 24

Что такое CSS-правило?

CSS правило состоит из двух элементов: селектор и объявление свойства внутри фигурных скобок, у свойства указывается значение.

Типы позиционирования в CSS?

Static — тип позиционирования, который присваивается всем элементам по умолчанию, находятся в основном потоке элементов и перемещать их нельзя. Relative — относительное позиционирование, при котором элемент можно перемещать его начального положения в документе, сам элемент находится в основном потоке. Absolute — абсолютное позиционирование, при котором элемент можно перемещать и он формирует новый поток, позиционирование происходит от первого родителя, в котором position не static, если такого нет, то позиционироваться он будет относительно окна браузера. Fixed — фиксированное позиционирование, такое же, как и абсолютное, но элемент движется вместе с прокруткой экрана, позиционирование происходит от окна браузера, игнорируется позиционирование родительских элементов. Sticky — позиционирование при котором элемент ведет себя как fixed, но может двигаться относительно родителя.

Что такое селектор? И какие селекторы существуют?

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

Что такое специфичность селектора? Как считать вес селектора?

Специфичность селектора базируется на весе селектора. Самый приоритетный — инлайновый, потом ID, далее CLASS, ATTRIBUTE, PSEUDO-CLASS, и самый низкий ELEMENT и PSEUDO-ELEMENT. Для расчета веса селектора необходимо суммировать все входящие в него элементы. Это нужно, чтобы писать чистый CSS без использования important.

Разница между Reset.css и Normalize.css?

Все элементы обладают собственными базовыми стилями. Проблема в том, что во всех браузерах эти стили разные. Чтобы этого избежать можно обнулить и сбросить дефолтные стили с помощью Reset.css (вариант которого сегодня стараются избегать, потому что сброшенные стили частично нужно устанавливать заново) или оптимизировать и привести их к единому стилю с помощью Normalize.css.

Разница между display: none и visibility: hidden?

Оба правила скрывают элемент на странице. display: none — скрывает элемент со страницы, убирает элемент из основного потока, скрывает контент для поисковых роботов, элемент доступен лишь в DOM дереве. visibility: hidden — скрывает элемент со страницы, но не убирает из основного потока. В итоге он не виден, но занимает отведенное ему место в основном потоке.

Разница между блочным и строчным (инлайновым) элементами?

Блочные элементы — идут друг под другом занимая всю ширину, им можно задавать размеры, margin и padding. Строчные элементы — идут друг за другом, в одном ряду может быть несколько и меняют ширину и высоту в зависимости от контента, нельзя задавать width и height, margin и padding сверху и снизу игнорируется.

Разница между классом и идентификатором в CSS?

Есть негласное правило: ID для логики, CLASS для стилей. ID уникален и может быть на странице только один раз, у элемента может быть только один, большой вес, поэтому сложно переопределять стили. CLASS можно задавать и использовать много раз, у элемента может быть много классов.

Что такое схлопывание границ (margin collapsing)?

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

Что такое CSS препроцессор?

Это такая программа, когда ты пишешь CSS подобный код со своими фичами, а на выходе генерируется обычный нативный CSS. Препроцессоры используют ради: переменных, вложенности правил, миксинов (переиспользуемые куски кода), Sass, less, stylus.

Что такое z-index? Как формируется контекст наложения?

Это свойство для позиционированного элемента (т.е. если у него задано свойство position со значением, отличающимся от static) свойство z-index отвечает за: 1. Порядок наложения в текущем контексте наложения (это концепция трёхмерного расположения HTML-элементов вдоль оси Z по отношению к пользователю, находящемуся перед экраном. HTML-элементы занимают это место по порядку, основанному на атрибутах элемента) 2. Возможность создания локального контекста наложения.

Как поддерживать страницы в браузерах с ограниченными функциями?

Если современное свойство не поддерживается старым браузером, то можно попробовать написать аналог. Пользоваться инструментами, помогающими обходить эти ограничения, например: — использовать библиотеки для определения браузеров и подгружать нужные стили — использовать @supports — использовать autoprefixer — использовать can i use — использовать подход Graceful degradation (подход в разработке сайтов, при котором некоторые свойства или элементы дизайна заменяются на аналогичные в старых версиях браузеров, которые не поддерживают все современные возможности) или Progressive enhancement.

Как исправлять специфичные проблемы со стилями для разных браузеров?

Можно использовать комплекс методов, которые помогут учитывать и исправлять верстку в разных браузерах, например: — использовать autoprefixer — использовать reset или normalize — разделять стили для разных браузеров — использовать сторонние библиотеки — тестировать в BrowserStack — использовать CSS хаки.

Глобальные ключевые слова в CSS?

Для всех свойств в CSS помимо стандартных значений используются глобальные ключевые слова: — initial — у каждого из свойств есть значения по умолчанию. Это свойство сбрасывает стили до этих самых свойств по умолчанию — inherit — все свойства делятся на наследуемые и не наследуемые. inherit позволяет указать, чтобы свойство наследовалось, чтобы не перечислять свойства каждому дочернему элементу. — unset — для наследуемых свойств применяет inherit, а для ненаследуемых — initial — revert — сбрасывает значения стилей свойства до указанного в браузере.

Что такое CSS-атрибут attr?

CSS функция, которая может получать значение любого атрибута элемента чтобы потом использовать это значение прямо в таблице стилей. Функция может работать с псевдоэлементами и выводится в content: attr(название атрибута).

  • 1