Курс Профессиональная вёрстка. Создание адаптивной вёрстки на HTML 5 и CSS 3 | Обучение программированию онлайн | GeekBrains
Бесплатная помощь в подборе профессии
Бесплатная помощь в подборе курса
Бесплатная помощь в подборе профессии
Бесплатная помощь в подборе курса
Бесплатная помощь в подборе профессии
Бесплатная помощь в подборе курса
ближайшее время10:0010:3011:0011:3012:0012:3013:0013:3014:0014:3015:0015:3016:0016:3017:0017:3018:0018:3019:00
8 800 700-68-41Бесплатно по России
Создание адаптивной вёрстки на HTML 5 и CSS 3
Курс позволит освоить программирование с применением HTML5 и CSS3. В ходе практической разработки front-end части интернет-магазина студенты научатся применять код к макетам Bootstrap, работать с двумя препроцессорами: языками LESS и SASS. Освоят адаптивную вёрстку сайтов, принципы кроссбраузерности и валидности при разработке интерфейса веб-ресурса.
Чему Вы научитесь
- Работать с HTML5 & CSS3;
- Верстать адаптивные сайты;
- Использовать принципы валидной кроссбраузерной вёрстки на практике;
- Работать с препроцессорами LESS & SASS;
- Применять Bootstrap;
- Позиционировать элементы с использованием Flexbox.

Что Вы получите
Видеозаписи всех онлайн-занятий
Методички и практические задания
Общение с одногруппниками
Сертификат об окончании обучения
Средние оценки
4.8 / 5
Программа
4.9 / 5
Преподаватель
Преподаватели
Максим Голев
4.9
Ср. оценка
Алексей Кадочников
4.9
Ср. оценка
Александр Пряхин
4.9
Ср. оценка
Игорь Кубиков
4.9
Ср. оценка
Александр Ерофеев
4.9
Ср. оценка
Мария Коршунова
4.9
Ср. оценка
Анна Русяева
4.8
Ср. оценка
Артур Горохов
4.8
Ср. оценка
Тимофей Сафронов
4.8
Ср. оценка
Ирина Малиновская
4.8
Ср.
оценкаИлья Овчинников
4.8
Ср. оценка
Артём Филипоповский
4.8
Ср. оценка
Иван Иванов
4.8
Ср. оценка
GeekBrains
4.8
Ср. оценка
Geek Brains
4.7
Ср. оценка
Алексей Урывский
4.3
Ср. оценка
- Программа курса
- Отзывы выпускников • 4192
1
Урок 1. Позиционирование элементов. Практическая вёрстка.
Позиционирование элементов, расположение элементов на странице (позиционирование элементов по вертикали, по горизонтали).
2
Урок 2. Структура HTML5, знакомство с формами
Новые семантические элементы HTML5. Практические примеры применения семантических тегов для создания структуры сайта. Улучшим традиционные формы. Проверка форм на ошибки заполнения.
3
Урок 3.
Практическое применение BootstrapЧто такое bootstrap? Как подключить к любому макету? Как добавить первые элементы с использованием Bootstrap? Создание целой страницы сайта с использованием новых знаний.
4
Урок 4. Препроцессоры: применение на практике
Знакомство с препроцессорами: для каких целей используются, где лучше применять, каково практическое значение. Рассмотрим синтаксис двух самых популярных препроцессоров: LESS, SASS; применим новые знания к нашему проекту.
5
Урок 5. Эффекты перехода и трансформации в CSS3
Эффекты перехода; применение трансформации; поворот элементов при наведении на него; создание анимации средствами CSS3. Для чего нужна данная технология и где ее следует применять? Добавим трансформацию для некоторых элементов нашего сайта.
6
Урок 6. CSS3: медиа-запросы, адаптивная верстка.

Познакомимся с синтаксисом медиа-запросов; создадим несколько простых запросов; узнаем, для каких проектов лучше их использовать; найдем практическое применение для нашего проекта.
7
Урок 7. Практическое применение адаптивной верстки
Адаптивная верстка всего макета, добавление плавных переходов и перестроений сайта; позиционирование внутренних элементов с использованием Flexbox; добавление последних новшеств, которые изучили за курс; сдача верстки курсового проекта; итоги курса; завершение работы над проектом.
8
Урок 8. Grid layout, новые возможности CSS3
Понятие и применение адаптивного дизайна. Основы синтаксиса и примеры.
Верстка сайта html и css заказать на ФРИЛАНС.ру
Фрилансеры
верстка сайта html и cssРазработка сайта «Правила камня»
Разработка сайта «Movchan’s Group»
tech — IT аутсорсинговая компания»> Asap.tech — IT аутсорсинговая компания
Event-агентство Свои люди
FOOD.pro — автоматизация пищевой промышленности
Разработка интернет-магазина растений
Разработка интернет-магазина автозапчастей
ru»> https://davayzakazhem.ru
vaydu
https://awindex.ru
OriginalVirginia
Flowery-simphony
Партнерка TrulyPVP
Приложение для кинотеатра — дизайн для iOS и Android
Крипто платформа — дизайн сайта UX/UI
ONEFIVEOH — Canada’s Online Campfire
Landing)»> Hivemind (Адаптивная верстка. Landing)
Идеалист (Адаптивная верстка)
Разработка логотипа, фирменных бланков и круглой печати «Иномил»
Экотопливо
Jazz & Musical School
Отель Miraggio
Worldchefs Congress & Expo
Пиццерия
Ремонт квартир
IBIL
GoldenTobacco
Давинчи Шторы
Dota 2 Merchat MMR
Угли CocoBali
Вебинар по Instagram
Сайт для ЧОП на WordPress
Holcor
BloggerADSBlogger
Boost Technology
PIONNE cosmetic
Миссия 32
АгроГарант
Лендинг для «Безопасный квартал»
Сайт для «Strigun Wood»
Лендинг для «4Tigers»
Верстка сайта — Freelance.
RuВерстка сайта — это превращение макетов дизайна в страницы сайта. Грамотная верстка не менее важна, чем дизайн. Ведь именно от верстки зависит, как будут связаны между собой страницы сайта и что увидит посетитель, нажав, к примеру на кнопку «заказ» — бланк заказа или кривую страницу.
В этом каталоге вы найдете опытных верстальщиков, которые смогут сделать ваш сайт красивым и валидным (не нарушающим правила кодинга), таким. чтобы он корректно отображался в разных браузерах. Предложите работу напрямую или откройте проект (вакансию).
В том числе и такие Верстка как верстка сайта html и css.
Верстка HTML/CSS
Верстка сайтов – HTML5′ CSS3. Блочная, кроссбраузерная, адаптивная верстка для мобильных устройств, семантика кода, валидность, фреймворк Bootstrap, CSS препроцессор SCSS. Есть базовые знания по Javascript, jQuery, Ajax, PHP. Работаю с графическими редак…
5 000 Руб 7 Дней
Верстка Лендинга одностраничника
Сверстаю лендинг одностраничник по макету PSD(Фотошоп).
3 000 Руб 3 Дня
Доработка верстки сайта
Доработаю верстку Вашего сайта. Добавлю новые блоки верстки, изменю цвет, добавлю анимационные эффекты, добавлю шрифты, изображения, видео и другое.
1 000 Руб 1 День
Верстка сайта
Создание адаптивного сайта с нуля HTML 5/CSS 3 БЭМ, Bootstrap, jQuery, Pixel Perfect, animate.
Чистый, грамотный, валидный код. Поддержка разных разрешений.
5 000 Руб 3 Дня
Веб-верстка лендингов и многостраничных сайтов
Perfect pixel и адаптивная верстка по вашему макету
600 Руб 1 День
Начинающий верстальщик HTML/CSS
Я только начинаю верстать, приму оплату только после того как вы будете довольны, тоесть, если вы остались чем то недовольны и не хотите платить, то можете просто не платить!
1 000 Руб 3 Дня
HTML/CSS | OTUS
Что даст вам этот курс
На курсе вы освоите лучшие практики современной верстки сайтов, а также:
- научитесь интерпретировать макеты дизайнеров;
- создавать семантическую разметку вебсайтов;
- создавать макеты любой сложности без гор библиотек и плагинов;
- освоите основной стек технологий и приемы в верстке: box model, positioning, float, flexbox, grid, media quesries, fallbacks, CSS resets, autoprefixer, postcss;
- пройдете основы оптимизации, BEM номенклатуру;
- научитесь работать с фреймворками bootstrap и tailwind.

