Полупрозрачный фон
Я хотел бы показать как быстро сделать полупрозрачный фон. Если в CSS использовать команду opacity, то фон конечно же станет прозрачным, но вместе с ним также и всё остальное что на нём находится.
Как же исправить эту проблему? Я порылся в Интернете и нашёл замечательный способ, о котором я вам сейчас и поведаю.
Допустим, это ваш сайт (html):
Полупрозрачный фон Ваш текст
Ваш текст. Ваш текст.
Строчка «» подключает файл стилей CSS.
Вот он (он называется style.css):
body < background: "Ваша картинка для фона" ; * background-attachment: fixed ; background-position: top center; >.mid
В классе mid 3 строчка задаёт цвет полупрозрачного цвета в формате RGBA. Её 4 цифра, в данном случае 0.5 — значение прозрачности от 0 до 1.
Вот так всё просто. Пробуйте, у вас обязательно всё получится!
* — вставляете сюда url картинки
** — задаём ширину страницы (для этого в html — коде мы создали class mid)
*** — rgba — это цвет в формате rgb. Последняя буква (a) означает прозрачность фона. Её значение — цифра от 0 до 1. 0 — полностью прозрачный фон, соответственно, 1 — наоборот.
CSS: Цветовая модель RGB
При изучении курса мы сталкивались со свойствами, значениями которых является цвет. Такими свойствами были:
- color
- background-color
- border-color
Для обозначения цвета использовалась шестнадцатеричная модель RGB, которая переводится как Red Green Blue. В CSS для обозначения цвета в RGB используется две основные записи:
- Шестнадцатеричная. Это запись из 6 символов, разбитые на три блока по два значения. Каждый блок отвечает за один из цветов: красный, зелёный или синий
- С использованием функции rgb(red, green, blue) . Функция принимает три числа от 0 до 255, каждое из которых определяет количество красного, зелёного и синего цвета
Шестнадцатеричная запись
При использовании такой записи используется шестнадцатеричная система счисления. Запись делится на три блока по два числа:
- от 00 до ff — количество красного цвета
- от 00 до ff — количество зелёного цвета
- от 00 до ff — количество синего цвета
/* Белый цвет */ color: #ffffff; /* Чёрный цвет */ color: #000000;
Предположим, что для текста нужен фиолетовый цвет. Как он получается? Для этого смешивается красный и синий цвет. В фиолетовом отсутствует зелёный цвет. Значит нужна максимальная запись в первом и третьем блоке. Итого получится цвет #ff00ff
Текст фиолетового цвета
Можно получать разные вариации этого цвета, добавляя или уменьшая количество составных цветов
Функция rgb
Второй способ указать цвет с помощью цветовой модели RGB — использование специальной функции rgb() . Она принимает три числа от 0 до 255, где первое число определяет количество красного цвета, второе число — количество зелёного цвета, а третье — количество синего. Ничего не напоминает?
Если вам показалось, что это похоже на шестнадцатеричную систему, то будете правы — суть точно такая же. Только записываем цвета в привычных нам цифрах. В остальном всё то же самое, а значит можно создать фиолетовый цвет, используя функцию rgb() :
.text
Текст фиолетового цвета
А вот как будет выглядеть белый и чёрный цвет при использовании функции rgb() :
/* Белый цвет */ color: rgb(255, 255, 255); /* Чёрный цвет */ color: rgb(0, 0, 0);
Прозрачность и функция rgba()
При использовании фонового цвета часто используют не просто цвет, но и добавляют ему прозрачность. В цветовой модели RGB для этого используется понятие «альфа»-канал. Он определяет насколько прозрачный цвет должен выводиться и задаётся числом от 0 до 1, где 0 — полностью прозрачный цвет, а 1 — полностью непрозрачный.
Чтобы использовать альфа-канал создаётся функция rgba() , где a — alpha . В остальном всё точно так же, как и было изучено ранее. Сделаем полупрозрачный фиолетовый фон:
.background
Блок с полупрозрачным фиолетовым фоном
Задание
Создайте параграф с классом background-black-50 и установите ему полупрозрачный чёрный фон. Используйте функцию rgba() . Стили запишите в теге
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
background — color
Свойство, раскрашивающее фон элемента в яркие краски!
Время чтения: меньше 5 мин
Открыть/закрыть навигацию по статье
Контрибьюторы:
- Светлана Коробцева ,
- Антон Капустинский
Обновлено 28 августа 2023
Кратко
Скопировать ссылку «Кратко» Скопировано
При помощи свойства background — color можно задать цвет фона элемента. Задать фоновый цвет можно любому элементу — строчному (inline), блочному (block) или строчно-блочному (inline-block).
Пример
Скопировать ссылку «Пример» Скопировано
Розовый — цвет, образующийся.
Жёлтый — самый лёгкий и яркий цвет.Английское слово blue.p class="block">Розовый — цвет, образующийся. p> span class="inline">Жёлтый — самый лёгкий и яркий цвет. span> div class="inline-block">Английское слово blue. div>
.block background-color: rgb(244, 152, 173);> .inline background-color: yellow;> .inline-block background-color: #2E9AFF;>
.block background-color: rgb(244, 152, 173); > .inline background-color: yellow; > .inline-block background-color: #2E9AFF; >
В примере выше показаны блоки всех трёх типов отображения. С фоном для блочных и строчно-блочных элементов проблем не возникает, а вот со строчными элементами всё не так просто.
Если высота строки ( line — height ) у строчного элемента будет больше 1, то между строками будут пробелы.
Но в заливке фона строчных элементов есть и преимущества! На последней строке фон заканчивается ровно там, где заканчивается текст.
Помимо этой особенности, в CSS-коде видно, что в качестве значения для background — color можно использовать любое доступное обозначение цвета в вебе.
Как понять
Скопировать ссылку «Как понять» Скопировано
Свойство background — color меняет цвет фона любого элемента.
Как пишется
Скопировать ссылку «Как пишется» Скопировано
Для нужного селектора указываем свойства background — color и после двоеточия указываем цвет фона в любом доступном для веба формате.
.element background-color: black;>
.element background-color: black; >
.element background-color: #ffffff;>
.element background-color: #ffffff; >
.element background-color: #ffffff80;>
.element background-color: #ffffff80; >
.element background-color: rgb(255 255 0 / 0.5);>
.element background-color: rgb(255 255 0 / 0.5); >
Помимо цвета можно задать прозрачный фон при помощи ключевого слова transparent .
Это бывает полезно для изменения цвета при наведении курсора.
Подсказки
Скопировать ссылку «Подсказки» Скопировано
Свойство фона не наследуется.
Значение по умолчанию — прозрачный фон: transparent .
Фон нельзя задать частично. Блок заливается указанным цветом полностью.
В качестве значения можно указать только один цвет.
Изменение цвета фона можно анимировать при помощи свойства transition
На практике
Скопировать ссылку «На практике» Скопировано
Алёна Батицкая советует
Скопировать ссылку «Алёна Батицкая советует» Скопировано
Если нужна красивая кнопка ( ), то не забудьте сбросить фон: укажите для неё background — color : transparent . Или тот цвет фона, который нужен по дизайну. По умолчанию у всех кнопок серый фон с приветом из девяностых.
Аналогичным способом можно сделать красивые прозрачные поля ввода ( input ) в формах.
Email:
form class="form"> label> span class="label">Email:span> input class="input" type="text" placeholder="Введите ваш email"> label> button class="button">Подписатьсяbutton> form>
.form /* Фон для всей формы */ background-color: #18191C;> .input /* Прозрачное поле ввода */ background-color: transparent;> .button /* Чёрный фон для кнопки */ background-color: #2E9AFF;> .button:hover /* Белый фон при наведении курсора */ background-color: #FFFFFF;>
.form /* Фон для всей формы */ background-color: #18191C; > .input /* Прозрачное поле ввода */ background-color: transparent; > .button /* Чёрный фон для кнопки */ background-color: #2E9AFF; > .button:hover /* Белый фон при наведении курсора */ background-color: #FFFFFF; >
Если вам нужен градиент, то background — color вам не подойдёт. Градиенты можно задать только при помощи background — image .
Если нужен блок с «рваным» краем, но без пробела между строками, то для этого есть множество трюков. Один из них:
Чем отличается маркер от текстовыделителя? Текстовыделительные маркеры заправляются флуоресцентными полупрозрачными чернилами. Они не покрывают поверхность бумаги плотным слоем, не пропускающим свет, как это делают обычные маркеры на водной или спиртовой основе.
p> Чем отличается маркер от текстовыделителя? span class="bkg"> Текстовыделительные маркеры заправляются флуоресцентными полупрозрачными чернилами. Они не покрывают поверхность бумаги плотным слоем, не пропускающим свет, как это делают обычные маркеры на водной или спиртовой основе. span> p>
.bkg background-color: #F498AD; /* Тень для каждой строки, перекрывающая пробел */ box-shadow: 0 4px 0 #F498AD;>
.bkg background-color: #F498AD; /* Тень для каждой строки, перекрывающая пробел */ box-shadow: 0 4px 0 #F498AD; >
С помощью полупрозрачного фонового цвета у псевдоэлемента можно создать красивый оверлей поверх фотографий или фоновых изображений. Это круто, потому что фоном можно будет ставить любую фотографию, и она в большинстве случаев не будет выбиваться из дизайна.
The best site all over the world!
header> h1>The best site all over the world!h1> header>
header /* Чтобы псевдоэлемент считал своё положение от этого блока */ position: relative; z-index: 0; /* Фоновое изображение на всю ширину и высоту блока */ background: url("background.png") no-repeat center / cover;> header:before content: ""; position: absolute; z-index: -1; display: block; top: 0; left: 0; width: 100%; height: 100%; /* Оверлей поверх картинки с прозрачностью 50% */ background-color: rgba(0, 79, 130, 0.5);>
header /* Чтобы псевдоэлемент считал своё положение от этого блока */ position: relative; z-index: 0; /* Фоновое изображение на всю ширину и высоту блока */ background: url("background.png") no-repeat center / cover; > header:before content: ""; position: absolute; z-index: -1; display: block; top: 0; left: 0; width: 100%; height: 100%; /* Оверлей поверх картинки с прозрачностью 50% */ background-color: rgba(0, 79, 130, 0.5); >
Для .header можно задать любую картинку фоном, и поверх неё всегда будет голубой оверлей ♀️
Как сделать полупрозрачный фон в css
В последнее время в сайтостроении активно применяются различные приемы, связанные с прозрачностью. Это позволяет создавать красивые шапки сайтов и множество различных декоративных элементов. Благодаря формату PNG-24 сегодня есть возможность вставлять на веб-страницу полупрозрачные изображения самых разных форм.
А что предусмотрено в самом css для использования полупрозрачных фонов? В последние годы в нем появилась возможность определять цвет текста или заднего плана в цветовом режиме rgba. Если вы работаете в графических редакторах, то наверняка знаете о нем. Цвет в rgba определяется так:
background : rgba ( доля красного , доля зеленого , доля синего , прозрачность )
Первые три значения записываются числовыми значениями от 0 до 255, где 255 – самая большая доля цвета. Прозрачность определяется по-другому – от 0 до 1. Если записать 0, то эффект будет такой же, как при background: transparent, то есть при полностью прозрачный фон.
Зачем все это нужно
Ну вот представьте, что вы определили для всей веб-страницы или отдельного блока какое-то фоновое изображение. Потом, если вы в этом родительском контейнере создадите новые блоки, то после определения оттенка для них изображение не будет видно на этих участках страницы.
Если же вам нужно, чтобы основной сплошной цвет просвечивался и через него было видно нашу картинку, то для этого и используется цветовой режим rgba. Например, я создам в html-документе два блока с произвольными идентификаторами.
position : absolute ;
width : 600px ;
height : 400px ;
background : rgb ( 255 , 234 , 13 )
width : 600px ;
height : 400px ;
position : absolute ;
background : url ( star . png )
Блоки идентичны друг другу во всем, кроме фона. Благодаря абсолютному позиционированию они стоят на одном и том же месте – в верхнем левом углу страницы, но поскольку блок #ct стоит в html-разметке последним, он полностью перекрывает своего товарища и на странице мы увидим просто желтый сплошной фон.
В то же время видим, что у #ab есть какая-то фоновая картинка, но мы ее не увидим, потом что у #ct не полупрозрачный фон и через него ничего не просвечивается. Все потому, что мы задали цвет в режиме rgb, а он не добавляет полупрозрачность, которая нам так нужна в данном случае. Давайте изменим стиль для #ct:
background : rgba ( 255 , 234 , 13 , 0.5 ) .
Обновляем страницу и видим вместо сплошного желтого более тусклый оттенок, а через него видно звездочки, которые и были фоновым изображением нашего блока #ab. Вот это и есть работа режима rgba.
Теперь давайте разбрем другой пример. Удалим один из блоков, а внутри оставшегося создадим дочерний элемент, которому тоже назначим свои стили.
width : 600px ;
height : 400px ;
background : url ( bg . png ) ;
padding — top : 100px ;
width : 400px ;
height : 300px ;
margin : 0 auto ;
background : pink ;
border — radius : 25px ;
Отцентрируем дочерний элемент, дадим фоновое изображение основному контейнеру и желаемый колер для блока внутри него. Опять же, из-за отсутствия полупрозрачности фон родителя не будет просвечиваться.
Теперь достаточно определить подходящий оттенок, который был бы схож с розовым (pink), только записать его в режиме rgba, добавим последним значением прозрачность. Переопределяем цвет фона для дочернего элемента:
background : rgba ( 210 , 121 , 166 , 0.28 ) ;
Теперь, если обновить страницу, мы видим, что через цвет в дочернем блоке видно тот красивый орнамент, который задан для общего контейнера.
Где это может пригодиться в сайтостроении?
Хорошо, прием с полупрозрачностью мы с вами разобрали, а где он вообще применяется? Обычно его используют при создании так называемых масок у различных картинок, пунктов меню или товаров.
Наверняка вы видели на некоторых сайтах, как при наведении на элемент, на него как бы накладывался другой фон с каким-то содержимым. Но при этом если цвет этого накладываемого фона задать непрозрачным, то предыдущую картинку мы уже не увидим. Соответственно, это никуда не годится, поэтому используется полупрозрачный цвет, который и задают с помощью rgba.
Другим примером использования может быть тот, что вы могли видеть выше. У основного контейнера была красивая фоновая картинка. Соответственно, чтобы этот орнамент был виден и через фоновый цвет дочерних элементов, его также нужно записать в rgba.
Ну а как сделать полностью прозрачный фон в css? Выше я писал, что для этого можно записать свойство background: transparent, либо же задать 0 в качестве четвертого значения при записи цвета в режиме rgba. Другой прием – записать блоку свойство opacity со значением 0, но тогда весь блок будет прозрачным, то есть невидимым.
Больше информации вы можете узнать из нашего курса по css3, где есть соответствующий урок по полупрозрачности и свойству opacity. Смотрите и изучайте его, чтобы еще лучше разобраться в этих свойствах. На этом я заканчиваю статьи и желаю вам успехов в изучении веб-технологий. Оставайтесь с webformyself, чтобы узнавать еще больше.