Какое свойство css делает сайт красивее

От автора: приветствую вас. В css есть достаточно много свойств, если так подумать, но действительно важных и наиболее употребляемых не так уж и много. В этой статье я хотел бы кратко описать самые используемые css свойства.
Что нужно знать для начала
Многие ошибочно называют свойства в css тегами. Так вот, это не совсем правильно. Теги – это команды html языка, и только его одного – все они пишутся в угловых скобках. В css же никаких тегов не нужно. Рассмотрим например, типичные правила для оформления веб-страницы, прописанные в таблице стилей:
body{ background: #fff; color: #ccc; … } |
Это типичный синтаксис этого языка. Тут все очень просто – вначале пишется селектор (body или любой другой), потом открываются фигурные скобки, в которые и записывают все необходимые свойства и их значения.
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнее
Сначала пишется имя свойства, а потом через двоеточие его значение. Желательно каждый новый стиль писать с новой строки, ах да, еще нужно обязательно ставить точку с запятой в конце, иначе ничего не заработает.
Стили для текстового содержимого
Текст – всему голова на веб-странице. Для его оформления есть множество свойств. О них подробно написано в других статьях: Размер шрифта в html, Как задать цвет шрифта в html, Как задать шрифт в html.
С помощью свойств, описанных там, вы сможете сделать с текстом все, что угодно: изменить его размер, начертание, сам шрифт и многое другое.
Например, в css есть возможность определить расстояние между буквами и между отдельными словами. Это делается с помощью letter-spacing и word-spacing соответственно.
Отображение на экране
По умолчанию элементы делятся на строчные и блочные и разница в них только в том, что блочные не могут стоять в одной строке друг с другом. Зато строчным нельзя задать размер, он зависит от того, сколько в них содержимого.
Итак, иногда такое поведение нужно изменить и для этого используется display и множество его значений, но я расскажу лишь о самых основных:
Block – элемент становится блочным (то есть приобретает блочные особенности, даже если он был строчным. С этих пор ему можно записывать размеры, нормально определять внешние отступы и т.д.)
Inline- преобразование в строчный элемент.
Inline-block – блочно-строчный тип. Это такое поведение, при котором элемент сохраняет свои блочные свойства, но при этом может стать в одну строку с другими блоками, если им тоже прописано inline-block и им хватает места по ширине. Стоит помнить, что по умолчанию блок занимает в родителе все свободное место по ширине, потому нужно вручную определить ширину для него (абсолютную или относительную).
Table — преобразование элемента в таблицу (соответственно, есть также значения table-row и table-cell)
None – элемент исчезает со страницы и не оставляет никаких следов, как будто бы его на ней и не было.
Опять же, это не все значения, только самые основные.
Свойства размера
Блоки играют основную роль в создании сайта. Им нужно прописывать определенные размеры, это указывается с помощью таких свойств:
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнее
Width – ширина
Height – высота
Max-width, min-width – максимальная или минимальная ширина. Например, если указать блоку max-width, то эта ширина не будет жесткой, она сможет меняться в зависимости от размеров окна. Если же указать и min-width, то тогда блок не сможет стать уже, чем указанный размер. Такое же можно прописать и для высоты, но это делают гораздо реже.
Также на размеры блочных элементов могут повлиять дополнительные параметры. Например, внутренние отступы. Они задаются с помощью слова padding и значения в пикселях (но можно и в другой величине). Если нужно задать отступ только для одной стороны, можно указать это, дописав к padding- через дефис нужную сторону (left, right и т.д.)
Например, если мы определили ширину контейнера в 600 пикселей, а потом добавили внутренние отступы по бокам в 20 пикселей, то реальная новая ширина составит 640px. Если вы не хотите, чтобы размеры добавлялись, можно воспользоваться таким приемом:
*{ box-sizing: border-box; } |
В итоге теперь, когда вы будете определять ширину через width, в нее автоматически будут включаться внутренние отступы и рамка. Рамку задают с помощью параметра border. Ее тоже можно определить как для всех сторон, так и для каждой отдельно. Синтаксис таков: border: ширина стиль цвет;
Соответственно, записав так:
div{border: 3px solid blue;} |
К блокам добавляется синяя рамка со всех сторон толщиной 3 пикселя с каждой. Суммарно ширина увеличивается на 6 пикселей, а если вы не хотите этого, нужно использовать то самое box-sizing.
Цвет и фон
Это основные параметры, которые отвечают за восприятие нами информации. В значении в этим свойствам записывается одно и то же – цвет, который можно определить с помощью ключевых слов, в шестнадцатеричном коде или каком-то цветовом формате (чаще всего rgb). Единственное отличие – цвет определяется с помощью свойства color, а фон – с помощью background.
CSS стили внутри тега – так тоже можно
Правильно будет создавать отдельный файл формата css и в нем писать все необходимые стили, но также существует возможность встроить все стили в html, в один тег. Этот тег – style. Он парный, писать его нужно обязательно в пределах тега head. Используется так:
<style> p{ font-size: 14px; } … другие стили </style> |
Синтаксис при написании свойств в этом теге идентичен тому, если бы мы записывали все это в отдельной таблице стилей.
Чтобы подробнее познакомиться с основными свойствами, я советую вам пройти наш курс по основам языка CSS, в котором вы можете узнать ту, базу, которая нужна для верстки любого макета. Оставайтесь с webformyself, чтобы увеличивать свои познания в сайтостроении.
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнее
PSD to HTML
Верстка сайта на HTML5 и CSS3 с нуля
Смотреть
От автора: во время работы над проектом Juju GUI, просматривая пул запросов, я обнаружил, что css свойство box-sizing написано без вендорных префиксов. И я подумал, что следует проверить, а нужны ли они перед тем, как обращаться в пул для их добавления. В поисках я был приятно удивлен, что существует гораздо больше свойств с полной поддержкой, чем я думал. Я проштудировал сайт Can I use и открыл для себя пару очень интересных вещей.
filter: sepia(1); — поддержка в браузерах 78%
CSS фильтры можно использовать для добавления эффекта размытия, оттенков серого, увеличения яркости, контрастности и оттенков. Помню еще пару лет назад меня просили создать эффект размытия как отдельный элемент, перекрывающий контент страницы. CSS в тот раз мне не помог, так как размытие не поддерживалось ни в одном браузере. И я пошел по кривой дорожке хакерства и сделал текст прозрачным, добавил ему тень и через JavaScript заменил все обычные изображения на размытые. Способ сработал, но после этого мне нужен был душ.
Я был шокирован, когда узнал, что сегодня фильтры поддерживаются 78% браузеров, а точнее всеми кроме Edge, IE и Opera Mini. Т.е. можно было бы написать следующее:
img { transition: -webkit-filter .5s; -webkit-filter: blur(0); } .overlay-active img { -webkit-filter: blur(1); } |
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнее
Хотя этого мало для всех браузеров, уже можно отойти от грязных трюков и воспользоваться техникой прогрессивного улучшения. К тому же, ничего страшного, если пользователи IE увидят просто альфа прозрачный слой, а не размытый.
CSS3 селекторы – поддержка в браузерах 97.73%
CSS3 селекторы ознаменовали новую эру возможностей в CSS и дали целую кучу новых методов. Самые интересные селекторы приведены ниже. [foo^=»bar»], символ ^ это регулярное выражение, которое означает, что будут выбираться атрибуты, начинающиеся на «bar». Простой пример использования:
a[href^=»http»] { background: url(external-icon.svg) no-repeat; padding-left: 10px; } |
Мы выбираем все ссылки на сторонние сайты и автоматически добавляем к ним небольшую иконку. [foo$=»bar»], похожее регулярное выражение, только в этом случае рассматривается конец строки.
a[href$=».pdf»]:after { content: «(PDF)»; } |
В примере выбираются ссылки на PDF файлы и вставляется подпись «PDF», чтобы пользователь понимал, куда ведет эта ссылка. :nth-child() выбирает элементы по их появлению в последовательности. К примеру:
li:nth-child(n2) { background-color: light-grey; } |
Будут выбраны каждый второй элемент, к которым применится светло-серый фон. Можно использовать и odd, но я хотел показать пример с использованием именно nth. :empty выбирает любой пустой элемент, который не содержит в себе ничего, даже HTML комментариев. Подходит:
Не подходит:
Псевдокласс :empty может быть полезен при скрытии пустых элементов с паддингом, которые могут сдвинуть контент. Также прячется рамка пустых элементов списка. :not() – селектор отрицания. Элемент выбирается по параметрам. Если условие равно false, то стили применяются.
.menu:not(.is-hidden) { // стили } |
foo ~ bar – комбинатор. Работает по принципу foo + bar, но менее строгий. В методе с + будет выбран только первый bar после foo. А в методе с ~ будут выбраны все bar после foo.
h2 ~ p { margin-top: 1em; } |
Вы, скорее всего, были под сильным впечатлением, как и я, что эти селекторы плохо поддерживались. Возможно, вы думали, что для их использования потребуется напрячься немного больше обычного и воспользоваться полифилами или техникой прогрессивного улучшения. Однако я был удивлен, когда узнал, что CSS3 селекторы на 97%73% поддерживаются во всех браузерах, даже в IE8 и выше.
Calc() – поддержка в браузерах 80.75%
Это одна из моих любимых новых функций в CSS. С помощью calc() в CSS можно вычислять математические выражения с разными единицами измерения. К примеру, расположение фоновой иконки справа от поля ввода.
Все мы помним, вы добавляете фоновую иконку и размещаете ее right center. Непыльная работа. Вы показываете готовый дизайн, а заказчик просит вас сдвинуть иконку на 10px вправо от элемента. Иконка идет фоном, и не хочется создавать ради нее отдельный элемент. И вы ставите фон на 90% center. На разных разрешениях данный подход не работает, но тут нам поможет calc!
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнее
.search-field { background-position: calc(100% — 10px) center; … } |
Отличный вариант. Также если вы хотите, чтобы плавающий сайдбар занимал всю высоту экрана кроме хедера, можно написать:
.sidebar { height: calc(100% — 50px) } |
С такой хорошей поддержкой в 80.75% и отсутствием префиксов пора задуматься над добавлением данной функции в свой арсенал.
CSS анимация – поддержка в браузерах 90.29%
После смерти Flash мы искали, чем заменять Flash анимацию. К нашему счастью CSS анимация появилась довольно быстро. Мне было интересно, но я все же не решался использовать все эти новые функции без подходящего фолбэка. На данный момент CSS анимация может похвастаться поддержкой в 90.29% с префиксом «-webkit-». Можно смело повышать юзабилити ваших UI компонентов. К примеру, анимированные уведомления, привлекающие внимание пользователя.
Если вы хотите оживить ваш сайт или веб-приложение с помощью анимации, можно добавить немного движения в начале уведомления, как в этом простом примере:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | .notification-open { -webkit-animation: dropDown .6s; -webkit-animation-fill-mode: forwards; -webkit-animation-timing-function: ease-in-out; animation: dropDown .6s; animation-fill-mode: forwards; animation-timing-function: ease-in-out; } @-webkit-keyframes dropDown { from {-webkit-transform: translate(0,-100px);} to {-webkit-transform: translate(0,25px);} } @keyframes dropDown { from {-webkit-transform: translate(0,-100px);} to {-webkit-transform: translate(0,25px);} } |
Совет: не анимируйте стили позиционирования типа top и margin. Это вызывает перерисовку страницы, и в некоторых случаях заставляет браузер заново вычислять позиции видимых элементов.
@supports – поддержка в браузерах 67.85%
С помощью @supports можно проверить, поддерживается ли свойство или нет, и по этому условию стилизовать элементы. К примеру, правило можно использовать для проверки поддержки flexbox. Если поддержка отсутствует, мы возвращаемся к обтеканиям.
@supports (display: flex) { div { display: flex; } } @supports not (display: flex) { div { float: left; } } |
@supports можно сочетать с ключевым словом not. Один из подводных камней в том, что с помощью данного правила в большинстве случаев мы проверяем старые браузеры на поддержку новейших свойств. А старые браузеры сами по себе не поддерживают такой тип запроса.
На момент написания статьи правило поддерживается на 67.85%. Значение далеко от идеального, но оно явно перекрывает последние версии основных браузеров, что уже хорошо. Данное правило не поддерживается только в IE и Opera Mini. Данное правило также полезно, так как мы теперь можем отказаться от Modernizr.
Flexbox – поддержка в браузерах 95.4%
Об этой функции я ничего не слышал. Да шучу! О данном инструменте говорят в сотнях блогов и на различных конференциях. Отличный инструмент для позиционирования элементов, как горизонтально, так и вертикально. С его помощью можно легко центрировать элементы или задавать элементы одной высоты. Также можно менять порядок, в котором элементы отображаются на странице. Вас когда-нибудь просили поменять порядок изображений и текста секции для маленьких экранов? Меня просили, и flexbox легко с этим справляется.
@media only min-width(768px) { .row { display: flex; flex-direction: column-reverse; } } |
И все же я опасался использовать данный инструмент для чего-то важного, так как и с другими случаями я не верил в такую высокую поддержку. Flexbox может гордо похвастаться своей поддержкой в 95.4%. Он поддерживается во всех последних браузерах, даже в Opera Mini. Отсутствует поддержка только в IE9 и ниже, но это можно пережить.
3D трансформации – поддержка в браузерах 89.87%
С помощью данной функции можно позиционировать элементы в третьем измерении. Также есть свойство перспективы, с помощью которого можно задать z-index 3D элемента.
Все мы видели удивительной красоты примеры использования 3D на чистом CSS, но уровень поддержки в браузерах меня сильно удивил. С поддержкой в 89.87% для префикса webkit данное свойство уже сегодня можно использовать. Я бы даже предложил не добавлять фолбэк, так как в большинстве случаев функционал 3D элемента будет работать. Быстрый пример – карточка, которая будет крутиться и переворачиваться, если навести на нее мышь.
.card { -webkit-transform-style: preserve-3d; transform-style: preserve-3d; -webkit-transform: rotateX(0deg) rotateY(0deg); transform: rotateX(0deg) rotateY(0deg); transition: transform 1s; } .card:hover { -webkit-transform: rotateX(180deg) rotateY(180deg); transform: rotateX(180deg) rotateY(180deg); } |
Заключение
Я прочитал много блогов и прослушал еще больше подкастов по front-end разработке, но так и не понял, что нужно было читать документацию свойств на сайте Can I use. Серьезно, снимаю шляпу перед создателями сайта.
Если вы не уверены в поддержке того или иного свойства, Can I use это святой грааль. Рекомендую всем front-end разработчикам прочитать на сайте информацию по всем свойствам, их поддержке и известных проблемах. Места лучше для улучшения навыка в CSS не найти.
Надеюсь, вы видите все те удивительные вещи, которые можно разрабатывать с помощью свойств из этого поста. 2016 год – год, когда можно начать использовать новые свойства и создавать богатый, захватывающий опыт работы с пользователем. Веб-приложение или же обычный сайт, никогда не ждите разрешения работать с новыми свойствами. Просто необходимо понимать уровень поддержки и использовать соответствующий фолбэк. А теперь вперед, пользуйтесь новыми свойствами!
Автор: Anthony Dillon
Источник: https://12devsofxmas.co.uk/
Редакция: Команда webformyself.
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Узнать подробнее
PSD to HTML
Верстка сайта на HTML5 и CSS3 с нуля
Смотреть
В этой статье мы познакомимся с CSS и сделаем симпатичную форму входа на HTML.
Для начала давайте сразу набросаем очень простенькую и НЕ красивую форму :
<html>
<head>
<meta charset=»UTF-8″>
</head>
<body>
<form>
<h1>Вход</h1>
<div>
<input>
<label>Email</label>
</div>
<div>
<input>
<label>Пароль</label>
</div>
<button>Войти</button>
</form>
<body>
</html>
Да уж, согласитесь убогенько. Что бы сделать все красивей мы воспользуемся CSS(Cascading Style Sheets — каскадные таблицы стилей) — язык описания внешнего вида документа, написанного с использованием языка разметки. Преимущественно используется как средство описания внешнего вида веб-страниц, написанных с помощью языков разметки HTML и XHTML.
Первым делом.
Первым делом мы подключаем внешний файл стилей c помощью тега <link> , атрибут href=»style.css» указывает на путь к файлу.
<head>
<link rel=»stylesheet» href=»style.css» type=»text/css»>
</head>
Теперь давайте создадим файл style.css и напишем первый стиль в нем . Разместим нашу форму по середине экрана в центре.
body {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
}
Тут мы используем Flexbox систему компоновки элементов на веб-странице — display: flex; Выравниваем по осям justify-content: center; align-items: center; Ну и body {} говорит нам что этот стиль применяется ко всему телу тега <body>.
Теперь создадим стиль для всей формы , добавим тень , поменяем шрифт и расстояние между буквами.
.form {
width: 300px; # Ширина 300 пикселей
padding: 32px; # Внутренний отступ 10 пикселей
border-radius: 10px; # Закруглённую рамку или скруглить углы элемента.
box-shadow: 0 4px 16px #ccc; # Тень элемента. 0 — смещение Х, 4 — смешение Y, 16 — степень размытия, #ccc — цвет.
font-family: sans-serif; # Шрифт.
letter-spacing: 1px; # Расстояние между буквами
}
Ну и конечно не забудем добавить этот стиль в HTML файл:
<form class=»form»>
Делай два.
Едем дальше. Создадим стиль для кнопочки(Войти) поменяем цвет , шрифт и поправим заголовок(Вход)
.form_title {
text-align: center; # Текст по центру
margin: 0 0 32px 0; # margin:10px 5px 15px 20px; — верхний отступ 10px — правый отступ 5px — нижний отступ 15px — левый отступ 20px.
font-weight: normal;# Насыщенность шрифта, убираем жирность.
}
Кнопочка :
.form_button {
padding: 10px 20px;
border: none; # Без границы блока.
border-radius: 5px; # Радиус закругления
font-family: sans-serif;
letter-spacing: 1px;
font-size: 16xp;
color :#fff ; # Цвет текста
background-color: #0071f0; # Цвет фона
outline: none; # Внешней границы элемента
cursor: pointer; # Тип курсора при наведение
transition: 0.3s; # transition позволяет делать плавные переходы между двумя значениями какого-либо CSS свойства
}
Добавляем стили в HTML :
<h1 class=»form_title»>Вход</h1>
<button class=»form_button»>Войти</button>
Поля ввода, подсказки.
Дальше на очереди поля в вода. Если вы обратили внимание каждое поле находиться в своем блоке <div> . Задаем стиль для блоков :
.form_grup {
position: relative; # Положение элемента устанавливается относительно его исходного места.
margin-bottom: 32px;# Внешний отступ снизу элемента
Теперь стиль поля ввода :
.form_input {
width: 100%;
padding: 0 0 10px 0;
border: none; # Без рамки.
border-bottom: 1px solid #e0e0e0; # Нижняя рамка 1 пиксель, цвет #e0e0e0
background-color: transparent; # Фон будет прозрачным.
outline: none;
transition: 0.3s;
}
Стиль подсказок :
.form_label {
position: absolute; # Абсолютное позиционирование.
top: 0; # Смещение позиционированного элемента относительно верхнего края
z-index: -1; #
color: #9e9e9e; # Цвет текска.
transition: 0.3s;
}
CSS свойство z-index определяет порядок расположения позиционированных элементов по оси Z. Это позволяет контролировать наложение перекрывающихся элементов.
<div class=»form_grup»>
<label class=»form_label»>Email</label>
<input class=»form_input»>
</div>
<div class=»form_grup»>
<label class=»form_label»>Пароль</label>
<input class=»form_input»>
</div>
Уже намного лучше выглядит ?
Немного анимации, завершаем.
Начнем с кнопки , если она в фокусе или на нее нажимают меняем цвет бэкграунд:
.form_button:focus,
.form_button:hover{
background-color: rgba(0, 113, 240, 0.7); RGBA Цвет фона и значение прозрачности.
}
Когда поле ввода в фокусе , поменяем цвет нижней границы:
.form_input:focus {
border-bottom: 1px solid #1a73a8;
}
Так же поменяем свойства подсказок, сдвинем их в верх и уменьшим шрифт :
.form_input:focus ~ .form_label {
top: -18px;
font-size:12px;
color: #e0e0e0;
}
Уже совсем хорошо , но есть один косяк. Когда уходит фокус, подсказка возвращается на место.
Мы исправим это с помощью псевдоэлемент placeholder для стилизации дефолтного текста в элементе input или textarea. Большинство современных браузеров поддерживают это. Первым делом добавим его в HTML :
<input class=»form_input» placeholder=» «>
Теперь под правами CSS стиль :
.form_input:focus ~ .form_label,
.form_input:not(:placeholder-shown) ~ .form_label {
top: -18px;
font-size:12px;
color: #e0e0e0;
}
Надеюсь вам эта статья пригодилась и понравилась . Успехов.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.