что значит before и after
Популярно о псевдоэлементах :Before и :After
Псевдоэлементы :before и :after позволяют добавлять содержимое (стили) до и после элемента, к которому были применены.
Всего существует несколько типов псевдоэлементов: :first-line, :first-letter, ::selection, :before и :after. В этой статье подробно рассмотрены последние два, как наиболее полезные.
Синтаксис и поддержка браузерами
Псевдоэлементы появились еще в CSS1, но пошли в релиз только в CSS2.1. В самом начале в синтаксисе использовалось одно двоеточие, но в CSS3 используется двойное двоеточие для отличия от псевдоклассов:
Но в любом случае, современные браузеры умеют понимать оба типа синтаксиса псевдоэлементов, кроме Internet Explorer 8, который воспринимает только одно двоеточие. Поэтому надежнее использовать одно.
Пример использования псевдоэлементов
Элементы :before и :after не будут сгенерированы, т.е. не будут видны в коде страницы, поэтому они и называются псевдоэлементами.
Использование
Использовать псевдоэлементы крайне просто: :before добавляется перед нужным элементом, а :after — после.
Для добавление контента внутри псевдоэлементов можно воспользоваться CSS-свойством content.
Простой пример: необходимо добавить кавычки для цитаты:
Стилизация псевдоэлементов
К псевдоэлементом можно применять такие же стили, как и к «реальным»: изменение цвета, добавление фона, регулировка размера шрифта, выравнивание текста и т.д.
Созданные элементы по умолчанию inline-элементы, поэтому при указании высоты или ширины необходимо установить display: block:
Также внутри псевдоэлемента можно использовать картинку вместо обычного текста, и даже добавлять фоновое изображение.
В этом примере свойство content содержит пустую строку, это необходимо, иначе псевдоэлемент не будет правильно отображаться.
Использование вместе с псевдоклассами
Псевдоэлементы могут быть использованы вместе с псевдоклассами, в нашем примере это поможет добавить hover-эффект кавычкам:
Добавление transition-эффекта
Также можно применить свойство transition для плавного изменения цвета кавычек:
К сожалению, это нормально работает только в последних версиях Firefox.
Посмотреть демонстрацию примера из этой статьи.
Немного вдохновения
Три примера использования псевдоэлементов :before и :afte:
CSS псевдоэлементы :before и :after, изучение и применение
Также существуют и другие псевдоэлементы, но сегодня мы сфокусируемся на :before и :after. По ходу статьи, под термином псевдоэлементы, будем подразумевать эти двое (before и after).
Что делают псевдоэлементы?
Псэвдоэлементы создают поддельные элементы и вставляют из перед (before) или после (after) определенного контента.
Сама приставка «псевдо-» говорит о том, что это не реальные элементы. Они не видимы для поисковых систем, используются только для оформления контента. Эти элементы определяются в CSS коде.
Базовый синтаксис
Псэвдоелементы :before и :after предельно просто прописываются в коде. Вот простой пример использования:
Здесь важно отметить две вещи. Во первых, мы указываем на реальный html элемент с помощью строк #example:before и #example:after. Приставки после двоеточия, означают, что это стиль не просто элемента, а его псевдоэлементов.
Во вторых, вы не сможете ничего добавить без свойства content, которое указывает, что именно должно отображаться как псевдоэлемент.
Расширенный синтаксис
Вы можете оставить свойство content пустым, и создать блок.
Если вы удалите свойство content, псевдоэлемент работать не будет. По крайней мере, это совойство должно оставаться пустым.
Вы должны знать, что некоторые используют эти элементы в виде ::before и ::after. Разницы никакой нет, браузеры поддерживают такой синтаксис также.
Еще один момент использования. Вы можете применить псевдоэлемент к каждому из html элементов.
Но это используется в личных целях. Этот код вставляет # перед контентом в каждом DOM элементе. Даже если вы удалите все теги на странице, вы сможете видеть два символа ## на странице. Это используется, сам не знаю для чего, но такое есть.
Характеристики вставляемого контента
Как упоминалось раньше, контент, который вставляется невидим на html странице. Он видим только в CSS.
Также, вставляемый контент, по умолчанию будет строчным элементом. Чтобы сделать его блочным достаточно указать display:block;, указать ширину и высоту блока. Это очень удобно при создании вкладок, кнопок и т.д.
Важно заметить, что псевдоэлементы не наследуют стилей от родительских элементов (такие как внутренний и внешний отступы). Поэтому для каждого псевдоэлемента, необходимо указывать свои параметры стилей.
Вставляем не только текстовый контент
В свойстве content, не обязательно должен быть текст, также может быть картинка. Вы можете прописать URL картинки, как это делается в background.
Важно помнить, что нельзя URL брать в кавычки, это будет значить что контент является текстом.
Какие браузеры поддерживают :before и :after?
Особенно в последнее время важна кроссбраузерность в дизайне. Поэтому, перед использованием какого-то метода, необходимо проверять его в разных версиях браузеров. Ниже предоставлен список браузеров, которые поддерживают псевдоэлементы :before и :after.
Firefox 3.5+ (3.0 имеет частичную поддержку),
IE8+ (С небольшими багами),
А также много других мобильных браузеров.
Существует только одна проблема (надеюсь это не новость для вас) IE6 и IE7, которые не поддерживают псевдоэлементы. Если ваша аудитория пользователей использует такие браузеры, придется помучится или просто предложить им обновить браузер.
Как видите использование псевдоэлементов before и after не так критично, как многие возомнили. На этом все, желаю творческих успехов!
Псевдоэлементы — Основы вёрстки контента
В прошлых уроках мы разобрали псевдоклассы — изменение существующих элементов в зависимости от их состояния. А возможно ли задать или создать стили для таких элементов, которых нет внутри HTML? Да! И для этого в CSS существует понятие псевдоэлементов.
Разберёмся на примере стилизации буквицы. Буквица — увеличенный первый символ в параграфе. Вы часто можете встретить этот приём в книгах со сказками или книгах, стилизованных под старину. Каким способом это можно сделать? Первое, что приходит в голову — обернуть первый символ в отдельный тег и стилизовать именно его.
Хороший и рабочий вариант, подходящий для точечных изменений в некоторых текстах. Какие проблемы тут могут быть скрыты? Во-первых: если таких текстов много, то добавлять теги к каждому нужному параграфу достаточно долго и риск ошибки возрастает. Можно забыть проставить тег или проставить не на первой букве. Во-вторых, масштабируемость падает. В случае избавления от буквицы нужно удалить все классы или удалить стили, но тогда останутся ненужные теги, которые скорее запутают.
Как можно выйти из этой ситуации? Тут в дело и вступают псевдоэлементы. Они могут виртуально создать за нас такой тег и стилизовать его используя только CSS. Это решает сразу две проблемы, которые были описаны выше:
Результат не изменился, но, с точки зрения работы браузера, произошло много изменений. Браузер автоматически нашёл первый символ в параграфе, который находится внутри article. Обернул его и применил стили, описанные в CSS.
before и after
Для этих двух псевдоэлементов можно написать не только урок, но и целый курс. Их взаимодействие с сайтами невозможно переоценить. Используясь в большинстве случаев, ::before и ::after по праву являются самыми важными псевдоэлементами. В процессе изучения вёрстки можно придумать различные способы их использования и стилизации.
В уроке про списки было сказано, что стилизация маркеров чаще всего происходит с помощью псевдоэлементов. В этой части рассмотрим, как же это делается.
Важно: здесь будут свойства, которые относятся к позиционированию элементов. Все эти свойства будут изучены в курсе CSS: Позиционирование. Если некоторые части CSS будут непонятны, то не переживайте. В скором времени вы изучите работу всех новых свойств.
::before и ::after позволяют создать новый контент внутри HTML дерева. Этот контент привязан к определённому элементу и может появляться до него или после. Именно поэтому псевдоэлементы называются так:
Создадим блочный элемент и воспользуемся новыми псевдоэлементами.
Весь контент внутри псевдоэлементов ::before и ::after является строчным. То есть имеет свойство display: inline по умолчанию. Вы легко можете изменять это и работать с псевдоэлементами так, как если бы это были обычные элементы внутри HTML документа.
Это открывает поистине безграничные возможности стилизации элементов с помощью CSS. Много техник построено на использовании псевдоэлементов. Создадим пользовательские маркеры списка, используя изображение.
Устанавливаем изображение для блока. Для этого мы используем три свойства:
Позиционировав этот псевдоэлемент мы получили изображение в качестве маркера списка. Для этого не пришлось подстраивать изображение, так как эта работа осталась за CSS.
Самостоятельная работа
Дополнительные материалы
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты.
Крутое использование псевдоэлементов CSS ::before и ::after
Дата публикации: 2019-04-17
От автора: я должен признаться: мне нравятся псевдо-элементы CSS ::before и ::after. Они похожи на пару приспешников в каком-то модном приключении. В 3 раза больше силы. В 3 раза больше стилей. В 3 раза больше удивительные визуальных эффектов, которые вы можете создать.
Вы никогда не окажетесь в одиночестве — потому что везде, где был один, теперь будут трое
Что такое псевдо-элементы?
Если вы никогда раньше не сталкивались с ::before и ::after, вы можете спросить: «Что это за псевдо-элемент, о котором вы говорите?»
Вот 30-секундный обзор: Псевдоэлементы являются «воображаемыми» элементами, которые можно вставить в документ с помощью CSS. Например, если бы я написал очень простой CSS:
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Внезапно перед каждым p контента страницы будет вставлено слово «Hello». Псевдо-элемент ::after похож на него, но размещается после контента.
Свойство content определяет то, что они выводят, но эти элементы полностью стилизуемы — точно так же, как и любой другой элемент. Так что вам на самом деле не нужно размещать текстовое содержимое внутри. Фактически, многие из наиболее интересных применений полностью визуальны.
Тем не менее, я хочу выделить одну распространенную ошибку, потому что я так много раз ее совершал. Многие из применений, которые мы будем исследовать, включают в себя графику, но не содержат реального содержимого из слов. Это замечательно, но вы должны установить и свойство content, и, если ваш контент пуст, свойство display — или псевдо-элемент не будет отображаться. Я наступал на эти грабли много раз… поэтому никогда не забывайте начинать с настройки контента. Если ваше использование полностью визуально, просто установите:
Простое использование ::before и ::after
Давайте начнем с некоторых простых способов использования ::before и ::after.
Пользовательские иконки
Одним простым и распространенным, но очень полезным использованием для ::before является добавление иконок к элементам определенного класса. Например, FontAwesome использует эту технику для реализации своих иконок. Вы можете использовать тот же подход, чтобы сделать свои собственные иконки.
FontAwesome делает это с помощью собственного шрифта и свойства content, которое предоставляет преимущество автоматического изменения размера в зависимости от элемента, для которого оно задано. Если мы хотим использовать изображение, нам нужно явно указать его размер, иначе псевдоэлемент будет иметь размер 0 и не будет виден.
Цитаты
Еще одно полезное использование ::before и ::after заключается в добавлении кавычек вокруг цитаты. Например, мы могли бы создать класс «quote», который применяет двойные кавычки до и после, и даже класс атрибуции, который добавляет в начале тире:
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
Есть множество других вещей, которые мы могли бы охватить в качестве обычного использования, но я хочу перейти к некоторым более захватывающим вещам.
Продвинутое использование before и after
Создание фигур
Одной из проблем работы в HTML и CSS является ограниченное количество «базовых» фигур, с которыми вам приходится работать.
По сути, каждый элемент является прямоугольником … и затем с помощью продвинутого использования border-radius и border вы можете либо округлить этот прямоугольник в овал или круг, либо наклонить углы и создать из него треугольник. Конечно, вы можете повернуть его, но это и все…
Но теперь с ::before и ::after у вас есть в 3 раза больше «блоков» для экспериментов. Каждый из них может быть отдельно преобразован, расположен и повернут. Это приводит к феноменальному выбору фигур, которые вы можете создать с помощью чистого CSS.
Крис Койер из CSS Tricks собрал здесь большую коллекцию возможных фигур, из которых я воспроизвел свои любимые, используя цветовую схему ZenDev.com. Верите или нет, это всего лишь 1 элемент HTML!
Отображение значений атрибутов
Еще одно очень крутое использование псевдо-элементов ::before или ::after — это отображение содержимого атрибута.
Вы можете сделать это, включив в content — attr([attributename]).
Например, если вы используете виджет на основе JavaScript, который хранит какое-то значение в качестве атрибута, вы можете автоматически отобразить этот атрибут без необходимости использовать какой-либо JavaScript для его просмотра!
Одно из мест, где я использовал это раньше — это слайдер ZURB Foundation. Слайдер работает, изменяя значение в скрытом поле ввода… но что, если мы хотим сделать текущее значение видимым в самом слайдере? Элемент управления, которым мы манипулируем — это просто span… но он получает атрибут aria для текущего значения aria-valuenow. Ссылаясь на него в псевдо-элементе с помощью content: attr(aria-valuenow), мы можем отобразить его прямо на элементе управления.
Многоступенчатая анимация
Одним из самых интересных использований, которые я видел, является создание многоступенчатой анимации. Она еще раз используют тот факт, что псевдо-элементы дают вам целые дополнительные элементы для манипуляции в анимации. Вы можете анимировать основной элемент в одном направлении, а затем независимо анимировать каждый псевдо-элемент.
Есть много интересных вещей, которые мы могли бы потенциально сделать с этим. Создавать супер крутые микровзаимодействия. В другом примере текстовое содержимое визуально скрыто и отображается при нажатии или наведении курсора.
Завершение
С помощью этих псевдо-элементов можно сделать так много, что трудно все это охватить. Это некоторые из примеров, которые я нахожу особенно захватывающими.
Редакция: Команда webformyself.
Практический курс по верстке адаптивного сайта с нуля!
Изучите курс и узнайте, как верстать современные сайты на HTML5 и CSS3
BEFORE и AFTER в английском языке
Предлоги before и after мы начинаем изучать с самых первых уроков английского. И хотя они противоположны по значению, всё же у них больше общего, чем различий. Интересно? А что, если я скажу, что before и after могут быть не только предлогами? Давайте вместе разбираться с этими словами в этой статье.
Употребление BEFORE
О предлоге before в английском языке мы вспоминаем в двух случаях: когда говорим о месте или о времени. Узнать о значениях предлога места before можно по ссылке, а сейчас давайте разберем значения времени.
You should always wash your hands before lunch.
Ты всегда должен мыть руки перед обедом.
Before leaving he drank a glass of wine.
Перед уходом он выпил стакан вина.
Полина Червова, основатель школы WillSpeak
«Before также может быть союзом. В этом случае значение «до» сохраняется, но после before идет целая конструкция «подлежащее + сказуемое». Например:
It was two hours before the police arrived.
Прошло 2 часа до того, как приехала полиция.
Before может также выступать в качестве наречия. В этом случае он будет переводиться как «раньше», и после него мы ничего не ставим.
He said he had never done this before.
Он сказал, что никогда не делал этого раньше.
I feel as though I’ve been there before.
Я чувствую, как будто я был там раньше.
В английских предложениях перед словом before вы нередко встретите такие наречия, как just «только что», immediately «немедленно», shortly «незадолго», long «задолго», и выражения со словами days «дни», weeks «недели», month «месяцы», years «года».
We got home just before the storm started.
Мы вернулись домой как раз перед началом шторма.
I got this dress in days before the sale.
Я купила это платье за несколько дней до распродажи.
Вы также можете встретить интересные идиомы со словом before. Я приведу в качестве примера несколько из них.
before the Flood – давным-давно, «до Потопа»
before you know it – очень скоро, «ты и глазом не моргнешь», «оглянуться не успеешь»
It happened before the Flood.
Это произошло давным-давно.
I will finish this project before you know it.
Я закончу этот проект так скоро, ты и глазом не моргнешь.
Употребление AFTER
Как я уже упомянула ранее, слова before и after во многом схожи, но различаются значением. Предлог after переводится «после», и мы также ставим его перед существительным и герундием.
Let’s go for a walk after lunch.
Пойдем прогуляемся после обеда.
We had coffee break after meeting.
После встречи мы сели выпить кофе.
Обратите внимание, что предлог after может встретиться и в других значениях – «в стиле, по», «в честь» кого-то, чего-то.
Look at this painting after Tititan.
Посмотри на эту картину в стиле Тициана.
We were at the concert after Mozart.
Мы были на концерте, поставленному по произведениям Моцарта.
She was named Leticia after her grandmother.
Ее назвали Летицией в честь ее бабушки.
Как и before, союз after употребляется перед конструкцией «подлежащее + сказуемое».
She went to the hospital immediately after she left you.
Она пошла в больницу сразу после того, как ушла от тебя.
Распространенное выражение «After you!» означает «Только после вас!»
Наречие after – это самостоятельная часть речи, после нее мы ничего не ставим.
Mary got here at midday and John arrived soon after.
Мэри приехала сюда в полдень, и вскоре после этого появился Джон.
Let’s feed the dogs first and have our dinner after.
Давай сначала покормим собак, а потом поужинаем сами.
Со словом after вы неоднократно встретите устойчивые выражения, которые нужно запомнить.
be after somebody / something – охотиться, преследовать, искать кого-то / что-то
after all – в конце концов, ведь
The police are after them.
Полиция преследует его.
Of course, I love him! After all, he’s my brother.
Конечно, я люблю его! В конце концов, он мой брат.
В английском языке есть также несколько фразовых глаголов с этим словом. Например:
take after someone – быть похожим на кого-то
run after something / somebody – стараться достичь чего-либо, гнаться за кем-то или чем-то
run after somebody – пытаться начать романтические отношения с кем-либо, ухлестывать
look after somebody / something – заботиться о ком-то, о чем-то
She has spent her life running after happiness.
Она провела свою жизнь в погоне за счастьем.
Don’t worry about Charlie – he can look after himself.
Не беспокойся о Чарли – он может позаботиться о себе.
А вы заметили сходство между before и after? Надеюсь, это поможет вам быстрее запомнить их значения.
В своих статьях я стараюсь подробно рассказать вам обо всех значениях самых распространенных предлогов английского языка. Но одно дело знать теорию, и совсем другое – применять эти знания на практике. На моем комплексном курсе английского Will Speak нет скучных лекций. Студенты сразу строят предложения с изученными словами, поэтому запоминают материал намного быстрее. Вы можете присоединиться к нам прямо сейчас!
Ваша Полина Червова,
основатель школы WillSpeak