Мой сброс CSS | Кодементор
Многие разработчики интерфейсов начинают стилизацию своих веб-сайтов с помощью Normalize. У некоторых разработчиков есть личные настройки, которые они добавляют в Normalize.css. У меня тоже есть свои предпочтения.
В этой статье я хочу поделиться этими предпочтениями с вами. личный сброс CSS (который я использую в дополнение к Normalize.css) с вами.
Я разделяю сбросы на 8 категорий:
- Размер коробки
- Удаление полей и отступов
- Списки
- Формы и кнопки
- Изображения и вставки
- Столы
- Скрытый атрибут
- Носкрипт
Размер коробки
box-sizing
Свойство изменяет то, как работает модель CSS Box. Это меняет то, как width
, height
, padding
, border
а также margin
рассчитываются свойства.
Настройка по умолчанию для box-sizing
является content-box
. Я предпочитаю изменить это на border-box
потому что мне легче стиль padding
а также width
.
Для получения дополнительной информации о размерах коробок вас может заинтересовать «Понимание размера коробки».
html {
box-sizing: border-box;
}
*,
*::before,
*::after {
box-sizing: inherit;
}
Удаление полей и отступов
Браузеры устанавливают разные поля и отступы для разных элементов. Эти настройки по умолчанию сбивают меня с толку, когда я не знаю. Когда я кодирую, я предпочитаю сам устанавливать все поля и отступы.
/* Reset margins and paddings on most elements */
body,
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
li,
p,
pre,
blockquote,
figure,
hr {
margin: 0;
padding: 0;
}
Списки
Я использую неупорядоченные списки во многих ситуациях, и мне не нужен disc
стиль в большинстве из них. Вот, я поставил list-style
никому. Когда мне нужно disc
стиль, я установил его вручную на конкретный <ul>
/* Removes discs from ul */
ul {
list-style: none;
}
Формы и кнопки
Браузеры не наследуют типографику для форм и кнопок. Они установили font
к 400 11px system-ui
. Я нахожу это ошеломляющим и странным. Мне всегда приходится заставлять их наследовать элементы-предки вручную.
input,
textarea,
select,
button {
color: inherit;
font: inherit;
letter-spacing: inherit;
}
Разные браузеры по-разному оформляют границы элементов форм и кнопок. Мне не нравятся эти стили по умолчанию, и я предпочел бы установить их на 1px solid gray
.
input,
textarea,
button {
border: 1px solid gray;
}
Я сделал еще несколько настроек кнопок:
- Установите отступ кнопки на
0.75em
а также1em
потому что по моему опыту они кажутся разумными значениями по умолчанию. - Удален по умолчанию
border-radius
это применяется к кнопкам. - Принудительный цвет фона должен быть прозрачным
button {
border-radius: 0;
padding: 0.75em 1em;
background-color: transparent;
}
Наконец, я установил pointer-events: none
к элементам внутри кнопки. Это в основном используется для взаимодействия с JavaScript.
(Когда пользователи нажимают что-то в кнопке, event.target
это то, на что они нажали, а не кнопка. Этот стиль облегчает работу с click
события, если внутри кнопки есть элементы HTML).
button * {
pointer-events: none;
}
Медиа-элементы включают изображения, видео, объекты, фреймы и встроенные элементы. Я стараюсь, чтобы эти элементы соответствовали ширине их контейнеров.
Я также установил эти элементы в display: block
потому что inline-block
создает нежелательные пробелы внизу элемента.
embed,
iframe,
img,
object,
video {
display: block;
max-width: 100%;
}
Столы
Я редко пользуюсь таблицами, но иногда может быть полезно. Вот стили по умолчанию, с которых я начну:
table {
table-layout: fixed;
width: 100%;
}
Когда элемент имеет hidden
атрибут, они должны быть скрыты от просмотра. Normalize.css уже делает это за нас.
[hidden] {
display: none;
}
Проблема этого стиля в его низкой специфичности.
я часто добавляю hidden
к другим элементам, которые я оформляю с помощью класса. Специфичность класса выше атрибута, и display: none
свойство не работает.
Вот почему я предпочитаю подниматься [hidden]
специфика с !important
.
[hidden] {
display: none !important;
}
Носкрипт
Если для работы компонента требуется JavaScript, я добавлю <noscript>
тег, чтобы сообщить пользователям (если они отключили JavaScript).
Это создает стили по умолчанию для <noscript>
ярлык.
/* noscript styles */
noscript {
display: block;
margin-bottom: 1em;
margin-top: 1em;
}
Подведение итогов
Каждый начинает свои проекты по-разному. Пожалуйста, не стесняйтесь использовать любой из упомянутых мною стилей. Вот Репозиторий Github моих личных сбросов CSS.
Есть ли у вас какие-либо рекомендации, которые помогут улучшить этот файл сброса CSS? Если вы это сделаете, не стесняйтесь протянуть руку и дайте мне знать!
Спасибо за чтение. Эта статья изначально была размещена на мой блог. Подписаться на моя рассылка если вы хотите больше статей, которые помогут вам стать лучшим разработчиком внешнего интерфейса.