【Я впервые участвую в Gengwen Challenge15День, подробности о событии уточняйте:Обновить вызов"]
Лично я считаю, что CSS — это основа, которую должен освоить каждый фронтенд-разработчик, чтобы выполнить соответствующее взаимодействие и отклик терминального устройства. При разработке проекта некоторые небольшие проблемы, которые легко упустить из виду, приводят к тому, что связующий код появляется позже в проекте. В этой статье собраны 10 советов по использованию CSS при разработке некоторых проектов.
1. Используйте относительные единицы
Обычно при разработке проектов мы используемpx
в качестве единицы измерения вместо использования относительных единиц, например:rem
,em
Ждать. В эпоху Интернета всего лучший способ — относительные единицыrem
,vh
,vw
Современные макеты CSS (такие как flexbox и grid) для максимальной поддержки различных терминальных устройств.
абсолютная единица
-
px
: это абсолютная единица, главным образом потому, что она фиксирована и не меняется в зависимости от измерения любого другого элемента.
Относительная единица
-
vw(viewpoint width)
: ширина относительно области просмотра -
vh(viewpoint height)
: высота относительно области просмотра -
rem(font size of the root element)
: относительно корневого ( ) элемента (размер шрифта по умолчанию обычно составляет 16 пикселей) -
em(font size of the element)
: относительно родительского элемента -
%
: относительно родительского элемента
/* 不提倡 */
.wrap {
font-size: 14px;
margin: 10px;
line-height: 24px;
}
/* 建议 */
.wrap {
font-size: 1.2rem;
margin: 0.5rem;
line-height: 1.6em;
}
2. Повторное использование кода
Многие разработчики считают, что повторение кода является высоким, когда речь идет о CSS, что не является хорошей практикой при разработке проектов. К счастью, существуют препроцессоры CSS (sass/scss, less, stylus, Turbine), которые позволяют нам лучше планировать код CSS и улучшать возможность его повторного использования.
Конечно, повторное использование кода нуждается в улучшении, и для разработки структуры кода необходима определенная основа CSS, а именно:
/* 不提倡 */
.container {
background-color: #efefef;
border-radius: 0.5rem;
}
.sidebar {
background-color: #efefef;
border-radius: 0.5rem;
}
/* 建议 */
.container,
.sidebar {
background-color: #efefef;
border-radius: 0.5rem;
}
3. Сброс CSS
Каждый браузер имеет свои собственные стили по умолчанию, поэтому, когда веб-страница не содержит CSS, браузер добавляет к тексту некоторые базовые стили по умолчанию, отступы, поля и т. д.
С помощью универсального селектора*
сброс настроекpadding
,margin
,box-sizing
а такжеfont-family
для достижения этой цели.
так:
* {
padding: 0;
margin: 0;
box-sizing: border-box;
font-family: Arial, Helvetica, sans-serif;
}
ul,
li {
list-style: none;
}
Однако эти проблемы в основном решает фреймворк, новичкам рекомендуется подражать, но не рекомендуется использовать фреймворк с самого начала.
4. Не используйте названия цветов
Не используйтеred
,blue
и т. д. Вместо имен цветов рекомендуется использовать шестнадцатеричное значение цвета.
Зачем? потому что при использовании чего-то вродеred
Такие названия цветов будут отображаться по-разному в разных браузерах или устройствах.
/* 不提倡 */
.container {
background-color: red;
}
/* 建议 */
.container {
background-color: #ff0000;
}
5. Используйте сокращенные свойства
В CSS сокращенные свойства используются чаще, а отдельные свойства используются реже. В частности, какие свойства являются сокращенными, а какие являются индивидуальными. Ниже приведен список некоторых общих свойств, основанных на принципе общих проектов.
сокращенное свойство
background
,font
,margin
,padding
,border
,transition
,transform
,list-style
,border-radius
индивидуальные свойства
rotate
,scale
,background-color
,background-image
,background-position
,padding-left
,padding-right
,padding-top
,padding-bottom
,margin-left
,margin-top
,margin-right
,margin-bottom
,border-top
,border-right
,border-bottom
, border-left
,border-width
,border-color
,border-style
,
/* 不提倡 */
.container {
background-image: url(bg.png);
background-repeat: no-repeat;
background-position: center;
}
/* 建议 */
.container {
background: url(bg.png) no-repeat center;
}
6. Перехват текста
При разработке проекта некоторые списки должны отображать только одну строку текста, а некоторые списки должны отображать текст фиксированных функций.В прошлом это было реализовано путем перехвата символов, но перехват не был равномерным (текстовое содержимое было разные на английском, китайском, знаках препинания и т. д.), а затем в сочетании с адаптацией различных терминалов сейчас нехватка увеличивается.
Лучший способ сделать это прямо сейчас — сделать это с помощью CSS, добавив многоточие в конце текста (…
).
однострочный перехват
элемент должен бытьblock
илиinline-block
, если переполнение скрыто, переполнение текста не действует, и элемент должен иметь определенную ширину или установленную максимальную ширину.
p {
display: inline-block;
max-width: 300px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
Многострочный перехват
Вот способ справиться с этим, если вы заинтересованы, вы можете обратиться к "Изящно обрабатывайте усечение переполнения текста", который вводит другие методы обработки.
p {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3; /* 需要显示的行数 */
overflow: hidden;
}
7. Центрируем по вертикали
Вертикальное центрирование является очень распространенным требованием, существует множество способов добиться вертикального центрирования чего-либо внутри гибкого контейнера:
.flex-vertically-center {
display: flex;
align-items: center;
}
inline
,inline-block
,table-cell
Блок вертикального выравнивания:
img {
/* 只对block有效 */
display: inline-block;
vertical-align: middle;
}
Абсолютный элемент с вертикальным центрированием в относительном контейнере, следующий код:.sub-container
существует.container
Центрировать по вертикали:
.container {
position: relative;
}
.sub-container {
position: absolute;
top: 50%;
transform: translateY(-50%);
}
8. Горизонтально по центру
Подобно вертикальному выравниванию, но центрировать его по горизонтали немного проще.
блок по центру
.block-element {
display: block;
margin: 0 auto;
}
Центрирование встроенного или встроенного текста
.container {
text-align: center;
}
Горизонтально центрируйте абсолютный элемент внутри относительного контейнера:
.container {
position: relative;
}
.sub-container {
position: absolute;
top: 50%;
transform: translateX(-50%);
}
Любой контент внутри гибкого контейнера центрируется по горизонтали:
.flex-vertically-center {
display: flex;
justify-content: center;
}
9. Стилизуйте следующий или предыдущий одноуровневый элемент
Стилизация элементов перед и за элементами, полезная при разработке проекта. Например, для 10 кнопок следующие и следующие одноуровневые элементы текущей кнопки имеют разные цвета.
HTML-код выглядит следующим образом:
<div>
<button>1</button>
<button>2</button>
<button>3</button>
<button>4</button>
<button class="current">current</button>
<button>+ button</button>
<button>~ button</button>
<button>~ button</button>
<button>~ button</button>
<button>~ button</button>
</div>
css-код:
.current ~ button {
background-color: #000;
color: #ffffff;
}
.current {
background-color: #ff0000;
}
.current + button {
background-color: #333;
}
Эффект следующий:
Затем установите стиль передней части текущей кнопки, код css выглядит следующим образом:
button {
padding: 10px 15px;
border: 1px solid #444444;
font-size: 12px;
background-color: #ff0000;
color: #000;
}
.current {
background-color: #000;
color: #fff;
}
.current ~ button {
background: initial;
}
.container {
width: 1000px;
margin: 50px auto;
text-align: center;
}
Эффект следующий:
10. Соотношение сторон
Если вы хотите, чтобы бокс-контейнер имел определенное соотношение сторон, например размер видеопроигрывателя, вы можете сделать это несколькими способами, один из которых является наиболее интуитивным. можно использоватьcalc
функция для установки верхнего заполнения (height * width) / 100%
.
Как показано ниже, создайте720px
Широкий16 x 9
прямоугольник:
html-код:
<div class="container">
<div class="box"></div>
</div>
css-код:
.container {
width: 720px;
}
.box {
padding-top: calc((9 / 16) * 100%);
background: #efefef;
}
Эффект следующий
также можно использоватьafter
Псевдоэлемент для создания пропорционального размера.
.box::after {
content: "";
display: block;
padding-top: calc((9 / 16) * 100%);
background: #eee;
}
Приведенное выше решение приведет к тому, что все элементы внутри должны быть перемещены вверх или должны использовать абсолютное позиционирование. Хорошая новость заключается в том, что CSS добавляетaspect-ratio
Атрибуты.
aspect-ratioЗадает ожидаемое соотношение сторон контейнера box, которое можно использовать для расчета автоматических размеров и выполнения других функций макета.
Суммировать
CSS — это весело, мощно и постоянно растет и совершенствуется.