С первого же месяца вы будете заниматься в условиях, приближенных к реальной разработке: научитесь верстать сайт по макету, делать верстку адаптивной, тестировать ее на различных мобильных устройствах, деплоить промежуточные версии.
К концу обучения вы соберете портфолио из выполненных работ и сделаете готовый проект, который сможете опубликовать и показывать на собеседованиях.
Программа предназначена для новичков, не знакомых с версткой, а также для начинающих, кто:
— знаком с основами HTML и CSS и хочет развиваться в области верстки страницы;
— начал осваивать HTML и CSS, но хочет систематизировать знания и получить экспертную обратную связь;
— веб дизайнеров, который хотели бы сами воплощать свои макеты в жизнь.
Преподаватели
Мария Коршунова
Илья Филимонов
Артем Сальников
Артур Горохов
Преподаватель физики и информатики по образованию.
Работает в сфере веб-разработки с 2011 года. Работала над сайтами как крупных холдингов (Redmond, BMV, Сибирская корона, ВО Рестэк и другие), так и небольших стартапов. За это время поработала с более чем сотней различных проектов.
С 2016 года преподаёт HTML, CSS и основы JavaScript начинающим и продолжающим верстальщикам. Автор и методист курсов: «Создание и продвижение сайтов», «Веб-разработчик с нуля», «Основы программирования на JavaScript», «JS для детей», «CSS-анимации для frontend-разработчика».
Стремится сама развиваться в индустрии, а также доступно объяснять даже самые сложные аспекты профессии тем, кто хочет к ней присоединиться.
Работает frontend-разработчиком в компании «Барс Груп» в Казани.
На данный момент пишет регистр для минздрава (ведение учета заболевших).
В свободное время программирует, изучает языки, занимается плаванием, путешествует.
Магистр по специальности «Программная инженерия».
Около 5 лет опыта в продакшн проектах, на данный момент работаю в компании ОТР2000 на позиции Senior software engineer. Преподавал курсы по frontend разбработке от EPAM. Основной тех. стек: React JS + TypeScript
Учился в Гикбрейнс на факультете вэбразработки. Работал в 1 бите, потом в вэбстудии примерно 6 месяцев. Потом ушел на фриланс. На платформу Upwork. Сейчас веду 8 проектов на поддержке в том числе сайты правительства Пензенской области и ПГУ + частные сайты. Увлекаюсь фитнесом и охотой.
Преподаватели
Мария Коршунова
Преподаватель физики и информатики по образованию. Работает в сфере веб-разработки с 2011 года. Работала над сайтами как крупных холдингов (Redmond, BMV, Сибирская корона, ВО Рестэк и другие), так и небольших стартапов. За это время поработала с более чем сотней различных проектов.
С 2016 года преподаёт HTML, CSS и основы JavaScript начинающим и продолжающим верстальщикам.
Автор и методист курсов: «Создание и продвижение сайтов», «Веб-разработчик с нуля», «Основы программирования на JavaScript», «JS для детей», «CSS-анимации для frontend-разработчика».
Стремится сама развиваться в индустрии, а также доступно объяснять даже самые сложные аспекты профессии тем, кто хочет к ней присоединиться.
Илья Филимонов
Работает frontend-разработчиком в компании «Барс Груп» в Казани.
На данный момент пишет регистр для минздрава (ведение учета заболевших).
В свободное время программирует, изучает языки, занимается плаванием, путешествует.
Артем Сальников
Магистр по специальности «Программная инженерия». Около 5 лет опыта в продакшн проектах, на данный момент работаю в компании ОТР2000 на позиции Senior software engineer. Преподавал курсы по frontend разбработке от EPAM. Основной тех. стек: React JS + TypeScript
Артур Горохов
Учился в Гикбрейнс на факультете вэбразработки.
Работал в 1 бите, потом в вэбстудии примерно 6 месяцев. Потом ушел на фриланс. На платформу Upwork. Сейчас веду 8 проектов на поддержке в том числе сайты правительства Пензенской области и ПГУ + частные сайты. Увлекаюсь фитнесом и охотой.
Корпоративное обучение для ваших сотрудников
Подробнее
>
ДругаяИП
Нажимая кнопку, я принимаю условия Политики конфидециальности
Мы обещаем не присылать вам спам
Мы получили Вашу заявку, в ближайшее время с Вами свяжется наш менеджер.
Программа обучения
В процессе обучения вы получите комплексные знания и навыки.
Модуль 1 Введение в Web
C 28 декабря
Тема 1. Введение в Web
Тема 2. Version Control
Тема 3. Почему html — это не язык программирования
Тема 4. CSS: история стилей
Тема 5. Box model в деталях
Тема 6. Позиционирование элементов в деталях
Тема 7.
Selector priority
Модуль 2 Layouts (макеты)
C 30 января
Тема 8. Layout: введение, основы
Тема 9. Layout techniques
Тема 10. Flexbox layout
Тема 11. Grid layout
Тема 12. Поддержка браузеров и fallbacks
Модуль 3 Адаптивный веб-дизайн
C 15 февраля
Тема 13. Введение в media queries
Тема 14. Mobile first vs desktop first media queries
Тема 15. Особенности мобильной верстки
Тема 16. Анимации CSS
Модуль 4 Coding style
C 1 марта
Тема 17. Номенклатура
Тема 18. Bootstrap
Тема 19. Tailwind
Модуль 5 JavaScript Basic
C 13 марта
Тема 20. Введение в JavaScript
Тема 21. Настройка окружения для верстки
Тема 22. Webpack (часть 1)
Тема 23. Webpack (часть 2)
Тема 24. Оптимизация ассетов
Тема 25. Деплой страницы
Тема 26.
Аналитика и поддержка
Модуль 6 Проектная работа
C 5 апреля
Тема 27. Выбор темы и организация проектной работы
Тема 28. Защита проектных работ
Скачать подробную программу
Получить подробную программу обучения
Мы обещаем не присылать вам спам
Получить консультацию
Наш специалист свяжется с вами в ближайшее время. Если у вас возникли трудности в выборе курса или проблемы технического плана, то мы с радостью поможем вам.
Я принимаю условия Политики конфиденциальности и Пользовательского соглашения
Я принимаю условия Политики конфиденциальности и Пользовательского соглашения
Мы получили Вашу заявку, в ближайшее время с Вами свяжется наш менеджер.
Заберете с собой:
- основные и дополнительные материалы, и видеозаписи занятий;
- образцы кода;
- собственный проект, который можно будет показывать при трудоустройстве;
- сертификат о прохождении обучения.

- получите приглашение пройти собеседование в компаниях-партнерах (эту возможность получают самые успешные студенты).
Дата выдачи сертификата: 18 апреля 2023 года
Ваш сертификат
Прошедшие открытые вебинары
Открытый вебинар — это настоящее занятие в режиме он-лайн с преподавателем курса, которое позволяет посмотреть, как проходит процесс обучения. В ходе занятия слушатели имеют возможность задать вопросы и получить знания по реальным практическим кейсам.
Маргарита Образцова
7 мая 2021 года в 20:00
Оставьте заявку, чтобы получить доступ к записям прошедших мероприятий. Записи всех мероприятий появятся в этом блоке
Партнеры ждут выпускников этого курса
ROCKET SALES
Открытые технологии
Zebomba games
Посещая наш сайт, вы принимаете политику использования cookie-файлов
Для поступления на курс мы просим слушателей пройти вступительное тестирование, которое позволит
определить, соответствуют ли ваши знания минимальному порогу поступления в группу.
Тестирование
«отсекает» новичков, для которых программа будет слишком сложна. Тот, кто его не сдаст, не сможет
оплатить курс и начать обучение.
При положительном результате (уровни А, В, С и D) вы получите уведомление по электронному адресу и доступ в личный кабинет для оплаты. В случае неудачи (уровни E и F) возможно повторное прохождение, но только через 2 недели.
Как насчет приятных бонусов? Выбирайте!
Мы предлагаем массу возможностей для того, чтобы оплата обучения стала для Вас доступнее:
Бесплатный трансфер
Обучение за счет работодателя
Оплатить в рассрочку
Оплатить в кредит
Реферальные программы
Программы лояльности
Welcome-cкидка: 21 день
На ваш номер отправлен код. Введите его сюда.
Если смс не пришла, проверьте, правильно ли введен номер
Напомнить о тестировании
Через 1 часЧерез 3 часаЧерез 6 часовЧерез 12 часовЗавтра
Неверный логин или пароль
Макет CSS — Happy Coding
Учебники / Учебники по HTML / Макет CSS
Предыдущий: CSS Далее: Хостинг
tutorialhtmlcss
- Divs
- Краткая история
- Таблицы
- УС 1
- КСС 2
- Поплавки
- Блоки
- Flexbox
- Свойства Flex
- дисплей: гибкий
- flex-направление
- гибкая пленка
- выравнивание содержимого
- выравнивание элементов
- зазор
- гибкий рост
- гибкий термоусадочный
- гибкая основа
- гибкий
- Узнать больше
- Сетка
- Свойства сетки
- дисплей: сетка
- сетка-шаблон-столбцы
- сетка-шаблон-строки
- Размещение предметов в сетке
- Именованные ячейки
- Другие свойства сетки
- Макет Святого Грааля
- Макеты раскроя
- Адаптивный дизайн
- Мобильный дизайн и прогрессивное улучшение
- Медиа-запросы
- Инструменты разработчика
- Узнать больше
Теперь вы знаете, как использовать HTML для создания содержимого веб-страницы, и знаете, как использовать CSS для оформления этого содержимого.
В этом руководстве рассказывается о различных способах размещения элементов на странице.
К настоящему моменту вы, вероятно, уже встречали HTML-теги, определяющие различные типы контента, например Тег Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. Этот код создает желтый элемент div, содержащий некоторый контент, включая два других элемента div. Существуют и другие теги HTML, связанные с макетом, например По умолчанию элементы div отображаются на отдельной строке, поэтому несколько элементов div отображаются друг над другом. В остальной части этого руководства рассказывается о том, как изменить это поведение по умолчанию. В CSS есть несколько разных способов позиционирования элементов, и лично меня очень сбивает с толку такое количество вариантов выбора. Должен ли я использовать поплавки? Или встроенные блоки? Или оба? Или ни то?? Я обнаружил, что понимание истории CSS помогло мне лучше понять сам CSS. Итак, давайте пробежимся по краткой истории макетов в CSS. HTML был выпущен примерно в 1993 году. На заре веб-разработки не было такой вещи, как CSS! Стилизация была сделана с помощью тегов HTML, таких как Например, чтобы создать веб-страницу с левой навигацией и разделом контента, вы могли сделать это до CSS: Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. Использование таблиц для макета может работать, но обычно считается плохой идеей. Его сложнее поддерживать, и он плохо работает со средствами чтения с экрана. Я включил этот пример сюда, чтобы предоставить исторический контекст, но в настоящее время вы не должны использовать таблицы для макета. Первая версия CSS была выпущена в 1996 году и в основном касалась стилизации текстового содержимого: шрифтов и цветов, а не макета. Позиционирование элементов по-прежнему осуществлялось с помощью HTML-таблиц. HTML 3.2 был выпущен в 1997 году и включал тег Затем в 1998 году был выпущен CSS 2, и он включал правила позиционирования контента. Например, вы можете установить для свойства Вот как можно создать левую навигацию, используя плавающие элементы: Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. Плавающие элементы по-прежнему широко используются в макетах CSS, хотя у них есть несколько недостатков. А вот как вы можете сделать это со встроенными блоками: Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. Как и поплавки, встроенные блоки все еще используются в макетах CSS, но у них есть и свои недостатки. Например, браузеры будут переносить встроенный блок на следующую строку, если содержимое становится слишком широким. Попробуйте добавить длинный текст в блок содержимого, а затем уменьшите ширину браузера, чтобы понять, что я имею в виду! После CSS 2 история CSS стала довольно сложной, в основном потому, что CSS был разделен на кучу разных модулей со своими историями. Flexbox позволяет определить отношения между родительскими и дочерними элементами. Само по себе это может показаться не очень полезным, но это чрезвычайно мощный инструмент, когда вы пытаетесь разместить кучу контента на своей странице. Например, с помощью flexbox вы можете указать браузеру отображать несколько элементов подряд, и вы можете задать каждому дочернему элементу разные правила относительно того, как изменять свой размер. А всю остальную работу за вас сделает браузер! Чтобы использовать flexbox, установите Например, вот приведенный выше пример навигации слева, на этот раз с использованием flexbox: Редактор кода ? См. Чтобы использовать flexbox, установите Вот несколько общих свойств flex: Это свойство, с которого все начинается. Установите это для родительского элемента (часто div), чтобы указать ему использовать правила гибкости для размещения его дочерних элементов (элементов, которые он содержит). Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. По умолчанию flex-контейнеры (элементы с Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. По умолчанию flex-контейнеры размещают свои дочерние элементы в одной строке или столбце. Если контейнер содержит больше элементов, чем может поместиться в одну строку, эти элементы сглаживаются. Чтобы обернуть дочерние элементы вместо их сглаживания, установите Редактор кода ? См. Значение по умолчанию: Для гибких контейнеров с обернутыми дочерними элементами вы также можете установить свойство По умолчанию flex-контейнеры размещают свои дочерние элементы, начиная с крайнего левого (или сверху для контейнеров с Чтобы изменить способ размещения дочерних элементов, установите свойство Есть несколько значений на выбор: Попробуйте изменить этот код, чтобы увидеть разницу: Редактор кода ? См. По умолчанию flex-контейнеры выравнивают своих дочерних элементов по верхнему краю (или по левому краю для контейнеров с Чтобы изменить способ выравнивания дочерних элементов, установите свойство Есть несколько вариантов на выбор: Попробуйте изменить этот код, чтобы увидеть разницу: Редактор кода ? См. По умолчанию гибкие контейнеры не добавляют пробелов между своими дочерними элементами. Вы можете изменить это с помощью Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. По умолчанию элементы внутри flex-контейнеров не будут расширяться, чтобы заполнить дополнительное пространство в контейнере. Вы можете указать элементу заполнить любое дополнительное пространство, используя свойство Свойство Это немного сбивает с толку, поэтому вот пример: Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. В этом примере класс Попробуйте изменить код, чтобы увидеть эффект от разных значений. По умолчанию, если flex-контейнер недостаточно широк (или достаточно высок для контейнеров с Чтобы разные дочерние элементы сжимались с разной скоростью, установите их свойство Это похоже на Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. По умолчанию элементы внутри flex-контейнеров устанавливают свои собственные размеры либо через свойства Вместо того, чтобы полагаться на собственный размер элемента, вы можете установить его начальный размер, используя свойство Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. Возможности Есть несколько причин: С помощью flexbox вы можете установить свойства На самом деле эти три свойства настолько полезны, что их можно объединить в одно свойство с именем Итак, если у вас есть этот CSS: Вы можете сократить его до этого: Чтобы понять, почему это полезно, попробуйте изменить ширину родительского элемента div в этом примере: Редактор кода ? См. (Может помочь просмотр полноэкранной версии.) Все дети начинают с определенных размеров, благодаря их свойствам Когда вы увеличиваете родительский элемент div, красный дочерний элемент вообще не растет, потому что его Когда вы уменьшаете родительский элемент div, красный дочерний элемент сжимается быстрее, чем синий дочерний элемент, потому что их 9Свойства 0097 flex-shrink : Это означает, что вы можете установить эти свойства, а затем не беспокоиться о точном размере вашего контента или о точном размере окна браузера пользователя. Выше мы рассмотрели основы flexbox, но есть и другие свойства и значения, которые вы можете использовать. Чтобы узнать о них больше, ознакомьтесь с полным руководством по Flexbox по CSS-трюкам. И, конечно же, не бойтесь искать в Интернете, если вы в чем-то не уверены. Там много отличных ресурсов! Flexbox наиболее полезен, когда у вас есть одна строка (или столбец) содержимого. Контейнеры Flexbox могут упаковывать свое содержимое в несколько строк (или столбцов) с помощью свойства Это, вероятно, подходит для многих макетов, но если вы хотите больше контролировать расположение элементов, вы можете использовать сетка макет. Чтобы представить макет сетки в историческом контексте, технически он еще официально не выпущен, но по состоянию на 2022 год почти каждый браузер уже поддерживает его. CSS странный! Вот приведенный выше пример навигации слева с использованием сетки: Редактор кода ? См. Чтобы использовать сетку, задайте Это свойство, с которого все начинается. Установите это для родительского элемента (часто div), чтобы указать ему использовать правила сетки для размещения его дочерних элементов (элементов, которые он содержит). Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. Само по себе это не очень интересно, потому что по умолчанию сетка представляет собой один столбец элементов. По умолчанию сетка представляет собой один столбец элементов. Чтобы разделить сетку на несколько столбцов, используйте свойство Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. Свойство Размерами могут быть несколько различных типов значений: См. grid-template-columns на MDN для других типов значений. Приведенный выше пример из Подобно Определив Редактор кода ? См. Попробуйте изменить этот код, чтобы вместо него было 3 столбца и 2 строки! По умолчанию элементы занимают одну ячейку в своей родительской сетке и отображаются в том порядке, в котором они указаны в HTML-коде. Вы можете заставить элемент занимать более одной ячейки, используя следующие свойства: Вот пример: Редактор кода ? См. Красный div начинается со столбца 1 и продолжается до столбца 3, поэтому он занимает оба столбца. Зеленый блок начинается со строки 2 и продолжается до строки 4, поэтому он занимает строки 2 и 3. Также обратите внимание, что зеленый блок появляется перед синим блоком, хотя в HTML он идет после него. Это может быть удобно для того, чтобы ваш основной контент был первым в вашем HTML, что может помочь с такими вещами, как программы чтения с экрана и SEO. Вы также можете использовать сетку В приведенных выше примерах числа используются для указания того, какие ячейки занимает элемент. Вместо этого вы можете назвать свои ячейки, а затем указать расположение элементов, используя эти имена. Сначала добавьте имена в столбцы и строки вашего контейнера, используя На самом деле вы называете строк между ячейками. Это тот же CSS, что и выше, за исключением того, что теперь несколько строк между ячейками имеют имена. Затем используйте эти имена для размещения дочерних элементов: Вот полный код: Редактор кода ? См. У сетки много других свойств и сокращений для написания меньшего количества строк кода. Вместо того, чтобы пытаться перечислить их все здесь, я рекомендую вам прочитать Полное руководство по сетке в CSS Tricks, CSS Grid Layout в W3Schools и CSS Grid Layout в MDN. Что еще более важно, я призываю вас попробовать! Если вы хотите поэкспериментировать с макетом сетки (или с флексбоксом, или с чем-то еще), то лучшее, что вы можете сделать, это создать рабочий файл или проект CodePen и попробовать! Получите что-нибудь работающее, а затем посмотрите, есть ли другие способы написать свой код. Один из макетов настолько популярен, что ему дали имя: Святой Грааль. Макет «Святой Грааль» — это веб-сайт с заголовком, левой боковой панелью, областью основного содержимого, правой боковой панелью и нижним колонтитулом. Вероятно, вы можете назвать несколько веб-сайтов, использующих этот макет. Вот несколько примеров макета Святого Грааля: Использование flexbox: Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. Использование сетки: Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. Если вам нужен вызов и если вы хотите понять, что делает flexbox и сетку такими популярными, попробуйте реализовать макет Святого Грааля, используя только числа с плавающей запятой или блоки! Выше я перечислил несколько подходов к созданию макетов, но вам не обязательно выбирать только один! Фактически, большинство веб-сайтов используют комбинацию всего вышеперечисленного. Например, вы можете использовать сетку для создания внешнего макета, в котором размещаются заголовок, боковая панель, основное содержимое и нижний колонтитул. Ваш заголовок может использовать flexbox для создания ряда навигационных ссылок. Основной контент может содержать изображения, плавающие влево или вправо. Попробуйте представить каждый раздел вашей страницы как отдельный макет, а затем используйте инструменты, наиболее подходящие для этого конкретного раздела. Обеспечение того, чтобы ваш веб-сайт работал на всех мониторах, было важной частью верстки и дизайна с первых дней существования HTML. Но в конце 2000-х и начале 2010-х это стало еще сложнее, когда мобильные телефоны стали более популярными для просмотра веб-страниц. Как сделать так, чтобы ваш веб-сайт хорошо выглядел на маленьком мобильном телефоне, широкоэкранном мониторе и т. д.? Одним из популярных способов думать об этом является адаптивный дизайн . Адаптивный дизайн — это идея, что ваш сайт должен реагировать на изменения размера экрана. Вот пример: Адаптивный дизайн означает, что вы показываете разные макеты на разных размерах экрана. Вы можете думать об этом как о сокрытии частей вашего веб-сайта на небольших экранах, но другой способ думать об этом состоит в том, что меньшие экраны содержат весь необходимый контент, а большие экраны показывают «дополнительный» контент, который не является строго обязательным. Начало разработки с точки зрения маленьких экранов называется дизайн с привязкой к мобильным устройствам , а мышление с точки зрения добавления дополнительных функций для более широких экранов называется прогрессивное улучшение . Это немного модные словечки, но я нахожу их полезными для размышлений о том, как разработать макет веб-страницы. Вы можете узнать больше об адаптивном дизайне на страницах Адаптивный дизайн — MDN и Адаптивный веб-дизайн — Википедия. Чтобы отобразить другой макет в зависимости от размера экрана, вы можете использовать функцию CSS под названием медиазапросы . Медиа-запрос использует ключевое слово Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. (Может помочь просмотр полноэкранной версии.) По умолчанию класс Вот более сложный пример, в котором контент отображается в одном столбце по умолчанию, а на устройствах с разрешением более 600 пикселей — в удобном макете: Редактор кода ? См. Pen от Happy Coding (@KevinWorkman) на CodePen. (Может помочь просмотр полноэкранной версии.) В этом примере также полностью скрыта левая боковая панель на мобильных устройствах. Дополнительную информацию см. в руководстве для начинающих по медиа-запросам в MDN и CSS @media Rule в W3Schools. Когда вы создаете и отлаживаете макеты в CSS, вашим лучшим другом являются инструменты разработчика вашего браузера! Они могут помочь вам понять, почему объекты выравниваются определенным образом или откуда берутся эти дополнительные несколько пикселей пространства. Вы даже можете использовать режим устройства, чтобы увидеть, как ваша веб-страница выглядит на разных устройствах. Это намного проще, чем постоянно изменять размер окна! Вот несколько ресурсов, которые помогут вам узнать больше о макетах в CSS: Happy Coding — это сообщество людей, которые так же, как и вы, изучают программирование. Предыдущий:
CSS
Далее: Хостинг Коллекция бесплатных адаптивных шаблонов Bootstrap — можно использовать для блогов, корпоративных или личных веб-сайтов. Базовый стартовый шаблон Bootstrap 3. Загрузите этот шаблон и используйте его как есть, не загружая дополнительные ресурсы Bootstrap. Посмотреть
Скачать Аналогичен базовому стартовому шаблону Bootstrap 3, но с изображением логотипа сайта. Посмотреть
Скачать Аналогичен базовому стартовому шаблону Bootstrap 3, но с адаптивным типом — размер шрифта увеличивается по мере увеличения области просмотра. Посмотреть
Скачать Простой загрузочный шаблон сообщения в блоге с правой боковой панелью. Посмотреть
Скачать Простой загрузочный шаблон сообщения в блоге с боковой панелью, выровненной по левому краю. Посмотреть
Скачать Простой двухколоночный макет Bootstrap, который можно использовать для галереи изображений. Посмотреть
Скачать Простая трехколоночная компоновка Bootstrap, которую можно использовать для галереи изображений. Посмотреть
Загрузить Простой макет с четырьмя колонками начальной загрузки, который можно использовать для галереи изображений. Просмотр
Скачать Простой макет с шестью колонками начальной загрузки, который можно использовать для галереи изображений. Посмотреть
Скачать Адаптивный макет фиксированной ширины с одним столбцом, который можно использовать для блогов и веб-сайтов с одним столбцом. Посмотреть
Скачать Адаптивный макет с одной колонкой во всю ширину, который можно использовать для блогов и веб-сайтов с одной колонкой. Просмотр
Скачать Адаптивный макет с двумя колонками полной ширины, который можно использовать для блогов и веб-сайтов с одной колонкой. Посмотреть
Скачать Адаптивный макет с тремя колонками полной ширины, который можно использовать для блогов и веб-сайтов с одной колонкой. Посмотреть
Загрузить Ряд наборов слайдов CSS и связанных с ними упражнений для самостоятельного обучения. 38 слайдов, Уровень: Начальный Эта подборка слайдов дает краткий обзор процесса зрелости спецификации W3C и различных уровней CSS. ViewDownload 180 слайдов, уровень: начальный В этой подборке слайдов рассматривается ряд терминов, которые обычно используются при определении аспектов CSS. ViewDownload 90 слайдов, уровень: начальный Эта презентация отвечает на некоторые основные вопросы CSS: Что такое CSS? Что такое наборы правил? Как можно более эффективно писать правила CSS? ViewDownload 85 слайдов, уровень: начальный В этой подборке слайдов рассматривается ряд различных методов, которые можно использовать для применения CSS к веб-документам. ViewDownload 101 слайд, Уровень: Новичок Простые селекторы позволяют нацеливаться непосредственно на HTML-элементы, а также на элементы, содержащие атрибуты class или ID. ViewDownload 81 слайд, Уровень: Начальный Комбинаторы позволяют комбинировать отдельные селекторы в новые типы селекторов, включая комбинаторы-потомки, дочерние селекторы, соседние одноуровневые селекторы и общие одноуровневые селекторы. ViewDownload 36 слайдов, Уровень: Новичок В этой колоде слайдов показано, как стилизовать ViewDownload 52 слайда, Уровень: Новичок Псевдоклассы действий пользователя, ViewDownload 30 слайдов, уровень: средний ViewDownload 34 слайда, Уровень: Продвинутый Селектор псевдокласса отрицания позволяет авторам нацеливаться на каждый элемент, который не соответствует определенному селектору. ViewDownload 357 слайдов, Уровень: Средний Структурные псевдоклассы позволяют выбирать элементы на основе их положения в общей структуре документа. ViewDownload 76 слайдов, Уровень: Новичок Псевдоклассы пользовательского интерфейса позволяют стилизовать различные аспекты элементов, связанных с формами. ViewDownload 158 слайдов, Уровень: Средний Псевдоэлементы позволяют нам стилизовать «поддельные» элементы, элементы, которых нет в дереве документа, такие как ViewDownload 130 слайдов, уровень: средний Селекторы атрибутов используются для выбора элементов на основе их атрибутов или их атрибутов и значений. ViewDownload 98 слайдов, Уровень: Новичок Наследование CSS — это передача свойств CSS от родительских элементов к дочерним элементам. ViewDownload 173 слайда, уровень: средний Браузеры часто сталкиваются с ситуациями, когда несколько объявлений ссылаются на один и тот же элемент и свойство. Но какая декларация победит? Победитель определяется по правилам каскада. ViewDownload 207 слайдов, Уровень: Средний Блочная модель CSS описывает прямоугольные блоки, которые создаются для каждого элемента в дереве документа. ViewDownload 312 слайдов, Уровень: Расширенный Свойство ViewDownload 314 слайдов, Уровень: Расширенный ViewDownload 252 слайда, уровень: продвинутый В этом наборе слайдов рассматривается свойство ViewDownload 152 слайда, Уровень: Средний До того, как были представлены flexbox и сетки, плавающие элементы были лучшим доступным методом размещения веб-компонентов и макетов. ViewDownload 151 слайд, уровень: средний Контекст форматирования блока важно понимать, поскольку он влияет на такие аспекты макета, как плавающие элементы, очистка и поля. ViewDownload 165 слайдов, уровень: средний Эта подборка слайдов даст вам общее представление о синтаксисе свойства/значения W3C. Это поможет вам понять различные спецификации W3C CSS. ViewDownload 488 слайдов, уровень: средний Свойство ViewDownload 146 слайдов, Уровень: Начинающий CSS3 ViewDownload 182 слайда, уровень: средний CSS ПосмотретьЗагрузить Серия недавних презентаций по специальным возможностям, CSS, системам дизайна и многому другому. 2018-04: Canberra Inclusive Design Meetup Эта презентация охватывает; различные типы инвалидности, вспомогательные технологии, юридические и этические обязанности, а также ряд терминов, таких как W3C, WAI и WCAG. ПОСМОТРЕТЬ НА СЛАЙДШЕРЕ 2018-02: Sydney Web Accessibility & Inclusive Design Раньше многие разработчики рассматривали сложные веб-сайты и веб-приложения как набор отдельных страниц. В наши дни все дело в абстракции. Отправляйтесь в путешествие, пока мы исследуем боль и славу создания специальных возможностей в библиотеках UX, дизайна и интерфейсных шаблонов. ПОСМОТРЕТЬ НА СЛАЙДШАРЕ 2017-11: ID24 пользователей, включая пользователей, использующих только клавиатуру, и пользователей программ чтения с экрана. Попутно мы рассмотрим важные сочетания клавиш и атрибуты aria, которые можно использовать для улучшения работы всех пользователей. ПОСМОТРЕТЬ НА СЛАЙДШАРЕ 09 2017: AllyBytes В этой презентации для Inclusive Design 24 (#ID24) рассказывается, как создавать доступные, полезные «плавающие» метки. ПРОСМОТР НА SLIDESHARE 2017-05: AllyBytes Быстрая колода слайдов с набором указателей, которые можно использовать, чтобы сделать раскрывающиеся списки кнопок более доступными. ПОСМОТРЕТЬ НА СЛАЙДШАРЕ 2016-12: CSS Summit Вы когда-нибудь пытались стилизовать флажки или радиокнопки и в итоге рвали на себе волосы? В этой презентации будут рассмотрены несколько простых приемов, которые можно использовать для оформления флажков и переключателей. В этом случае мы сделаем их похожими на выключатель. ПОСМОТРЕТЬ НА СЛАЙДШАРЕ 2016-11: OZeWAI Создание радиокнопок и флажков с индивидуальным дизайном никогда не было таким простым. ПОСМОТРЕТЬ НА СЛАЙДЕ 2016-06: Саммит CSS На первый взгляд высота строки в CSS кажется очень простой, но на самом деле за ней скрывается очень многое. Высота строки важна для понимания любым дизайнером или разработчиком внешнего интерфейса, поскольку она может влиять практически на каждый аспект наших макетов. ПОСМОТРЕТЬ НА СЛАЙДЕ 04.2016: Ответить Итак, вы создали новое замечательное веб-приложение. Он использует все последние фреймворки и библиотеки. ПОСМОТРЕТЬ НА СЛАЙДЕ 2015-12: OZeWAI Краткая презентация о некоторых потенциальных проблемах, связанных с использованием любой платформы. ПОСМОТРЕТЬ НА СЛАЙДШАРЕ 2014-07: AllyBytes В презентации будет рассмотрено использование WAI-ARIA и свойства aria-live для оповещения программ чтения с экрана об изменениях в ДОМ. В презентации также будет рассмотрена поддержка aria-live в различных программах чтения с экрана и способы наиболее эффективного использования этого свойства сегодня. ПОСМОТРЕТЬ НА СЛАЙДШАРЕ Создание макетов — одна из самых сложных частей разработки внешнего интерфейса для многих людей. Вы можете потратить часов пробуя случайные свойства CSS, копируя и вставляя из Stack Overflow, и надеясь наткнуться на волшебную комбинацию , которая создаст желаемый макет. Если ваша обычная стратегия состоит в том, чтобы подходить к макету поэлементно, поставьте А вместо здесь , и теперь, когда A находится на его месте, я хочу поставить B более там … ну, это гарантированный путь к разочарованию. CSS не работает как эскиз, фигма или фотошоп. В этом посте я хочу показать вам способ целостного подхода к макетам, как сплоченная проблема, которая должна быть решена. Мы рассмотрим небольшой пример, от начала до конца, и я объясню весь CSS по пути — так что даже если вы не знаете или не помните, как Здесь мы также будем использовать простой HTML и CSS, поэтому вам не нужно ничего знать о React/Vue/Angular/CSS-in-JS или даже о JavaScript. Хорошо звучит? Давайте углубимся в это. Для этого поста мы воспроизведем что-то похожее на твит: Независимо от того, начинаете ли вы с наброска, похожего на этот, или с макета с точностью до пикселя, хорошей идеей будет иметь что-то , чтобы уйти от. Макет CSS работает более гладко, когда вы не пытаетесь собрать его воедино в браузере, одновременно создавая его в своей голове. Вы абсолютно можете добраться до этого уровня! Но если вы это читаете, я предполагаю, что вас там нет , но 🙂 Прежде чем писать HTML или CSS, мы выделим отдельные части этой схемы: с точки зрения строк и столбцов. Таким образом, у вас есть либо элементы, идущие вниз по странице один за другим, либо ряд элементов, расположенных слева направо. Однако этот макет не похож на строки и столбцы. Слева есть изображение, а справа от него куча вещей. Давайте нарисуем несколько прямоугольников вокруг элементов и посмотрим, сможем ли мы получить из этого некоторое подобие строк и столбцов. Мы поместим коробки вокруг частей, которые текут в одном направлении. Каждый элемент, который вы размещаете на странице с HTML, представляет собой прямоугольник. Конечно, иногда у них есть закругленные углы, или они представляют собой круги, или причудливые формы SVG… Часто вы на самом деле не см. куча прямоугольников на странице. Но вы всегда можете нарисовать ограничивающую рамку вокруг объекта. Так что это помогает представить все в виде прямоугольника. Я упомянул прямоугольники, потому что если у вас есть набор элементов, которые необходимо выровнять, например, первая строка с именем/@дескриптором/временем или последняя строка со значками, вы всегда можете заключить их в коробку для целях укладки, чтобы упростить их укладку. Если бы мы остановились здесь и закодировали это в HTML, у нас было бы что-то вроде этого:
Какое-то проницательное сообщение.
(Для краткости я не упомянул стандартные элементы HTML, такие как окружающие теги И вы бы видим что-то вроде этого (вот песочница): …что даже близко не соответствует тому, что нам нужно. Но! Весь контент есть. И некоторые кластеры элементов даже текут в правильном направлении. Вы можете доказать, что этот макет передает смысл даже без дополнительных стилей , и это отличный ориентир для HTML. Вы можете задаться вопросом, почему я выбрал именно эти элементы — Почему это… Вместо этого? Ну, имена HTML-элементов на самом деле имеют значения, и хорошей идеей будет использовать элементы, семантически соответствующие тому, что они представляют. Это полезно для людей, таких как программист, пытающийся расшифровать код, и зритель, использующий вспомогательную технологию, например программу чтения с экрана. Это также хорошо для поисковых систем, которые пытаются расшифровать содержание страницы 9. Тег Тег Тег Семантическое значение HTML-элементов и то, какие именно из них использовать в конкретных ситуациях,… непросто. Но по большей части семантический элемент — даже очень слабо связанный — будет лучше, чем Что заставляет его выглядеть так, как он есть? Почему одни элементы располагаются на отдельной строке, а другие рядом? Это происходит из-за стили по умолчанию применены к элементам, и это подводит нас к нашему первому знакомству с CSS: встроенных против блочных элементов. Строковые элементы будут располагаться рядом друг с другом на одной строке (и переноситься, если необходимо, точно так же, как слова в предложении). Блочные элементы , напротив, любят стоять отдельно. С точки зрения вывода на консоль, вы можете думать о блочном элементе как имеющем Обратите внимание, что в приведенном выше примере изображение аватара находится на отдельной строке, хотя тег Тогда обратите внимание, что @handle, имя и время находятся в одной строке? Это потому что они внутри Эти трое находятся на отдельной строке от «содержательного сообщения», потому что (а) они находятся в пределах Если вы внимательно посмотрите, то заметите, что пространство над и под «содержательным сообщением» равно 9.0779 больше , чем пространство между изображением аватара и дескриптором/именем/временем под ним. Это пространство также контролируется стилями по умолчанию: теги Вы также заметите маркеры в списке кнопок и то, что маркированный список имеет отступ. Это тоже стиль по умолчанию. Мы выключим его через некоторое время. Мы хотим расположить изображение аватара слева, а все остальное справа. Но это не сработает. Встроенный элемент не помешает блочным элементам внутри него разорвать строку. Чтобы расположить элементы так, как мы хотим, нам понадобится что-то более мощное, например макет Flexbox или Grid. Мы решим эту проблему с помощью flexbox. «Гибкие» макеты CSS могут упорядочивать элементы в строки или столбцы . Внутри одного элемента flexbox представляет собой одномерную систему компоновки. Чтобы обе строки были и столбцов (как в нашем дизайне твита), нам нужно добавить несколько элементов-оболочек, чтобы изменить направление: по столбцам на внешнем, затем по строкам на внутреннем правом и так далее. Вы можете включить гибкий макет для контейнера, установив свойство В нашем случае у нас будет несколько flex-контейнеров, вложенных друг в друга, так что мы сможем расположить некоторые из них в строки, а некоторые — в столбцы. Мы разместим внешнюю оболочку (зеленый прямоугольник) в столбцы, затем синий прямоугольник разместим в строки, а каждый из красных прямоугольников снова станет столбцами. Я использую здесь flexbox вместо CSS Grid по нескольким причинам. Я думаю, что флексбокс немного проще в освоении, и он также лучше подходит для небольших макетов, чем грид. Flexbox особенно хорош для макетов, где все в основном строки или в основном столбцы . Еще одна важная вещь, которую следует знать, это то, что хотя Grid новее, чем Flexbox, Grid не заменяет Flexbox. Каждый из них хорошо подходит для разных типов макетов, и полезно знать оба. В некоторых макетах вы даже можете использовать оба — скажем, Grid для макета страницы и Flexbox для контактной формы на странице. Знаю, знаю… в других сферах веб-разработки «новая мода» всегда заменяет «старую и сломанную», но CSS так не работает. Flexbox и Grid счастливо сосуществуют как два разных инструмента в коробке. Почти всегда есть несколько способов решить проблему с CSS! Итак, теперь, когда у нас есть план, давайте применим некоторые стили. Я пошел и обернул левосторонние элементы в
Какое-то проницательное сообщение. (вот CodeSandbox) Визуально все выглядит так же. Это потому, что Вот наш первый фрагмент CSS, который мы поместим в тег в стиле (в остальных примерах я не буду использовать теги head и style, но знайте, что весь этот код CSS будет помещен в тег style) Это шаг в правильное направление! Мы используем селектор класса для нацеливания на все элементы с классом Ведущий Теперь содержимое находится справа от аватара… но изображение довольно странно перекошено. Это связано с тем, что по умолчанию контейнер flex: Мы можем контролировать их вертикальное выравнивание с помощью свойства По умолчанию для Кстати, направление по умолчанию для flex-контейнеров — Что-то вроде этого изображения вазы. Или два лица. Что бы ни. Википедия Гибкие элементы занимают ровно столько места по горизонтали, сколько им нужно, но мы хотели бы, чтобы Для этого применим И мы также добавим пространство между аватаром и содержимым, дав аватару небольшое поле: Выглядит немного лучше! Итак… почему Общее правило: размещайте поля справа и снизу, а не слева и сверху. По крайней мере, для таких раскладок, как английский, все идет слева направо и сверху вниз, так что в некотором смысле каждый элемент «зависит» от того, что находится слева от него или над ним. В CSS положение каждого элемента зависит от того, что было до него. (по крайней мере, пока вы не начнете возиться с Технически, в этом случае, где и как мы размещаем разрыв между Но это имеет значение с точки зрения ремонтопригодности и того, как вы думаете о элементах с точки зрения организации. Я стараюсь думать о каждом элементе как об отдельной вещи с тем же намерением, что и функция JavaScript, которая делает только одну вещь: если у каждой вещи есть только одна задача, код будет проще писать и легче отлаживать когда что-то пойдет не так. Если бы мы добавили поле слева от содержимого Или, если у содержимого Хорошо, это было много сказано о 10 пикселях. Ненумерованный список В ненумерованном списке много отступов слева, которые мы можем отключить. Давайте также сделаем его flex-контейнером, чтобы кнопки располагались бок о бок (в ряд, помните… с Элементы списка имеют Селектор Селектор Разделение селекторов таким пробелом сужает выбор с каждым. CSS на самом деле читает селекторы в обратном порядке. Это «найти все Мы можем разложить кнопки несколькими способами. Можно было бы установить выравнивание гибких элементов. Вы, наверное, знакомы с этими кнопками в верхней части почти каждого редактора форматированного текста: Они выравнивают содержимое вашего документа по левому краю, по центру, справа или, гм, «по ширине», также известное как «по ширине». В flexbox это можно сделать с помощью атрибута Однако это не совсем то, что нам нужно. Было бы лучше, если бы они не занимали всю ширину. Так что убери это. Вместо этого мы можем применить правое поле к каждому элементу списка, чтобы разнести их. Давайте также дадим всему твиту границу, чтобы мы могли сказать, что происходит. Теперь это выглядит так: Кнопки выглядят лучше, но граница подчеркивает тот факт, что все находится прямо у края контейнера Теперь у твита есть отступы, но откуда-то берется дополнительное пространство. Если мы выделим элементы в инструментах разработчика браузера, вы заметите поля выше и ниже Также интересно, что отступ между строками такой же, как выше и ниже — он не удваивается! Это потому, что CSS сворачивает поля по вертикали. Когда два поля соприкасаются сверху вниз вот так, побеждает большее. Узнайте больше о сворачивании полей в CSS-Tricks. Для этого макета я вручную изменю поля для этих трех элементов справа: Разделение селекторов запятыми Здесь мы также используем новую единицу измерения: Теперь у нас есть это: Теперь давайте уменьшим изображение и превратим его в круг. Мы сделаем его 48 пикселей, который используется в Twitter. Свойство Если мы установим радиус границы равным половине ширины и высоты (в данном случае 24 пикселя), мы получим круг. Но более простой способ - установить его на Есть еще несколько изменений, которые мы можем внести, чтобы отполировать конечный продукт. Мы установим шрифт Helvetica (тот, который использует Twitter), немного уменьшим размер шрифта, выделим имя жирным шрифтом и, гм, изменим порядок «@handle Name» (в HTML), потому что это не так, как это выглядит в Твиттере 😀 Использование шрифта Кстати, … CSS технически не позволяет комментариям начинаться с Еще одна маленькая хитрость: мы добавим выпуклую точку между «дескриптором» и «временем», используя псевдоэлемент . Так как точка чисто стилистическая, имеет смысл сделать ее в CSS, не заморачивая HTML. Часть Мы сделаем еще одну вещь — заменим кнопки значками. А затем замените действия Font Awesome — это шрифт со значками, который использует тег Здесь мы добавили несколько небольших настроек, чтобы сделать кнопки доступными: Вот отличный бесплатный урок умника от Марси Саттон о создании специальных кнопок со значками. Теперь добавим немного стиля кнопкам — удалим границу, придадим им лучший цвет и немного увеличим шрифт. Мы также установим курсор Вот финальный стилизованный твит во всей красе: А вот CodeSandbox, если вы хотите поиграть с ним самостоятельно. Самое главное, что вы можете сделать, чтобы улучшить свои навыки CSS, — это попрактиковаться. Выберите существующие сайты, которые вам нравятся, и скопируйте их. Дизайнеры и художники называют это «копированием». Я написал статью о том, как изучить React с помощью копирования, и все принципы применимы и к CSS. Выбирайте макеты, которые выглядят интересно и немного выходят за пределы вашей зоны комфорта. Воссоздайте их с помощью HTML и CSS. Когда вы застряли, используйте инструменты разработчика вашего браузера, чтобы проверить существующие сайты и выяснить их уловки. Вспенить, смыть, повторить 🙂 Изучение React может быть проблемой — так много библиотек и инструментов! и . Есть еще один тег HTML, который особенно удобен для создания макетов: тег
Красный блок содержит некоторый текст, а синий блок содержит другие HTML-теги. и , но чаще всего вы будете видеть и с такими атрибутами, как color (как в ).
Макет был выполнен с использованием элементов HTML , которые позволяют размещать контент в сетке.
Таблицы
CSS 1

. CSS 2
float элемента значение 9.0097 левый или правый , чтобы он отображался слева или справа от других элементов, и вы можете установить для свойства display элемента значение block или inline-block , чтобы изменить расположение других элементов. вокруг него. Вы также можете установить положение элемента вручную, если хотите. Плавающие элементы
Браузер воспринимает плавающие элементы так, как будто они не занимают места, поэтому блок содержимого имеет левое поле. Попробуйте удалить этот стиль, чтобы посмотреть, что произойдет. Затем попробуйте добавить нижний колонтитул на страницу, чтобы понять, почему с плавающими элементами может быть сложно работать. Блоки
Короче говоря, CSS 3 был построен поверх CSS 2, и одной из функций, добавленных в CSS 3, был flexbox в 2017 году.0003 display: flex для родительского элемента (элемента, который содержит другие элементы), а затем установите другие свойства flex для родительского и дочернего элементов, чтобы настроить макет.
Pen от Happy Coding (@KevinWorkman) на CodePen. Свойства Flex
display: flex для родительского элемента (элемента, который содержит другие элементы), а затем установите другие свойства flex для родительского и дочернего элементов, чтобы настроить макет. display: flex
.контейнер {
дисплей: гибкий;
}
flex-direction
display: flex ) выкладываем своих дочерних элементов в ряд.
Вы можете установить свойство flex-direction на столбец , чтобы изменить это. .контейнер {
дисплей: гибкий;
flex-направление: столбец;
}
flex-wrap
flex-wrap на wrap . .контейнер {
дисплей: гибкий;
flex-wrap: обернуть;
}
Pen от Happy Coding (@KevinWorkman) на CodePen., сейчас . align-content , чтобы указать интервал между обернутым содержимым. justify-content
flex-direction:column ) без пробелов между ними. justify-content . .контейнер {
дисплей: гибкий;
выравнивание содержимого: пространство вокруг;
}
flex-start по умолчанию center размещает детей в центре без пробелов между ними пробел между добавляет пробел между дочерними элементами, но не перед первым элементом и не после последнего элемента space-around добавляет пробел между дочерними элементами, в том числе перед первым элементом и после последнего элемента space-evenly добавляет пространство между дочерними элементами и делает так, чтобы первый и последний элементы имели такое же пространство, как средние дочерние элементы
Pen от Happy Coding (@KevinWorkman) на CodePen. align-items
flex-direction:column ) и устанавливают их высоту (или ширину), чтобы заполнить оставшееся пространство. align-items . .контейнер {
дисплей: гибкий;
выравнивание элементов: по центру;
}
растянуть по умолчанию flex-start выравнивает дочерние элементы вверху (или слева для контейнеров с flex-direction:column ), но не растягивает их, чтобы заполнить оставшееся пространство flex-end выравнивает дочерние элементы по низу (или справа), но не растягивает их, чтобы заполнить оставшееся пространство центр выравнивает детей по центру
Pen от Happy Coding (@KevinWorkman) на CodePen. gap
justify-content , align-items и align-content . Вы также можете вручную установить зазор имущество. .контейнер {
дисплей: гибкий;
зазор: 25 пикселей;
}
flex-grow
flex-grow . .контейнер {
дисплей: гибкий;
}
.
ребенок {
гибкий рост: 1;
}
flex-grow принимает число, которое представляет, насколько этот дочерний элемент вырастет по сравнению с его братьями и сестрами. .red имеет значение по умолчанию flex-grow 0 , что означает, что он вообще не растет. Затем .blue и Классы .green имеют flex-grow значений 1 и 2 соответственно, что означает, что .green будет расти вдвое больше, чем .blue . flex-shrink
flex-direction:column ) для размещения всех его дочерних элементов, то все эти дочерние элементы сжимаются одинаково.
flex-shrink . .контейнер {
дисплей: гибкий;
}
.ребенок {
гибкая термоусадка: 2;
}
flex-grow в том, что значение представляет собой число, которое показывает, насколько дочерний элемент уменьшится по сравнению с его братьями и сестрами. Значение по умолчанию — 1 , но вы можете установить его на 0 , чтобы никогда не сжимать, или на более высокое число, чтобы уменьшить его больше. flex-basis
width и height , либо из их содержимого.
flex-basis . .контейнер {
дисплей: гибкий;
}
.ребенок {
flex-база: 200px;
}
flex
flex-grow , flex-shrink и flex-basis могут быть неочевидны. Почему вы должны использовать их вместо установки свойств width и height ?
Это может показаться удивительным, но хотите ли вы настраивать ширину каждого элемента на странице при каждом изменении контента? Это особенно верно, если вы получаете контент из других мест (например, API или бэкэнд), а не пишете его самостоятельно. flex-grow , flex-shrink и flex-basis , чтобы сообщить вашему контенту, как его размещать. Что должно расти при просмотре на широкоформатном мониторе? Что должно уменьшаться при просмотре на телефоне? Какого размера все должно быть по умолчанию, прежде чем увеличиваться и уменьшаться? flex . .child {
гибкий рост: 1;
гибкая термоусадка: 2;
flex-база: 300px;
}
.child {
гибкий: 1 2 300 пикселей;
}
Pen от Happy Coding (@KevinWorkman) на CodePen. flex-basis . flex-grow равен 0 . Зеленый дочерний элемент растет быстрее синего дочернего элемента, поскольку его свойства flex-grow равны 2 и 1 . 2 и 1 . Зеленый ребенок вообще не сжимается, потому что его flex-shrink равен 0 .
Дополнительные сведения
flex-wrap , но у вас нет большого контроля над выравниванием этих элементов.
Pen от Happy Coding (@KevinWorkman) на CodePen. Свойства сетки
display: grid для родительского элемента, а затем установите другие свойства сетки для родительского и дочернего элементов, чтобы настроить макет. display: grid
.контейнер {
отображение: сетка;
}
сетка-шаблон-столбцы

grid-template-columns . .контейнер {
отображение: сетка;
столбцы сетки-шаблона: 100px 1fr 2fr;
}
grid-template-columns принимает список размеров, разделенных пробелами, и размещает содержимое в указанном количестве столбцов с этими размерами. 100px или 10em , которые дают столбцу предопределенную ширину. 50% , которые указывают столбцу занимать этот процент ширины родителя. 1fr или 2fr , которые указывают столбцу занимать ширину относительно других столбцов в сетке.
Вы можете думать об этом как о том, как flex-grow работал выше: столбец с 2fr будет занимать примерно в два раза больше ширины, чем столбец с 1fr . auto указывает размеру столбца на основе элементов в нем, а также размера контейнера и других столбцов в контейнере. grid-template-columns: 100px 1fr 2fr создает три столбца: один из 100px шириной , а затем средний столбец, который будет занимать примерно половину ширины третьего столбца. grid-template-rows
grid-template-columns , grid-template-rows позволяет указать высоту каждой строки. grid-template-columns и grid-template-rows , вы можете создать сетку содержимого! .контейнер {
отображение: сетка;
столбцы сетки-шаблона: 1fr 2fr;
строки шаблона сетки: 100 пикселей 50 пикселей 100 пикселей;
}
Pen от Happy Coding (@KevinWorkman) на CodePen. Размещение элементов в сетке
grid-column-start и grid-column-end сообщить ячейке, какие столбцы занимать grid-row-start и grid-row-end сообщить ячейке, какие строки занимать .контейнер {
отображение: сетка;
столбцы сетки-шаблона: 1fr 2fr;
строки шаблона сетки: 100 пикселей 50 пикселей 100 пикселей;
}
.ребенок {
начало столбца сетки: 1;
сетка-столбец-конец: 3;
}
.другой ребенок {
сетка-строка-начало: 2;
сетка-ряд-конец: 4;
}
Pen от Happy Coding (@KevinWorkman) на CodePen., столбец и сетку , ряд 9.0098 сокращение: .container {
отображение: сетка;
столбцы сетки-шаблона: 1fr 2fr;
строки шаблона сетки: 100 пикселей 50 пикселей 100 пикселей;
}
.ребенок {
сетка-столбец: 1/3;
}
.другой ребенок {
сетка-ряд: 2/4;
}
Именованные ячейки

[] квадратных скобок: .container {
отображение: сетка;
столбцы сетки-шаблона: [слева] 1fr 2fr [справа];
grid-template-rows: 100 пикселей [посередине] 50 пикселей 100 пикселей [внизу];
}
.red {
цвет фона: красный;
начало столбца сетки: слева;
конец столбца сетки: справа;
/* Можно сократить до grid-column: left/right; */
}
.зеленый {
цвет фона: салатовый;
сетка-строка-начало: середина;
конец строки сетки: нижний;
/* Можно сократить до grid-row: middle/bottom; */
}
Pen от Happy Coding (@KevinWorkman) на CodePen. Другие свойства сетки


Возможно, ваша страница показывает только основной контент на узких устройствах, но добавляет левую боковую панель на устройствах среднего размера и разбивает контент на несколько столбцов на широкоэкранных устройствах.
Медиа-запросы
@media , затем тип носителя (возможно, вам нужен screen , но вы также можете настроить внешний вид вашего веб-сайта при печати с помощью print ), затем мультимедийную функцию , которая позволяет вы устанавливаете правила для различных видов дисплеев. Затем внутри { } фигурных скобок вы указываете любые правила, которые хотите применить к вашему запросу. Вот пример:
.content имеет тонкую сплошную черную рамку и голубой фон. Но на экранах шире 700 пикселей класс .content будет иметь салатовый фон. Поскольку мы не меняем границу на широких экранах, по умолчанию сохраняется тонкий сплошной черный цвет.
Инструменты разработчика

У вас есть комментарий или вопрос? Опубликуйте это здесь! Практические занятия по CSS3 — изучите CSS, HTML и адаптивный веб-дизайн с Рассом Уикли из Max Design
Макеты CSS

Бесплатный стартовый шаблон Bootstrap
Бесплатный стартовый шаблон Bootstrap с изображением логотипа
Бесплатный стартовый шаблон Bootstrap с адаптивным шрифтом
Бесплатный шаблон сообщения в блоге с правой боковой панелью
Бесплатный шаблон сообщения в блоге с левой боковой панелью

Бесплатная двухколоночная галерея изображений Bootstrap
Бесплатная трехколоночная галерея изображений Bootstrap
Бесплатная галерея изображений Bootstrap с четырьмя колонками
Бесплатная галерея изображений Bootstrap с шестью колонками
Бесплатный адаптивный макет фиксированной ширины с одним столбцом

Бесплатный адаптивный макет с одной колонкой во всю ширину
Бесплатный адаптивный макет с двумя колонками полной ширины
Бесплатный адаптивный макет с тремя колонками полной ширины
Ресурсы CSS
201: Уровни CSS

202: Общие термины
203: наборы правил CSS
204: Применение CSS
205-01: Простые селекторы

205-02: Комбинаторы-селекторы
205-03: Ссылка на псевдоклассы
: ссылка и : посетили селекторов псевдоклассов. 205-04: Псевдоклассы действий пользователя
:focus , :hover и
9 : 8 стилизовать элементы в зависимости от того, как пользователи взаимодействуют с этими элементами. 205-05: Выбор языка
:lang(c) 9Селектор 0098 нацелен на любой элемент, который содержит атрибут lang и значение соответствующего языкового вложенного тега.
205-06: Псевдокласс отрицания
205-07: Структурные псевдоклассы
205-08: Псевдоклассы пользовательского интерфейса
205-09: Псевдоэлементы
::first строка , :: первая буква , :: до и :: после .
205-10: Селекторы атрибутов
206: Наследование CSS
207: Каскад CSS
208: Блочная модель CSS
.jpg)
209: Позиционирование CSS
position указывает, как позиционируются элементы HTML. Возможные значения: статический , относительный , абсолютный , фиксированный и липкий . 210: Сверху, справа, снизу, слева
Верх , Право , 9Свойства 0097 bottom и left позволяют авторам определять расположение позиционируемых элементов. 211: z-индекс и контекст наложения
z-index , а также подробно исследуется контекст наложения. 212: Плавающие элементы CSS
Хотя поплавки кажутся простыми, они могут сильно разочаровать тех, кто не понимает более тонких деталей. 213: контекст форматирования блока
214-01: Синтаксис значения свойства CSS
214-02: Свойство — цвет
color устанавливает значение цвета переднего плана для текстового содержимого элемента. Он также устанавливает цвет оформления текста, если только <'text-decoration-color'> не определен пользователем.
214-03: Свойство - box-shadow
box-shadow позволяет применить одну или несколько теней к любому блоку, включая внешние и внутренние тени блока. 214-05: Свойство - высота строки
высота строки является одной из основ CSS. Его можно использовать для облегчения чтения и понимания контента, управления вертикальным ритмом макетов и даже для центрирования контента по вертикали. Последние презентации
Что такое доступность и почему нас это должно волновать?

Специальные возможности в библиотеках шаблонов
Создание доступного автозаполнения — #ID24
Создание доступных плавающих меток
Плавающие метки — это когда метка перемещается над элементами управления формы в зависимости от взаимодействия с пользователем. Создание раскрывающегося списка кнопок со специальными возможностями
Создание простого и доступного выключателя
Доступные настраиваемые переключатели и флажки
Многие разработчики нашли способы взломать эти элементы с помощью CSS и JavaScript. но могут ли они также быть доступными. Ответ — да, с небольшими дополнительными усилиями. В этой презентации будут рассмотрены несколько простых примеров, чтобы показать, как радиокнопки и флажки могут быть семантическими, а также доступными для клавиатуры/программы чтения с экрана. Глубокое погружение в Line-Height
Создание доступных веб-компонентов без слез
Это красиво. Но доступно ли? В наши дни многие веб-приложения создаются на основе уже существующих фреймворков или кодовых баз, и мало кто задумывается о том, насколько хорошо эти компоненты будут работать на различных вспомогательных устройствах. Интерфейсные платформы — доступны ли они
aria-live: хорошее, плохое и уродливое
Пошаговое руководство по макетированию CSS

позиция и отображают , иначе вы не сможете отличить align-items от justify-content , вы что-то из этого получите.
Точно такие же методы будут работать и в выбранной вами среде, потому что простые HTML и CSS — это основные технологии, на которых основано все остальное. Пример небольшой компоновки
Первый шаг: идентифицируйте части
Мышление с точки зрения строк и столбцов прекрасно сочетается с двумя методами компоновки, которые дает нам CSS: Flexbox и Grid. Второй шаг: нарисуйте прямоугольники вокруг вещей

<артикул>
<изображение
src="http://www.gravatar.com/аватар"
alt="Имя"
/>
<дел>
@handle
Имя
3 часа назад
и , но они нужны для полностью сформированного документа) 
Примечание о семантике HTML
article , p и т. д. Почему бы не сделать все div ? <статья>
<изображение ... />
<дел>
<диапазон/>
<диапазон/>
<диапазон/>
<п>...п>
<ул>
<дел>
<изображение ... />
<дел>
<дел/>
<дел/>
<дел/>
<дел> ... дел>
<дел>
<кнопка> ... кнопка>
0779 означает , поэтому они могут показывать релевантную рекламу и зарабатывать кучу денег, помогая искателям найти то, что они ищут. article представляет собой статью, похожую на статью, а твит похож на статью, если прищуриться достаточно сильно. p представляет собой абзац, а текст твита похож на абзац. ul представляет собой неупорядоченный список вещей (в отличие от упорядоченного или нумерованного списка), и в этом случае он содержит список действий, которые вы можете предпринять. div , что просто означает « div ision». Стиль элементов по умолчанию

span , button и img являются встроенными элементами, согласно стилю браузера по умолчанию. \n новая строка до и после нее. Это похоже на console.log("\ndiv\n") . Теги article , div , li , ul и p являются элементами блочного уровня. img является встроенным? Это потому, что div под ним является блочным элементом. охватывают тегов, которые являются встроенными элементами.
div , после которого будет новая строка и (б) тег p равен также блоку элемент, так что это также заставило бы новую строку. (однако вы не видите двух новых строк по той же причине, по которой HTML объединяет соседние пробелы). p имеют верхнее и нижнее поля . Шаг третий: дополнительные ящики
Учитывая то, что вы знаете о встроенных и блочных элементах, вы можете подумать, что можете просто обернуть элементы справа во встроенный элемент, например 9.0097 диапазон Как работает Flexbox
display: flex; .
Тогда сам контейнер станет блочным элементом (поэтому он получит свою собственную строку), а элементы внутри контейнера станут «гибкими элементами» — то есть они больше не будут встроенными или блочными; они контролируются гибким контейнером. (совет для профессионалов: есть также display: inline-flex , если вы хотите, чтобы ваш контейнер flexbox отображался как встроенный элемент). Почему Flexbox вместо Grid?

Шаг четвертый: применение Flexbox
div и присвоил класс большинству элементов, чтобы упростить их нацеливание с помощью CSS. <артикул>
<изображение
src="http://www.gravatar.com/аватар"
alt="Имя"
/>
<дел>
<дел>
@handle
Имя
3 часа назад
статья>
div s, помимо того, что они являются блочными элементами (и введением новой строки, если ее не было), в остальном невидимы. Когда вам нужно что-то, чтобы содержать другие элементы, и нет более семантического варианта, div делает
отличная обертка. внутри заголовка тег документа:
<стиль>
.твит {
дисплей: гибкий;
}
стиль>
tweet .
У нас есть только один такой элемент, но если бы их было десять, то все они теперь были бы гибкими контейнерами. . в CSS означает, что это селектор класса. Почему . ? Не знаю. Вам просто нужно запомнить это. align-items . .твит {
дисплей: гибкий;
выравнивание элементов: flex-start;
} align-items было stretch , но установка его на flex-start подталкивает их вверх, и позволяет элементам управлять своей собственной высотой.
Направление: строка или столбец?
flex-направление: строка; . Да, это называется «строка», хотя, в зависимости от того, как вы на это смотрите, вы можете назвать это двумя столбцами. Думайте об этом как о 90 779 рядах из 90 780 элементов, расположенных бок о бок, и это будет иметь больше смысла. Контент должен занимать больше места
область контента занимала как можно большую ширину. flex: 1; свойство содержание div. (Поскольку у него есть класс, мы будем использовать другой селектор класса!) .content {
гибкий: 1;
} .
avatar {
поле справа: 10px;
} margin vs padding
margin вместо дополнение ? А зачем ставить справа от аватара, а не слева от контента? позиция: абсолютная и друзья) Разделение проблем
аватаром и контентом , на самом деле не имеет значения. Пространство есть пространство, и нет границ, которые могли бы мешать ( padding идет внутри границ; margin выходит наружу).
, а затем однажды решили удалить аватар , у нас осталось бы это пространство. Мы должны были бы выследить, что вызывает дополнительное пространство (окружающие твит ? содержимое ?) и избавиться от него. было левое поле, и мы решили заменить содержимое чем-то другим , нам нужно было бы помнить, чтобы добавить пробел назад к тому, что заняло его место.
Поместите поля справа и снизу. Вернемся к стилю. Удаление стиля списка
ul и li Элементы списка внутри него поставляются с кучей пробелов слева и пулями. Мы не хотим ничего из этого. flex-direction: row по умолчанию) list-style- введите из диска , который показывает пули, и мы можем отключить это, установив стиль списка: нет; ( list-style — это сокращенное свойство , которое одновременно устанавливает несколько других свойств, включая list-style-type ). .действия {
дисплей: гибкий;
заполнение: 0;
}
.actions ли {
стиль списка: нет;
} .actions — это еще один селектор класса.
Там ничего особенного. .actions li , тем не менее, говорит «все li элементов где-нибудь внутри элементов с классом действий ». Это комбинация селектора класса ( .actions ) и селектора элемента ( li ). li на странице», а затем «хорошо, теперь нацеливаемся только на li , которые находятся где-то внутри элемента с классом действий 9».0098». Вы можете думать об этом любым способом, и вы получите тот же результат. (подробнее о причинах этого в StackOverflow) Разложить кнопки
. justify-content . Когда вы находитесь в flex-direction: row (по умолчанию и той, которую мы использовали до сих пор), justify-content будет перемещать элементы влево и вправо. По умолчанию это flex-start (поэтому все сжато влево). Если мы установим justify-content: space-between на .actions , они будут распределены равномерно по всей ширине, например: 1px solid #ccc сделает его шириной 1 пиксель, сплошной линией (в отличие от пунктирной или пунктирной) и серым цветом. .твит {
дисплей: гибкий;
выравнивание элементов: flex-start;
граница: 1px сплошная #ccc;
}
.
actions ли {
стиль списка: нет;
поле справа: 30px;
} tweet . Давайте дадим ему немного места с отступом . .твит {
дисплей: гибкий;
выравнивание элементов: flex-start;
граница: 1px сплошная #ccc;
отступ: 10 пикселей;
} p и ul элементы (в Chrome devtools поля оранжевые, а отступы зеленые):
.author-meta , p и ul . Для реального макета сайта вы можете рассмотреть возможность сброса CSS, чтобы дать вам общую отправную точку для разных браузеров. р, ул {
маржа: 0;
}
.автор-мета, р {
нижняя граница: 1em;
} , позволяет применить набор свойств сразу к нескольким селекторам. Итак, p, ul говорит «все элементы p , И все элементы ul ». Это союз обоих. em в 1em . Один em равен размеру основного шрифта в пикселях. Размер шрифта по умолчанию 16px (высота 16 пикселей), поэтому в нашем случае 1em == 16px . При изменении размера шрифта масштаб em меняется вместе с ним, поэтому 1em — хороший способ выразить «Я хочу, чтобы поле под текстом было таким же высоким, как текст, каким бы он ни был».
.аватар {
поле справа: 10px;
ширина: 48 пикселей;
радиус границы: 50%;
} border-radius позволяет скруглять углы блоков, и есть несколько способов указать его значение. Вы можете указать число в px или em или другую единицу, если вам нужен небольшой радиус. Вот радиус границы : 5px 9Например, 0098: 50% , что позволит определить правильный размер для создания круга без необходимости заранее знать точный размер. И, бонус, если размер изменится позже, нам вообще не нужно трогать border-radius ! Нарисуйте остальную часть совы

.tweet {
дисплей: гибкий;
выравнивание элементов: flex-start;
граница: 1px сплошная #ccc;
отступ: 10 пикселей;
/*
Измените шрифт и размер.
Установка его на .tweet изменяет его для всех дочерних элементов.
(кроме кнопок. кнопки странные)
*/
семейство шрифтов: Helvetica, Arial, без засечек;
размер шрифта: 14px;
}
.имя {
вес шрифта: 600;
}
.справиться,
.время {
цвет: #657786;
} , вес: 600; — то же, что и , вес шрифта: полужирный; Некоторые шрифты бывают разных размеров, и вы можете указать от 100 до 900 (от самого тонкого до самого жирного). нормальный (по умолчанию) такой же, как 400. // , как в JS и других языках.
Стиль // будет работать в некоторых браузерах, но не во всех из них он безопасен. Окружите свои комментарии C-стилем /* */ и все готово. .handle::после {
содержание: "\00b7";
} ::after создает псевдоэлемент, который помещается внутри .handle , но в конце («после» содержимого). Вы также можете использовать ::до . Атрибут содержимого может быть установлен для любого текста, включая символы Unicode. Вы можете безрассудно стилизовать псевдоэлементы, как и любые другие. Они могут быть удобны для таких вещей, как значки, индикаторы уведомлений или другие маленькие элементы. Кнопки со значками
Мы добавим Font Awesome внутри тега head :
ul на это, где у каждой кнопки есть иконка и какой-то скрытый текст:
i «курсив» для отображения значков.
Поскольку это шрифт, свойства CSS, которые применяются к тексту (например, , цвет и размер шрифта ), будут работать и со значками. aria-hidden="true" указывает программам чтения с экрана игнорировать значок. sr предоставляется Font Awesome. Он визуально скрывает элементы, к которым применяется, оставляя их доступными для программ чтения с экрана.: указатель , который превратит курсор мыши в «руку», которую вы обычно видите, когда наводите курсор на ссылку. Наконец, .actions button:hover будет нацеливаться на кнопки, на которые наведен курсор, и окрашивать их в синий цвет.
.кнопка действий {
граница: нет;
цвет: #657786;
размер шрифта: 16px;
курсор: указатель;
}
кнопка .actions:наведите {
цвет: #1da1f2;
} Как стать лучше в CSS
Мой совет? Игнорируйте их все 🙂
Пошаговые инструкции см.

