Фильтры изображений css: 🤷🏽♀️ Page not found | MDN Web Docs
filter — CSS | MDN
Experimental
Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотрите таблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.
CSS свойство filter
позволяет вам применять к элементу такие графические эффекты, как размытие и смещение цвета. Фильтры обычно используются для регулировки рендеринга изображений, фонов и рамок.
В стандарт CSS включены несколько функций, которые обеспечивают предопределённые эффекты. Вы также можете ссылаться на SVG фильтр с URL-адресом на элемент фильтра SVG.
Предупреждение: Старые версии (с 4.0 до 9.0) браузера Windows Internet Explorer поддерживают нестандартный «filter», который с тех пор устарел.filter: url(resources. svg);
filter: blur(5px);
filter: brightness(0.4);
filter: contrast(200%);
filter: drop-shadow(16px 16px 20px blue);
filter: grayscale(50%);
filter: hue-rotate(90deg);
filter: invert(75%);
filter: opacity(25%);
filter: saturate(30%);
filter: sepia(60%);
filter: contrast(175%) brightness(3%);
filter: inherit;
filter: initial;
filter: unset;
С помощью функции, используйте:
filter: <filter-function> [<filter-function>]* | none
Для ссылки на SVG <filter> (en-US) элемент, используйте:
filter: url(svg-url#element-id)
Формальный синтаксис
none | (en-US) <filter-function-list>где <filter-function-list> = [ (en-US) <filter-function> | (en-US) <url> (en-US) ] (en-US)+ (en-US)
где
<filter-function> = <blur()> | (en-US) <brightness()> | (en-US) <contrast()> | (en-US) <drop-shadow()> | (en-US) <grayscale()> | (en-US) <hue-rotate()> | (en-US) <invert()> | (en-US) <opacity()> | (en-US) <saturate()> | (en-US) <sepia()>
где
<blur()> = blur( <length> )
<brightness()> = brightness( <number-percentage> )
<contrast()> = contrast( [ (en-US) <number-percentage> ] (en-US) )
<drop-shadow()> = drop-shadow( <length>{ (en-US)2,3} (en-US) <color>? (en-US) )<grayscale()> = grayscale( <number-percentage> )
<hue-rotate()> = hue-rotate( <angle> )
<invert()> = invert( <number-percentage> )
<opacity()> = opacity( [ (en-US) <number-percentage> ] (en-US) )
<saturate()> = saturate( <number-percentage> )
<sepia()> = sepia( <number-percentage> )где
<number-percentage> = <number> | (en-US) <percentage>
<color> = <rgb()> | (en-US) <rgba()> | (en-US) <hsl()> | (en-US) <hsla()> | (en-US) <hex-color> | (en-US) <named-color> | (en-US) currentcolor | (en-US) <deprecated-system-color>где
<rgb()> = rgb( <percentage>{ (en-US)3} (en-US) [ (en-US) / <alpha-value> ] (en-US)? (en-US) ) | (en-US) rgb( <number>{ (en-US)3} (en-US) [ (en-US) / <alpha-value> ] (en-US)? (en-US) ) | (en-US) rgb( <percentage># (en-US){ (en-US)3} (en-US) , <alpha-value>? (en-US) ) | (en-US) rgb( <number># (en-US){ (en-US)3} (en-US) , <alpha-value>? (en-US) )
<rgba()> = rgba( <percentage>{ (en-US)3} (en-US) [ (en-US) / <alpha-value> ] (en-US)? (en-US) ) | (en-US) rgba( <number>{ (en-US)3} (en-US) [ (en-US) / <alpha-value> ] (en-US)? (en-US) ) | (en-US) rgba( <percentage># (en-US){ (en-US)3} (en-US) , <alpha-value>? (en-US) ) | (en-US) rgba( <number># (en-US){ (en-US)3} (en-US) , <alpha-value>? (en-US) )<hsl()> = hsl( <hue> <percentage> <percentage> [ (en-US) / <alpha-value> ] (en-US)? (en-US) ) | (en-US) hsl( <hue>, <percentage>, <percentage>, <alpha-value>? (en-US) )
<hsla()> = hsla( <hue> <percentage> <percentage> [ (en-US) / <alpha-value> ] (en-US)? (en-US) ) | (en-US) hsla( <hue>, <percentage>, <percentage>, <alpha-value>? (en-US) )где
<alpha-value> = <number> | (en-US) <percentage>
<hue> = <number> | (en-US) <angle>
Примеры использования предопределённых функций показаны ниже. См. каждую функцию для конкретного примера.
.mydiv { filter: grayscale(50%) }
img {
filter: grayscale(0.5) blur(10px);
}
Примеры использования функции URL с SVG ресурсом показаны ниже.
.target { filter: url(#c1); }
.mydiv { filter: url(commonfilters.xml#large-blur) }
Для использования CSS свойства filter
, вы указываете значение для одной из выбранных функций. Если это значение недействительно, функция возвращает «none.» За исключением тех случаев, когда функции, которые принимают значение, выраженное в процентах (34%), также принимают значение, выраженное как десятичная дробь (0.34).
url()
The url() function takes the location of an XML file that specifies an SVG filter, and may include an anchor to a specific filter element.
filter: url(resources.svg#c1)
blur() [размытие]
Applies a Gaussian blur to the input image. The value of ‘radius’ defines the value of the standard deviation to the Gaussian function, or how many pixels on the screen blend into each other, so a larger value will create more blur.
0
is used. The parameter is specified as a CSS length, but does not accept percentage values.<svg xmlns="http://www.w3.org/2000/svg">
<filter x="-5%" y="-5%">
<feGaussianBlur in="SourceGraphic" stdDeviation="5"/>
</filter>
</svg>
brightness() [яркость]
Applies a linear multiplier to input image, making it appear more or less bright. A value of 0%
will create an image that is completely black. A value of 100%
leaves the input unchanged. Other values are linear multipliers on the effect. Values of an amount over
are allowed, providing brighter results. If the ‘amount’ parameter is missing, a value of 1
is used.
<svg xmlns="http://www.w3.org/2000/svg">
<filter>
<feComponentTransfer>
<feFuncR type="linear" slope="[amount]"/>
<feFuncG type="linear" slope="[amount]"/>
<feFuncB type="linear" slope="[amount]"/>
</feComponentTransfer>
</filter>
</svg>
contrast() [контраст]
Adjusts the contrast of the input. A value of 0%
will create an image that is completely black. A value of
leaves the input unchanged. Values of amount over 100%
are allowed, providing results with less contrast. If the ‘amount’ parameter is missing, a value of 1
is used.
<svg xmlns="http://www.w3.org/2000/svg">
<filter>
<feComponentTransfer>
<feFuncR type="linear" slope="[amount]" intercept="-(0.5 * [amount]) + 0.5"/>
<feFuncG type="linear" slope="[amount]" intercept="-(0.5 * [amount]) + 0.5"/>
<feFuncB type="linear" slope="[amount]" intercept="-(0.5 * [amount]) + 0.5"/>
</feComponentTransfer>
</filter>
</svg>
drop-shadow() [тень]
Applies a drop shadow effect to the input image. A drop shadow is effectively a blurred, offset version of the input image’s alpha mask drawn in a particular color, composited below the image. The function accepts a parameter of type <shadow> (defined in CSS3 Backgrounds), with the exception that the ‘inset’ keyword is not allowed.
box-shadow
property; the difference is that with filters, some browsers provide hardware acceleration for better performance. The parameters of the <shadow>
parameter are as follows.<offset-x>
(required) <offset-y>- These are two
<length>
values to set the shadow offset.<offset-x>
specifies the horizontal distance. Negative values place the shadow to the left of the element.<offset-y>
specifies the vertical distance. Negative values place the shadow above the element. See<length>
for possible units.
If both values are0
, the shadow is placed behind the element (and may generate a blur effect if<blur-radius>
and/or<spread-radius>
is set). <blur-radius>
(optional)- This is a third
value. The larger this value, the bigger the blur, so the shadow becomes bigger and lighter. Negative values are not allowed. If not specified, it will be0
(the shadow’s edge is sharp). <spread-radius>
(optional)- This is a fourth
<length>
value. Positive values will cause the shadow to expand and grow bigger, and negative values will cause the shadow to shrink. If not specified, it will be0
(the shadow will be the same size as the element).
Note: Webkit, and maybe other browsers, do not support this 4th length; it will not render if added. <color>
(optional)- See
<color>
values for possible keywords and notations. If not specified, the color depends on the browser. In Gecko (Firefox), Presto (Opera) and Trident (Internet Explorer), the value of thecolor
(en-US) property is used. On the other hand, WebKit’s shadow is transparent and therefore useless if<color>
is omitted.
filter: drop-shadow(16px 16px 10px black)
<svg xmlns="http://www.w3.org/2000/svg">
<filter>
<feGaussianBlur in="SourceAlpha" stdDeviation="[radius]"/>
<feOffset dx="[offset-x]" dy="[offset-y]" result="offsetblur"/>
<feFlood flood-color="[color]"/>
<feComposite in2="offsetblur" operator="in"/>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
</svg>
grayscale() [оттенки серого]
Converts the input image to grayscale. The value of ‘amount’ defines the proportion of the conversion. A value of 100%
is completely grayscale. A value of 0%
leaves the input unchanged. Values between 0%
and 100%
are linear multipliers on the effect. If the ‘amount’ parameter is missing, a value of 0
is used.
hue-rotate() [изменение оттенка]
Applies a hue rotation on the input image. The value of ‘angle
’ defines the number of degrees around the color circle the input samples will be adjusted. A value of 0deg
leaves the input unchanged. If the ‘angle
’ parameter is missing, a value of 0deg
is used. Though there is no maximum value, the effect of values above 360deg
wraps around.
filter: hue-rotate(90deg)
<svg xmlns="http://www.w3.org/2000/svg">
<filter >
<feColorMatrix type="hueRotate" values="[angle]" />
<filter />
</svg>
invert() [инвертирование]
Inverts the samples in the input image. The value of ‘amount
’ defines the proportion of the conversion. A value of 100%
is completely inverted. A value of 0%
leaves the input unchanged. Values between 0%
and 100%
are linear multipliers on the effect. If the ‘amount
’ parameter is missing, a value of 0
is used.
opacity() [непрозрачность]
Applies transparency to the samples in the input image. The value of ‘amount
’ defines the proportion of the conversion. A value of 0%
is completely transparent. A value of 100%
leaves the input unchanged. Values between 0%
and 100%
are linear multipliers on the effect. This is equivalent to multiplying the input image samples by amount. If the ‘amount
’ parameter is missing, a value of 1
is used. This function is similar to the more established opacity
property; the difference is that with filters, some browsers provide hardware acceleration for better performance.
saturate() [насыщенность]
Saturates the input image. The value of ‘amount
’ defines the proportion of the conversion. A value of 0%
is completely un-saturated. A value of 100%
leaves the input unchanged. Other values are linear multipliers on the effect. Values of amount over 100%
are allowed, providing super-saturated results. If the ‘amount
’ parameter is missing, a value of 1
is used.
sepia() [сепия]
Converts the input image to sepia. The value of ‘amount
’ defines the proportion of the conversion. A value of 100% is completely sepia. A value of 0%
leaves the input unchanged. Values between 0%
and 100%
are linear multipliers on the effect. If the ‘amount
’ parameter is missing, a value of 0
is used.
You may combine any number of functions to manipulate the rendering. The following example enhances the contrast and brightness of the image.
filter: contrast(175%) brightness(103%)
BCD tables only load in the browser
8 CSS фильтров для изображений
Изображения на сайте — мощный инструмент создания атмосферы и привлечения пользователей, поэтому их так много в вебе.
У дизайнеров есть множество продвинутых инструментов для работы с изображениями: различные фильтры, маски и прочие эффекты. Но часто разработчику приходится обходиться без всего этого богатства. Например, этого требуют соображения производительности. Если у вас есть черно-белая картинка, которая при наведении курсора должна становиться цветной, неразумно использовать два разных файла.
К счастью, CSS предоставляет нам широкие возможности для манипуляций с изображениями. Многие графические эффекты можно реализовать в коде — например, фильтры, о которых мы сейчас и поговорим.
Фильтры в CSS
Для создания фильтров предназначено CSS-свойство filter
, которое может работать с несколькими функциями фильтрации. Каждая из этих функций создает собственный эффект. Допустимо использовать сразу несколько фильтров на одном изображении, при этом конечный результат будет зависеть от их последовательности.
grayscale(% | число)
Один из самых популярных фильтров, который помогает создать черно-белую фотографию из цветной.
Функция grayscale
принимает процентное значение «серости», где 0%
означает, что картинка не будет изменена, а 100%
соответствует полностью черно-белому изображению. Можно вместо процентов использовать доли единицы (0
= 0%
, 0.5
= 50%
, 1
= 100%
).
В этом примере первое фото — совсем без фильтра. К второму применено свойство filter: grayscale(0.5)
, и оно на 50% черно-белое. Третье полностью черно-белое из-за свойства filter: grayscale(100%)
.
sepia(% | число)
Еще один популярный фильтр — сепия. Он похож на grayscale, только раскрашивает картинку не в серых, а в красно-коричневых тонах. Это дает очень приятный эффект «состаривания».
Синтаксис и принцип работы функции sepia()
точно такой же, как у grayscale()
.
Пример демонстрирует, как работает этот фильтр. Первое изображение — оригинал без фильтров, второе имеет свойство filter: sepia(0. 5)
, а третье — filter: sepia(100%)
.
blur(px)
Эффект «заблюривания» делает изображение размытым. Для этого используется алгоритм размытия по Гауссу. Может использоваться для «цензурирования» или для маловажного фонового изображения с целью отвлечения внимания.
Функция blur() в CSS принимает всего один аргумент — количество пикселей. Чем оно больше, тем сильнее размытие. Значение по умолчанию равно 0
(полное отсутствие размытия).
Первое изображение в примере как всегда без фильтра, второе имеет небольшое размытие (2px
), а последнее размыто очень сильно (10px
), так что картинку почти невозможно различить.
brightness (% | число)
Фильтр brightness() позволяет управлять уровнем яркости изображения.
Его синтаксис нам уже знаком — это процентное значение или десятичная дробь. Изначально каждое изображение имеет 100%-ную яркость. Ее можно как уменьшать (до 0%), так и увеличивать.
У второй картинки в примере яркость снижена (filter: brightness(0.5)
), а у третьей — увеличена до 150%
. Чем меньше значение, тем темнее изображение, и наоборот.
contrast(% | число)
Фильтр contrast()
, как следует из названия, управляет уровнем контрастности.
Его синтаксис и принцип работы точно такой же, как у функции brightness()
.
В примере контраст второй картинки снижен до 50%
, а третьей — увеличен до 200%
.
saturate(% | число)
Насыщенность изображения — это степень интенсивности цветов, составляющих его. Чем больше значение насыщенности, тем «красочнее» картинка.
Управлять насыщенностью в CSS можно с помощью функции saturate()
, синтаксис которой аналогичен brightness()
и contrast()
.
Вторая картинка в примере кажется тусклой по сравнению с оригиналом (filter: saturate(0. 2)
), а третья — более красочной (200%
насыщенности).
hue-rotate(deg)
Параметр hue rotate соответствует величине угла на цветовом круге. Он выражается в градусах или радианах и принимает значения от 0deg
до 360deg
. Вы также можете указать меньшее (отрицательное) или большее значение, но оно в любом случае будет приведено к диапазону 0-360
(в градусах).
Каждый цвет на картинке соответствует определенному углу на цветовом круге. Например, красный — это 0 (или 360) градусов, желтый — 120 градусов, а зеленый — 180.
При использовании фильтра hue-rotate
, каждый из исходных цветов будет сдвинут на указанный угол. То есть при hue-rotate(90deg)
, красный станет оранжевым, желтый — синезеленым, а зеленый — синим (значения примерные).
Исходное изображение представлено в близких друг к другу желто-зеленых тонах, поэтому смещение оттенка равномерное по всей картинке. Поворот на 90deg в первом изображении смещает общий тон в зеленую часть спектра, на 180deg — в синюю, а на 270deg (-90deg — это то же самое, что 270) — в красную.
invert(% | число)
Еще один фильтр для работы с изображениями из CSS — инвертирование цветов (создание негатива).
Функция invert() принимает процентное значение от 0% до 100% (или от 0 до 1). 0% — исходное изображение, 100% — полный негатив.
Второе изображение в примере инвертировано на 75%, а третье является полным негативом.
Заключение
CSS-фильтры позволяют создавать чудесные визуальные эффекты с изображениями, не вредя при этом производительности сайта.
В статье было рассмотрено 8 функций фильтрации, но на самом деле их чуть больше. Еще есть opacity()
, управляющая прозрачностью, и drop-shadow()
, создающая тень. Они не разобраны детально, так как не взаимодействуют непосредственно с цветами изображения.
8 CSS-фильтров изображений с примерами кода
Как разработчики мы обращаем внимание на производительность нашего кода и хотим, чтобы наши сайты загружались быстро. Это часто означает, что мы должны уменьшить размер изображения. По той же причине многие предпочитают делать эффекты, созданные дизайнером, используя код. Особенно, когда нужно добавить эффект при наведении или клике, тогда мы не хотим загружать два изображения.
Ведь можно использовать код для простого добавления фильтров, например, с помощью CSS, и в этой статье мы покажем вам, как вы можете использовать фильтры для создания определенного эффекта.
Фильтры в CSS
Чтобы создать фильтры для изображений в CSS, мы используем свойство фильтра, которое определяет визуальные эффекты, используя несколько различных функций. Каждая функция может дать различный результат для основного изображения. Также возможно добавить несколько фильтров к одному изображению.
1. Оттенки серого (% | число)
Самый популярный фильтр, добавленный к изображениям — это оттенки серого. Это позволяет создавать черно-белые фотографии. Функция оттенков серого может принимать аргументы в процентах или числах. 0% означает, что ничего не изменится, а 100% означает, что изображение будет полностью преобразовано в оттенки серого. Если вы оставите значение пустым, оно по умолчанию займет 100%. Если вы хотите установить значение по номерам, он принимает значения от 0 до 1.
В приведенном выше примере вы можете увидеть исходную фотографию без каких-либо фильтров, вторая — это изображение со значением 0,5, а последняя — полностью полутоновая фотография.
2. Cепия (% | количество)
Фильтр сепия создает красновато-коричневую цветную фотографию. Метод sepia () работает аналогично градациям серого; он также принимает значения от 0% до 100% или от 0 до 1. Отрицательные значения не допускаются. Давайте посмотрим на примеры:
3. Размытие (px)
Эффект размытия применяет эффект размытия по Гауссу. Это применимо к цензуре или фоновому изображению, когда нет необходимости делать фотографию очень четкой. Метод blur () также принимает один аргумент, а аргумент должен иметь определенное количество пикселей. Самым большим значением будет большее размытие. По умолчанию значение равно 0.
Первый пример — базовое изображение без фильтра, второй — с размытием в 2 пикселя, а на последнем практически невозможно распознать, что на фото.
4. Яркость (% | число)
Еще один фильтр -brightness(), позволяющий регулировать уровень яркости картинки. Требуется один параметр в процентах от 0% до 100%. По умолчанию яркость каждого изображения составляет 100%. Давайте проверим, как этот фильтр ведет себя в примере кода:
Изображения в примере установлены на 0,5 и до 150%. Вы можете заметить чем меньшее число, тем более темные фотографии и наоборот.
5. Контраст (% | число)
Фильтр contrast() позволяет регулировать контрастность изображений. Если значение установлено в 0% или 0 числом, оно будет полностью темным, установлено 100% или 1, по умолчанию, что означает, что фотография не будет изменена вообще, а значения выше 100% или 1 обеспечат меньше контраста. Давайте посмотрим на пример:
В приведенном выше примере я уменьшил контраст первой картинки до 10% и увеличил контраст второй фотографии до 200%.
6. Насыщенность (% | число)
Насыщенность описывает интенсивность цветов, и чем больше значение насыщающего фильтра, тем ярче цвета. Значение по умолчанию для изображения составляет 100% или 1, 0 означает, что изображение является ненасыщенным, а все значения выше 100% и 1 увеличивают насыщенность. Давайте посмотрим на пример:
Как видно из примера, второе изображение ненасыщено и имеет значение 20% насыщенности, а третье изображение установлено на 200% насыщенности, и оно заметно более яркое.
7. Оттенок-поворот (градус)
Во-первых, давайте сначала объясним, что такое поворот оттенка. Итак, поворот оттенка — это функция, в которой мы указываем угол вокруг цветового круга. Вход может быть в градусах или оборотах. Он также принимает отрицательные значения. Максимальное значение составляет 360 градусов, поэтому даже если мы установим большее значение, оно будет работать, как в круге, например, если вы установите 450 градусов, результат будет такой же, как в 90 градусов, а если мы введем -10 градусов, результат будет если мы установим 350 градусов. Давайте посмотрим на пример кода:
В приведенном выше примере вы можете видеть четыре изображения, первое из которых является оригинальным, без какого-либо поворота оттенка. Второе изображение установлено на 90 градусов поворота оттенка, и видно, что зеленый здесь очень сильный. Третье изображение установлено на 180 градусов, и в этом примере изображение более голубое, а последнее, установленное на -90 градусов (что рассчитывается на 240 градусов), является более красноватым.
8. Инвертирование (% | число)
Другой фильтр, который может быть применен к нашим изображениям с использованием CSS, является инвертированным. Он используется для инвертирования образцов на изображении. Значение, которое принимает инвертирующая функция, является только положительным. Давайте посмотрим на пример:
В приведенном выше коде вы можете увидеть три изображения. Первое является оригинальным, следующее инвертируется до 75%, а последнее полностью инвертируется (значение равно 1).
Использование фильтров у фоновых изображений
С помощью свойства фильтра можно довольно легко наложить фильтр на целый элемент. Но что делать, если нужно применить фильтр только к фоновому изображению элемента? Сделать это весьма непросто. Существуют свойства CSS, которые предназначены специально для фоновых изображений, такие как background-blend-mode, но режимы наложения и фильтры — не одно и то же. Создается впечатление, что для этой цели существует свойство backdrop-filter, но это не так, оно влияет на то, как содержимое элемента взаимодействует с фоновым изображением.
Специального свойства фильтра для фонового изображения не существует. Так какие же есть способы создания подобного эффекта?
Использование псевдоэлемента вместо фона
Если положить содержимое элемента в другой элемент, можно задать этому внешнему элементу псевдоэлемент, который будет создавать видимость фона:
.module { position: relative; } .module::before { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-image: url(graphic-to-be-filtered.jpg); filter: grayscale(100%); } .module-inside { /* Благодаря этому элемент окажется поверх псевдоэлемента ::before */ position: relative; }
Обратите внимание, изображение стало черно-белым. Черно-белый фильтр применяется только к псевдоэлементу, а остальное содержимое остается неизменным.
В зависимости от того, какой именно фильтр нужен, может оказаться возможным создать подобный эффект с помощью режимов наложения.
Если нужно сделать фоновое изображение элемента черно-белым, как мы уже рассказали выше, не существует подходящего свойства, но мы подумали о режимах наложения и об их возможностях изменять такие параметры, как насыщенность и цвет. Если задать полностью черный цвет поверх изображения, то их можно было бы наложить друг на друга как множественные фоновые изображения и создать эффект, похожий на эффект черно-белого фильтра.
Обратите внимание, нельзя использовать просто полностью черный цвет как одно из изображений для свойства множественных фоновых изображений, так как это будет цвет фона, а не фоновое изображение, так что нам нужно создать черное фоновое изображение с помощью линейного градиента без переходов:
.module { background-image: linear-gradient(black, black), url(image-to-be-fake-filters.jpg); background-size: cover; background-blend-mode: saturation; }
Пример для подбора цветов
Существует интересный пример с тремя слоями:
- Верхний слой: виньетка из радиального градиента
- Средний слой: сплошной цвет
- Нижний слой: изображение
Можно поэкспериментировать с цветами верхних двух слоев и применить к каждому из ним разные режимы наложения. Таким же образом, как можно через запятую указывать множественные фоновые изображения, а также размеры и расположения фоновых изображений и другие подобные значения для применения к определенным фоновым изображениям, можно указывать, разделяя запятой, и разные режимы наложения фоновых изображений для применения разных эффектов наложения к каждому слою:
Автор урока Chris Coyier
Перевод — Дежурка
Смотрите также:
Фильтры CSS | Vavik96
Фильтры (такие, как blur CSS) – это мощный инструмент, который можно использовать для создания различных визуальных эффектов. Свойство CSS filter позволяет применять к элементу такие эффекты, как размытие или смещение цветов. Фильтры обычно используются для настройки выводимого изображения, фона или рамки.
Синтаксис:
.filter-me {
filter: <filter-function> [<filter-function>]* | none
}
В свойстве может быть использована одна или несколько функций:
- blur();
- brightness();
- contrast();
- drop-shadow();
- grayscale();
- hue-rotate();
- invert();
- opacity();
- saturate();
- sepia();
- url() – для применения SVG-фильтров;
- custom() – будет реализована в ближайшее время.
Для применения в свойстве одновременно нескольких функций их названия нужно разделять пробелом.
Пример применения CSS filter blur:
.blur-me {
filter: blur(20px);
}
Пример применения нескольких фильтров:
.do-more-things {
filter: blur(20px) grayscale(20%);
}
Функции фильтров
Чтобы использовать свойство, необходимо указать значение для одной из функций, перечисленных выше. Если значение является недействительным, то функция возвращает “none“. За исключением отдельных случаев, функции, которые принимают значение в процентах (например, 34%), также принимают численные значения, заданные десятичной дробью.
Ниже мы применим множество различных функций фильтров к изображению (в том числе и для создания CSS blur effect):
grayscale()
filter: grayscale([ <число> | <процент> ])
Преобразует входящее изображение в оттенки серого. Значение 100% – полностью в оттенках серого, 0% – оставляет исходное изображение без изменений. Значения от 0% до 100% являются линейными коэффициентами применения эффекта. Если параметр не задан, используется значение по умолчанию – 100%. Отрицательные значения не допускаются.
Посмотреть демо
sepia()
filter: sepia([ <число> | <процент> ])
Преобразует входящее изображение в сепию. Значение 100% – полное применение сепии. Значение 0 оставляет исходное изображение без изменений. Значения от 0% до 100% являются линейными коэффициентами применения эффекта. Если параметр не задан, используется значение по умолчанию – 100%. Отрицательные значения не допускаются.
Посмотреть демо
saturate()
filter: saturate([ <число> | <процент> ])
Увеличивает насыщенность цветов входящего изображения. Значение 0% полностью обесцвечивает изображение. Значение 100% оставляет исходное изображение без изменений. Другие значения являются линейными коэффициентами применения эффекта. Допускаются значения больше 100%, это приводит к перенасыщению цветов. Если параметр отсутствует, используется значение по умолчанию -100%. Отрицательные значения не допускаются (как и в blur image CSS).
Посмотреть демо
hue-rotate()
filter: hue-rotate(<угол>)
Применяет к входящему изображению смещение цветовых тонов. Значение “angle” определяет количество градусов по круговой диаграмме цветов, на которое будут скорректированы цвета исходного изображения. Значение 0 градусов оставляет исходное изображение без изменений. Если параметр “angle” не задан, используется значение 0. Максимальное значение 360 градусов.
Посмотреть демо
invert()
filter: invert([ <число> | <процент> ])
Инвертирует цвета исходного изображения. Значение 100% полностью инвертирует цвета, 0% -оставляет исходное изображение без изменений. Значения от 0% до 100% являются линейными коэффициентами применения эффекта. Если параметр не задан, используется значение – 100%. Отрицательные значения не допускаются.
Посмотреть демо
opacity()
filter: opacity([ <число> | <процент> ])
Задает непрозрачность входящего изображения. Значение 0% задает полную прозрачность изображения,100% – оставляет исходное изображение без изменений. Значения от 0% до 100% являются линейными коэффициентами применения эффекта. Это эквивалентно умножению образцов цветов исходного изображения на заданное значение. Если параметр отсутствует, используется значение 100%.
Эта функция аналогична более традиционному свойству opacity. Разница заключается в том, что некоторые браузеры применяют для фильтров аппаратное ускорение. Отрицательные значения не допускаются (как и в blur image CSS).
Посмотреть демо
brightness()
filter: brightness([ <число> | <процент> ])
Изменяет яркость изображения. Значение 0% создает полностью черное изображение. Значение 100% оставляет исходное изображение изменений. Допускаются значения больше 100%, которые дают на выходе еще более яркое изображение. Если параметр не задан, используется значение 100%.
Посмотреть демо
contrast()
filter: contrast([ <число> | <процент> ])
Задает контрастность входящего изображения. Значение 0% создает полностью черное изображение, 100% – оставляет исходное изображение без изменений. Допускаются значения больше 100%, которые на выходе дают меньше контрастности. Если параметр не задан, используется значение 100%.
Посмотреть демо
blur()
filter: blur(<длина>)
Фильтр создает эффект blur CSS, применяя к входящему изображению размытие по Гауссу. Значение ”radius” определяет значение стандартного отклонения функции Гаусса, или то, сколько пикселей на экране смешиваются друг с другом. Большее значение на выходе дает большее размытие. Если параметр не установлен, то используется значение 0. Параметр задается как длина CSS, но не принимает процентных значений.
Посмотреть демо
drop-shadow()
filter: drop-shadow(<длина>{2,3} <цвет>?)
Применяет к входящему изображению эффект тени. Фильтр создает размытую, смещенную версию входящего изображения с альфа-маской определенного цвета, которая выводится под изображением. Функция принимает параметр type (определен в CSS3 Backgrounds). Ключевого слова “inset” не допускается.
Эта функция аналогична более традиционному свойству box-shadow. Разница заключается в том, что некоторые браузеры применяют для фильтров аппаратное ускорение.
Посмотреть демо
Кроме этого drop-shadow полностью повторяет очертания объекта, отбрасывающего тень. В отличие от свойства box-shadow, которое повторяет только контур панели.
Посмотреть демо
Так же, как text-shadow, функция не поддерживает параметр “spread” для создания тени больше объекта.
url()
filter: url(<url-адрес>)
Функция url() принимает место размещения файла XML, который определяет SVG-фильтр (в том числе и для CSS filter blur), и может включать в себя анкор для конкретного элемента фильтра.
Посмотреть демо
Анимация фильтров
Поскольку фильтры могут быть анимированы, это дает нам возможность разнообразить дизайн ресурса.
Посмотреть демо
Примечания
Вы можете объединять любое количество функций для управления отображением, но их порядок при этом имеет значение. Например, использовав grayscale() после sepia(), и дополнительно обработав blur CSS. На выходе вы получите полностью серое изображение.
Передаваемое значение (кроме “none”) определяет, как контекст укладывается в стек, таким же образом, как работает непрозрачность CSS. Свойство filter не оказывает никакого влияния на геометрию поля целевого элемента, хотя фильтры могут задавать вывод различных эффектов за пределами границ поля элемента. Фильтры применяются ко всем частям целевого элемента. В том числе: к контенту, фону, рамкам, оформлению текста, контуру и видимому механизму прокрутки.
В спецификации также определена функция filter (image-URL, filter-functions), оборачивающая функцию для изображений. Она позволяет применять фильтры к изображениям, которые используются в CSS. Например, можно размыть фоновое изображение, не применяя CSS blur background (размытие) к самому тексту. Эта функция еще не поддерживается в браузерах. Но чтобы создать такой эффект, можно применить фон и фильтр к псевдо-элементу.
Фильтры для IE
Свойство filter также используется следующим образом:
.half-opacity {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
filter: alpha(opacity=50);
}
В основном используется для непрозрачности, когда необходимо добавить поддержку в IE 8 и ниже.
Перевод статьи «filter» был подготовлен командой проекта Сайтостроение от А до Я.
Бесплатный генератор кода CSS для фильтров в стиле Instagram
Как здорово было бы добавить фильтры изображений на свой сайт? Несколько лет назад для этого потребовался бы JavaScript, но в настоящее время вы можете создавать собственные фильтры изображений со старым добрым HTML и CSS.
И с веб-приложение cssFilters Вам даже не нужно писать какой-либо код CSS!
Этот бесплатный инструмент поможет вам создавать пользовательские фильтры изображений, используя фильтры CSS3. Ты можешь найти много гидов которые подробно описывают свойство фильтра CSS. Но с cssFilters вам не нужно беспокоиться о том, как все это работает, вы просто настраиваете свои настройки и копируете код.
Читайте также: 10 лучших генераторов кода CSS для веб-разработчиков
В верхней части экрана вы увидите длинную полосу, полную пользовательских фильтров Instagram. Эти фильтры включают в себя все популярные варианты, такие как Hudson, Toaster, Inkwell, Lofi и многие другие.
Вы просто выбираете тот фильтр, который вам нужен, а затем нажимаете вкладку «Код CSS» в правом верхнем углу. Оттуда вы получите код HTML и CSS. Просто скопируйте / вставьте на свой сайт, и все готово.
Но вы также можете настроить эти фильтры с помощью ползунков настроек. На вкладке «Генератор» вы можете изменить настройки, такие как насыщенность и контрастность, а также размытие, оттенки серого, сепия и даже стиль наложения, например, линейный или радиальный градиент.
Каждый раз, когда вы перемещаете ползунок, он автоматически обновляет код, поэтому вам не нужно ничего сохранять.
И вы даже можете поменять изображение по умолчанию, загрузив его со своего компьютера или выбрав один из Unsplash.
Это веб-приложение было сделано Индрашиш Гош и он запускает многие классы по умолчанию, найденные в Библиотека CSSgram,
Но пользовательские настройки выходят далеко за рамки базовых настроек, а бесплатная генерация кода делает этот инструмент удобным как для кодеров, так и для не кодеров. У нас уже есть много генераторов CSS3 для таких свойств, как фоновые градиенты и тени текста. И теперь у нас есть cssFilters как первый генератор фильтров изображений CSS3.
<script async src="https://triu.ru/wp-content/litespeed/localres/platform.twitter.com/widgets.js" charset="utf-8"></script>
Фильтрация изображений с помощью технологий CSS3!
При создании галереи изображений, возникает соответственно потребность в их сортировке, для удобства пользователя. И сегодня мы будет создавать эффект – фильтрация изображений на CSS3. Используя псевдо-класс :checked
, мы можем создать переключение состояния элементов с помощью чекбокса или радио кнопки.
В этом уроке мы будем изучать эти css3 эффекты, создав экспериментальный фильтр изображений для портфолио, или просто галереи, который будет сортировать заданные нами элементы.
Идея принадлежит автору Роману Комарову и его эксперимент “Фильтр элементов без JS”, в котором он использует чекбоксы и радио кнопки для фильтрации цветных фигур. Итак, давайте приступим!
HTML структура
Наша цель заключается в том, чтобы создать четыре кнопки, которые при нажатии будут активировать сортировку по заданным параметрам. Таким образом, для них мы будем использовать радио-кнопки, все они имеют одинаковые имена, так как принадлежат к одной группе (здесь только один можем иметь состояние checked
).
По умолчанию, мы хотим, чтобы “все” радио-кнопки были в состоянии активности и были показаны все картинки. Мы добавим несколько этикеток label
для переключателей. Нажатие на label
активирует радио кнопку (на которую нажал пользователь) с соответствующим ID:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <section>
<input name=»radio-set-1″ type=»radio» checked=»checked» /> <label for=»select-type-all»>All</label>
<input name=»radio-set-1″ type=»radio» /> <label for=»select-type-1″>Web Design</label>
<input name=»radio-set-1″ type=»radio» /> <label for=»select-type-2″>Illustration</label>
<input name=»radio-set-1″ type=»radio» /> <label for=»select-type-3″>Icon Design</label>
<div></div>
<ul> <li> <a href=»#»> <span>Chameleon</span> <img src=»/web-developer/css/images/1.jpg» /> </a> </li> <li> <!— … —> </li> <li> <!— … —> </li> <!— … —> </ul>
</section> |
Маркированный список ul
будет содержать все элементы портфолио изображений – ссылку, саму картинку и тег span
. Каждый элемент списка будет иметь специальный класс, который позволит определить куда фильтровать его, когда мы щелкаем на одну из кнопок.
CSS стили
Мы будем создавать три эффекта сортировки контента, но сначала давайте рассмотрим общие стили. Весь блок с контентом будет иметь определенную ширину:
.ff-container{ width: 564px; margin: 10px auto 30px auto; } |
Этикетки label
закроют радио-кнопки и мы дадим им солидный градиент и некоторые тонкости в тени:
.ff-container label{ font-family: ‘BebasNeueRegular’, ‘Arial Narrow’, Arial, sans-serif; width: 25%; height: 30px; cursor: pointer; color: #777; text-shadow: 1px 1px 1px rgba(255,255,255,0.8); line-height: 33px; font-size: 19px; background: linear-gradient(top, #ffffff 1%,#eaeaea 100%); float:left; box-shadow: 0px 0px 0px 1px #aaa, 1px 0px 0px 0px rgba(255,255,255,0.9) inset, 0px 1px 2px rgba(0,0,0,0.2); } |
На углах мы хотим сделать закругленные края, поэтому первая кнопка и последняя получат определенный радиус скругления:
.ff-container label.ff-label-type-all{ border-radius: 3px 0px 0px 3px; } .ff-container label.ff-label-type-3{ border-radius: 0px 3px 3px 0px; } |
Для каждой активной кнопки, мы хотим также задать свои стили в нажатом состоянии:
.ff-container input.ff-selector-type-all:checked ~ label.ff-label-type-all, .ff-container input.ff-selector-type-1:checked ~ label.ff-label-type-1, .ff-container input.ff-selector-type-2:checked ~ label.ff-label-type-2, .ff-container input.ff-selector-type-3:checked ~ label.ff-label-type-3{ background: linear-gradient(top, #646d93 0%,#7c87ad 100%); color: #424d71; text-shadow: 0px 1px 1px rgba(255,255,255,0.3); box-shadow: 0px 0px 0px 1px #40496e, 0 1px 2px rgba(0,0,0,0.1) inset; } |
Так как у нас все наши элементы находятся на одном уровне, мы используем общий брат комбинатор, который представлен как “тильда” (~), чтобы достичь соответствующего label
. С этим «трюком» мы также добавим другие возможности.
Поля input
могут быть скрыты, так как у нас есть метки label
, которые сделают свою работу:
.ff-container input{ display: none; } |
Теперь перейдем к элементам списка.
.ff-items{ position: relative; margin: 0px auto; padding-top: 20px; } |
Ссылка и тег span
имеют следующие стили:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | .ff-items a{ display: block; position: relative; padding: 10px; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); margin: 4px; width: 160px; height: 120px; } .ff-items a span{ display: block; background: rgba(113,123,161, 0.9); font-style: italic; color: #fff; font-weight: bold; padding: 20px; position: absolute; bottom: 10px; left: 10px; width: 120px; height: 0px; overflow: hidden; opacity: 0; text-align: center; text-shadow: 1px 1px 1px #303857; transition: all 0.3s ease-in-out; } .ff-items a:hover span{ height: 80px; opacity: 1; } .ff-items li img{ display: block; } |
При наведении на ссылку снизу появится текст (тег span
). Это оживит изображения и придаст красивый эффект и юзабилити.
Все, это были основные, общие стиле. Как я уже упоминал выше, мы создадим 3 эффекта сортировки. Давайте посмотрим особенности каждого из них!
Пример 1
В первом примере все очень просто, выбранным элементам (т.е. те которые попали в сортировку), мы даем высокую прозрачность. Переход прозрачности делаем плавным:
.ff-items li{ margin: 0px; float: left; opacity: 0; width: 188px; height: 148px; transition: opacity 0.6s ease-in-out; } |
Затем мы будем использовать общий брат комбинатор для элементов, которые выбраны и установим для них прозрачность 0:
.ff-container input.ff-selector-type-all:checked ~ .ff-items li, .ff-container input.ff-selector-type-1:checked ~ .ff-items .ff-item-type-1, .ff-container input.ff-selector-type-2:checked ~ .ff-items .ff-item-type-2, .ff-container input.ff-selector-type-3:checked ~ .ff-items .ff-item-type-3{ opacity: 1; } |
Поскольку у нас есть кнопка "ВСЕ"
, по умолчанию все элементы будут иметь нулевую прозрачность.
Теперь, все остальные пункты должны получить очень низкую прозрачность, раз мы выбираем другой тип, то есть сортируем по выбранным параметрам. Мы будем использовать селектор :not()
для определения, что список элементов, который не имеют выбранного класса, должны иметь прозрачность 0.1:
.ff-container input.ff-selector-type-1:checked ~ .ff-items li:not(.ff-item-type-1), .ff-container input.ff-selector-type-2:checked ~ .ff-items li:not(.ff-item-type-2), .ff-container input.ff-selector-type-3:checked ~ .ff-items li:not(.ff-item-type-3){ opacity: 0.1; } |
Также мы не будем показывать описание при наведении для тех элементов, которые не выбраны и имеют прозрачность 0.1:
.ff-container input.ff-selector-type-1:checked ~ .ff-items li:not(.ff-item-type-1) span, .ff-container input.ff-selector-type-2:checked ~ .ff-items li:not(.ff-item-type-2) span, .ff-container input.ff-selector-type-3:checked ~ .ff-items li:not(.ff-item-type-3) span{ display: none; } |
И это был первый пример, первый эффект. Давайте посмотрим далее…
Пример 2
В этом примере мы хотим, чтобы выбранные элементы были немного увеличены, в то время как другие уменьшены и стали более прозрачными. Итак, давайте добавим переход к списку элементов:
.ff-items li{ margin: 0px; float: left; width: 188px; height: 148px; transition: all 0.6s ease-in-out; } |
По умолчанию, все элементы списка имеют обычный масштаб, расположены в обычном порядке и с полной непрозрачностью. При активации фильтрации изображений, мы хотим, чтобы они были немного расширенны и сохранили непрозрачность:
.ff-container input.ff-selector-type-1:checked ~ .ff-items .ff-item-type-1, .ff-container input.ff-selector-type-2:checked ~ .ff-items .ff-item-type-2, .ff-container input.ff-selector-type-3:checked ~ .ff-items .ff-item-type-3{ opacity: 1; transform: scale(1.1); } |
Здесь следует отметить, что мы не включили тип "ВСЕ"
, как раньше.
Не выбранные элементы мы будем уменьшать и применять высокий уровень прозрачности:
.ff-container input.ff-selector-type-1:checked ~ .ff-items li:not(.ff-item-type-1), .ff-container input.ff-selector-type-2:checked ~ .ff-items li:not(.ff-item-type-2), .ff-container input.ff-selector-type-3:checked ~ .ff-items li:not(.ff-item-type-3){ opacity: 0.1; transform: scale(0.5); } |
И снова скрываем описание при наведении для не выбранных картинок:
.ff-container input.ff-selector-type-1:checked ~ .ff-items li:not(.ff-item-type-1) span, .ff-container input.ff-selector-type-2:checked ~ .ff-items li:not(.ff-item-type-2) span, .ff-container input.ff-selector-type-3:checked ~ .ff-items li:not(.ff-item-type-3) span{ display:none; } |
Это был второй эффект, но у нас есть ещё один! Смотрим…
Пример 3
Обратите внимание, что этот пример создан как эксперимент и будет корректно работать только в браузерах, поддерживающих CSS анимации.
Последний пример – это всего лишь эксперимент. Мы хотим сделать что-то немного сложнее: при выборе типа сортировки, мы хотим масштабировать все элементы “внутрь”, а затем снова масштабировать только те элементы, которые были выбраны.
Другие изображения исчезают, и так как мы не можем анимировать свойство отображения (даже с некоторой комбинацией непрозрачности), мы используем маленькую хитрость: после масштабирования пунктов “внутрь”, мы также делаем анимацию ширины тех, которые должны появиться.
Так что, давайте дадим для элементов списка изначально ширину 0 и масштабировать scale
до 0 (внимание: возможна некорректная работа в старых браузерах):
.ff-items li{ margin: 0px; float: left; height: 148px; width: 0px; transform: scale(0,0); } |
Когда выбрано "ВСЕ"
, мы имеем масштаб 1, а ширину 188px:
.ff-container input.ff-selector-type-all:checked ~ .ff-items li{ width: 188px; transform: scale(1,1); transition: transform 0.3s linear; } |
Помните, мы в этом состоянии на начальном этапе, так как у нас по умолчанию установлен флажок "ВСЕ"
, но мы также создадим переход, если в настоящее время просматривается другой тип сортировки, и возвращается к "ВСЕ"
.
В это время, элементы, которые не выбраны (те, что мы получаем с помощью селектора :not()
) будут иметь scaleDown
анимацию, которая будет масштабировать их и даст ширину 0.
Через 0,4 секунд, мы показываем выбранные элементы с эффектом анимации, за счет масштаба:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | .ff-container input.ff-selector-type-1:checked ~ .ff-items .ff-item-type-1, .ff-container input.ff-selector-type-2:checked ~ .ff-items .ff-item-type-2, .ff-container input.ff-selector-type-3:checked ~ .ff-items .ff-item-type-3 { transition: transform 0.3s linear, width 0s linear 0.3s; animation: scaleUp 0.3s linear 0.4s forwards; } .ff-container input.ff-selector-type-1:checked ~ .ff-items li:not(.ff-item-type-1), .ff-container input.ff-selector-type-2:checked ~ .ff-items li:not(.ff-item-type-2), .ff-container input.ff-selector-type-3:checked ~ .ff-items li:not(.ff-item-type-3) { animation: scaleDown 0.3s linear forwards; } @keyframes scaleUp { 50% { width: 188px; transform: scale(0,0); } 100% { width: 188px; transform: scale(1,1); } } @keyframes scaleDown { 0% { width: 188px; transform: scale(1,1);} 99% { width: 188px; transform: scale(0,0);} 100% { width: 0px; transform: scale(0,0); } } |
Заключение
Итак, вот что мы имеем на выходе:
И вот оно! Я надеюсь, вам понравился этот урок и нашли для себя вдохновение!
Данный урок подготовлен для вас командой сайта vladmaxi.net
Источник урока: http://tympanus.net
Перевел: Владислав Бондаренко Фильтр
— CSS: каскадные таблицы стилей
blur ()
Функция blur ()
применяет размытие по Гауссу к входному изображению. Значение , радиус
определяет значение стандартного отклонения функции Гаусса или количество пикселей на экране, сливающихся друг с другом, поэтому большее значение приведет к большему размытию. Значение лакуны для интерполяции составляет 0
. Параметр указывается как длина CSS, но не принимает процентные значения.
<таблица>
Исходное изображение
Живой пример
эквивалент SVG
Статический пример
html {
высота: 100%;
}
тело {
шрифт: 14px / 1.286 «Lucida Grande», «Lucida Sans Unicode», «DejaVu Sans», Lucida, Arial, Helvetica, без засечек;
цвет: rgb (51, 51, 51);
высота: 100%;
переполнение: скрыто;
}
# img2 {
ширина: 100%;
высота: авто;
-webkit-filter: размытие (5 пикселей);
-ms-filter: размытие (5 пикселей);
фильтр: размытие (5 пикселей); }
table.standard-table {
граница: 1px сплошной rgb (187, 187, 187);
граница-коллапс: коллапс;
граница-интервал: 0;
маржа: 0 0 1.286em;
высота: 100%;
ширина: 85%;
}
table.standard-table th {
граница: 1px сплошной rgb (187, 187, 187);
отступ: 0px 5px;
фон: нет повтора прокрутки 0% 0% rgb (238, 238, 238);
выравнивание текста: слева;
font-weight: жирный;
}
table.standard-table td {
отступ: 5 пикселей;
граница: 1px сплошной RGB (204, 204, 204);
выравнивание текста: слева;
вертикальное выравнивание: сверху;
ширина: 25%;
высота: авто;
}
# img3 {
высота: 100%;
}
яркость ()
Функция яркости ()
применяет линейный множитель к входному изображению, делая его более или менее ярким.Значение 0%
создаст полностью черное изображение. Значение 100%
оставляет вход без изменений. Остальные значения являются линейными множителями эффекта. Допускаются значения суммы свыше 100%
, что обеспечивает более яркие результаты. Значение лакуны для интерполяции составляет 1
.
<таблица>
Исходное изображение
Живой пример
эквивалент SVG
Статический пример
html {
высота: 100%;
}
тело {
шрифт: 14px / 1.286 «Lucida Grande», «Lucida Sans Unicode», «DejaVu Sans», Lucida, Arial, Helvetica, без засечек;
цвет: rgb (51, 51, 51);
высота: 100%;
переполнение: скрыто;
}
# img2 {
ширина: 100%;
высота: авто;
-moz-фильтр: яркость (2);
-webkit-filter: яркость (2);
-ms-filter: яркость (2);
фильтр: яркость (2); }
table.standard-table {
граница: 1px сплошной rgb (187, 187, 187);
граница-коллапс: коллапс;
интервал границы: 0 пикселей;
маржа: 0px 0px 1.286em;
высота: 100%;
ширина: 85%;
}
table.standard-table th {
граница: 1px сплошной rgb (187, 187, 187);
отступ: 0px 5px;
фон: нет повтора прокрутки 0% 0% rgb (238, 238, 238);
выравнивание текста: слева;
font-weight: жирный;
}
table.standard-table td {
отступ: 5 пикселей;
граница: 1px сплошной RGB (204, 204, 204);
выравнивание текста: слева;
вертикальное выравнивание: сверху;
ширина: 25%;
высота: авто;
}
# img3 {
высота: 100%;
}
контраст ()
Функция контраст ()
регулирует контраст входного изображения.При значении 0%
изображение будет полностью серым. Значение 100%
оставляет вход без изменений. Допускаются значения суммы более 100%
, что обеспечивает более контрастные результаты. Значение лакуны для интерполяции составляет 1
.
<таблица>
Исходное изображение
Живой пример
эквивалент SVG
Статический пример
html {
высота: 100%;
}
тело {
шрифт: 14px / 1.286 «Lucida Grande», «Lucida Sans Unicode», «DejaVu Sans», Lucida, Arial, Helvetica, без засечек;
цвет: rgb (51, 51, 51);
высота: 100%;
переполнение: скрыто;
}
# img2 {
ширина: 100%;
высота: авто;
-moz-фильтр: контраст (200%);
-webkit-filter: контраст (200%);
-ms-filter: контраст (200%);
фильтр: контраст (200%); }
Таблица.standard-table {
граница: 1px сплошной rgb (187, 187, 187);
граница-коллапс: коллапс;
интервал границы: 0 пикселей;
маржа: 0px 0px 1.286em;
ширина: 85%;
высота: 100%;
}
table.standard-table th {
граница: 1px сплошной rgb (187, 187, 187);
отступ: 0px 5px;
фон: нет повтора прокрутки 0% 0% rgb (238, 238, 238);
выравнивание текста: слева;
font-weight: жирный;
}
table.standard-table td {
отступ: 5 пикселей;
граница: 1px сплошной RGB (204, 204, 204);
выравнивание текста: слева;
вертикальное выравнивание: сверху;
ширина: 25%;
высота: авто;
}
# img3 {
высота: 100%;
}
падающая тень ()
Функция drop-shadow ()
применяет эффект тени к входному изображению.Тень — это, по сути, размытая, смещенная версия альфа-маски входного изображения, нарисованная определенным цветом и скомпонованная под изображением. Функция принимает параметр типа
(определенный в CSS3 Backgrounds), за исключением того, что ключевое слово inset
и параметр spread
недопустимы. Эта функция похожа на более устоявшееся свойство box-shadow
; разница в том, что с фильтрами некоторые браузеры обеспечивают аппаратное ускорение для повышения производительности.Параметры параметра <тень>
следующие:
-
- Это два значения
<длина>
для получения информации о возможных единицах.
Если оба значения равны0
, тень помещается за элементом (и может создавать эффект размытия, если установлено -
<радиус размытия>
(опционально) - Это третье значение
<длина>
. Чем больше это значение, тем больше размытие, поэтому тень становится больше и светлее. Отрицательные значения не допускаются.Если не указано, это будет0
(край тени резкий). -
<цвет>
(опционально) - Возможные ключевые слова и обозначения см. В значениях
фильтр: падающая тень (16px 16px 10px черный)
<таблица>
Исходное изображение
Живой пример
эквивалент SVG
Статический пример
html {
высота: 100%;
}
тело {
шрифт: 14px / 1.286 «Lucida Grande», «Lucida Sans Unicode», «DejaVu Sans», Lucida, Arial, Helvetica, без засечек;
цвет: rgb (51, 51, 51);
высота: 100%;
переполнение: скрыто;
}
# img2 {
ширина: 100%;
высота: авто;
-moz-filter: drop-shadow (16px 16px 10px черный);
-webkit-filter: drop-shadow (16 пикселей, 16 пикселей, 10 пикселей, черный);
-ms-filter: drop-shadow (16px 16px 10px черный);
фильтр: drop-shadow (16px 16px 10px черный);
}
# img12 {
ширина: 100%;
высота: авто;
-moz-filter: drop-shadow (8px 9px 5px rgba (0,0,0 ,.8));
-webkit-filter: drop-shadow (8px 9px 5px rgba (0,0,0, .8)); -webkit-filter: падающая тень (8px 9px 5px rgba (0,0,0, .8));
-ms-filter: drop-shadow (8px 9px 5px rgba (0,0,0, .8)); -ms-фильтр: падающая тень (8px 9px 5px rgba (0,0,0, .8));
фильтр: drop-shadow (8px 9px 5px rgba (0,0,0, .8));
}
table.standard-table {
граница: 1px сплошной rgb (187, 187, 187);
граница-коллапс: коллапс;
интервал границы: 0 пикселей;
маржа: 0px 0px 1.286em;
ширина: 85%;
высота: 100%;
}
# irregular-shape {
ширина: 64%;
}
table.standard-table th {
граница: 1px сплошной rgb (187, 187, 187);
отступ: 0px 5px;
фон: нет повтора прокрутки 0% 0% rgb (238, 238, 238);
выравнивание текста: слева;
font-weight: жирный;
}
Таблица.standard-table td {
отступ: 5 пикселей;
граница: 1px сплошной RGB (204, 204, 204);
выравнивание текста: слева;
вертикальное выравнивание: сверху;
ширина: 25%;
высота: авто;
}
# img3, # img13 {
ширина: 100%;
высота: авто;
}
оттенки серого ()
Функция оттенков серого ()
преобразует входное изображение в оттенки серого. Значение , сумма
определяет долю конверсии. Значение 100%
— это полностью оттенки серого. Значение 0%
оставляет вход без изменений.Значения от 0%
до 100%
являются линейными множителями эффекта. Значение лакуны для интерполяции составляет 0
.
<таблица>
Исходное изображение
Живой пример
эквивалент SVG
Статический пример
html {
высота: 100%;
}
тело {
шрифт: 14px / 1.286 «Lucida Grande», «Lucida Sans Unicode», «DejaVu Sans», Lucida, Arial, Helvetica, без засечек;
цвет: rgb (51, 51, 51);
высота: 100%;
переполнение: скрыто;
}
# img2 {
ширина: 100%;
высота: авто;
-moz-фильтр: оттенки серого (100%);
-webkit-filter: оттенки серого (100%);
-ms-filter: оттенки серого (100%);
фильтр: оттенки серого (100%); }
Таблица.standard-table {
граница: 1px сплошной rgb (187, 187, 187);
граница-коллапс: коллапс;
интервал границы: 0 пикселей;
маржа: 0px 0px 1.286em;
ширина: 85%;
высота: 100%;
}
table.standard-table th {
граница: 1px сплошной rgb (187, 187, 187);
отступ: 0px 5px;
фон: нет повтора прокрутки 0% 0% rgb (238, 238, 238);
выравнивание текста: слева;
font-weight: жирный;
}
table.standard-table td {
отступ: 5 пикселей;
граница: 1px сплошной RGB (204, 204, 204);
выравнивание текста: слева;
вертикальное выравнивание: сверху;
ширина: 25%;
высота: авто;
}
# img3 {
высота: 100%;
}
поворот оттенка ()
Функция hue-rotate ()
применяет поворот оттенка к входному изображению.Значение angle
определяет количество градусов вокруг цветового круга, на которое будут корректироваться входные образцы. Значение 0deg
оставляет вход без изменений. Значение лакуны для интерполяции составляет 0
. Хотя максимального значения нет; эффект значений выше 360deg
повторяется.
фильтр: поворот оттенка (90 градусов)
<таблица>
Исходное изображение
Живой пример
эквивалент SVG
Статический пример
html {
высота: 100%;
}
тело {
шрифт: 14px / 1.286 «Lucida Grande», «Lucida Sans Unicode», «DejaVu Sans», Lucida, Arial, Helvetica, без засечек;
цвет: rgb (51, 51, 51);
высота: 100%;
переполнение: скрыто;
}
# img2 {
ширина: 100%;
высота: авто;
-moz-filter: поворот оттенка (90 градусов);
-webkit-filter: поворот оттенка (90 градусов);
-ms-filter: hue-rotate (90 градусов);
фильтр: изменение оттенка (90 градусов); }
table.standard-table {
граница: 1px сплошной rgb (187, 187, 187);
граница-коллапс: коллапс;
интервал границы: 0 пикселей;
маржа: 0px 0px 1.286em;
ширина: 85%;
высота: 100%;
}
Таблица.standard-table th {
граница: 1px сплошной rgb (187, 187, 187);
отступ: 0px 5px;
фон: нет повтора прокрутки 0% 0% rgb (238, 238, 238);
выравнивание текста: слева;
font-weight: жирный;
}
table.standard-table td {
отступ: 5 пикселей;
граница: 1px сплошной RGB (204, 204, 204);
выравнивание текста: слева;
вертикальное выравнивание: сверху;
ширина: 25%;
высота: авто;
}
# img3 {
высота: 100%;
}
инвертировать ()
Функция invert ()
инвертирует выборки во входном изображении.Значение , сумма
определяет долю конверсии. Значение 100%
полностью инвертировано. Значение 0%
оставляет вход без изменений. Значения от 0%
до 100%
являются линейными множителями эффекта. Значение лакуны для интерполяции составляет 0
.
<таблица>
Исходное изображение
Живой пример
эквивалент SVG
Статический пример
html {
высота: 100%;
}
тело {
шрифт: 14px / 1.286 «Lucida Grande», «Lucida Sans Unicode», «DejaVu Sans», Lucida, Arial, Helvetica, без засечек;
цвет: rgb (51, 51, 51);
высота: 100%;
переполнение: скрыто;
}
# img2 {
ширина: 100%;
высота: авто;
-moz-filter: инвертировать (100%);
-webkit-filter: инвертировать (100%);
-ms-filter: инвертировать (100%);
фильтр: инвертировать (100%); }
Таблица.standard-table {
граница: 1px сплошной rgb (187, 187, 187);
граница-коллапс: коллапс;
интервал границы: 0 пикселей;
маржа: 0px 0px 1.286em;
ширина: 85%;
высота: 100%;
}
table.standard-table th {
граница: 1px сплошной rgb (187, 187, 187);
отступ: 0px 5px;
фон: нет повтора прокрутки 0% 0% rgb (238, 238, 238);
выравнивание текста: слева;
font-weight: жирный;
}
table.standard-table td {
отступ: 5 пикселей;
граница: 1px сплошной RGB (204, 204, 204);
выравнивание текста: слева;
вертикальное выравнивание: сверху;
ширина: 25%;
высота: авто;
}
# img3 {
высота: 100%;
}
непрозрачность ()
Функция opacity ()
применяет прозрачность к образцам во входном изображении.Значение , сумма
определяет долю конверсии. Значение 0%
полностью прозрачно. Значение 100%
оставляет вход без изменений. Значения от 0%
до 100%
являются линейными множителями эффекта. Это эквивалентно умножению отсчетов входного изображения на количество. Значение лакуны для интерполяции составляет 1
. Эта функция похожа на более устоявшееся свойство opacity
; разница в том, что с фильтрами некоторые браузеры обеспечивают аппаратное ускорение для повышения производительности.
<таблица>
Исходное изображение
Живой пример
эквивалент SVG
Статический пример
html {
высота: 100%;
}
тело {
шрифт: 14px / 1.286 «Lucida Grande», «Lucida Sans Unicode», «DejaVu Sans», Lucida, Arial, Helvetica, без засечек;
цвет: rgb (51, 51, 51);
высота: 100%;
переполнение: скрыто;
}
# img2 {
ширина: 100%;
высота: авто;
-moz-filter: непрозрачность (50%);
-webkit-filter: непрозрачность (50%);
-ms-filter: непрозрачность (50%);
фильтр: непрозрачность (50%); }
table.standard-table {
граница: 1px сплошной rgb (187, 187, 187);
граница-коллапс: коллапс;
интервал границы: 0 пикселей;
маржа: 0px 0px 1.286em;
ширина: 85%;
высота: 100%;
}
table.standard-table th {
граница: 1px сплошной rgb (187, 187, 187);
отступ: 0px 5px;
фон: нет повтора прокрутки 0% 0% rgb (238, 238, 238);
выравнивание текста: слева;
font-weight: жирный;
}
Таблица.standard-table td {
отступ: 5 пикселей;
граница: 1px сплошной RGB (204, 204, 204);
выравнивание текста: слева;
вертикальное выравнивание: сверху;
ширина: 25%;
высота: авто;
}
# img3 {
высота: 100%;
}
насыщенный ()
Функция saturate ()
насыщает входное изображение. Значение , сумма
определяет долю конверсии. Значение 0%
полностью ненасыщено. Значение 100%
оставляет вход без изменений. Остальные значения являются линейными множителями эффекта.Допускаются значения суммы свыше 100%
, обеспечивающие сверхнасыщенные результаты. Значение лакуны для интерполяции составляет 1
.
<таблица>
Исходное изображение
Живой пример
эквивалент SVG
Статический пример
html {
высота: 100%;
}
тело {
шрифт: 14px / 1.286 «Lucida Grande», «Lucida Sans Unicode», «DejaVu Sans», Lucida, Arial, Helvetica, без засечек;
цвет: rgb (51, 51, 51);
высота: 100%;
переполнение: скрыто;
}
# img2 {
ширина: 100%;
высота: авто;
-moz-фильтр: насыщенный (200%);
-webkit-filter: насыщать (200%);
-ms-filter: насыщенный (200%);
фильтр: насыщенный (200%); }
table.standard-table {
граница: 1px сплошной rgb (187, 187, 187);
граница-коллапс: коллапс;
интервал границы: 0 пикселей;
маржа: 0px 0px 1.286em;
ширина: 85%;
высота: 100%;
}
table.standard-table th {
граница: 1px сплошной rgb (187, 187, 187);
отступ: 0px 5px;
фон: нет повтора прокрутки 0% 0% rgb (238, 238, 238);
выравнивание текста: слева;
font-weight: жирный;
}
Таблица.standard-table td {
отступ: 5 пикселей;
граница: 1px сплошной RGB (204, 204, 204);
выравнивание текста: слева;
вертикальное выравнивание: сверху;
ширина: 25%;
высота: авто;
}
# img3 {
высота: 100%;
}
сепия ()
Функция sepia ()
преобразует входное изображение в сепию. Значение , сумма
определяет долю конверсии. Значение 100%
полностью сепия. Значение 0%
оставляет вход без изменений. Значения от 0%
до 100%
являются линейными множителями эффекта.Значение лакуны для интерполяции составляет 0
.
<таблица>
Исходное изображение
Живой пример
эквивалент SVG
Статический пример
html {
высота: 100%;
}
тело {
шрифт: 14px / 1.286 «Lucida Grande», «Lucida Sans Unicode», «DejaVu Sans», Lucida, Arial, Helvetica, без засечек;
цвет: rgb (51, 51, 51);
высота: 100%;
переполнение: скрыто;
}
# img2 {
ширина: 100%;
высота: авто;
-моз-фильтр: сепия (100%);
-webkit-filter: сепия (100%);
-ms-фильтр: сепия (100%);
фильтр: сепия (100%); }
table.standard-table {
граница: 1px сплошной rgb (187, 187, 187);
граница-коллапс: коллапс;
интервал границы: 0 пикселей;
маржа: 0px 0px 1.286em;
ширина: 85%;
высота: 100%;
}
table.standard-table th {
граница: 1px сплошной rgb (187, 187, 187);
отступ: 0px 5px;
фон: нет повтора прокрутки 0% 0% rgb (238, 238, 238);
выравнивание текста: слева;
font-weight: жирный;
}
table.standard-table td {
отступ: 5 пикселей;
граница: 1px сплошной RGB (204, 204, 204);
выравнивание текста: слева;
вертикальное выравнивание: сверху;
ширина: 25%;
высота: авто;
}
# img3 {
высота: 100%;
}
15 библиотек фильтров изображений CSS и веб-инструменты
CSS Image Filters — это простой и легкий метод добавления уникального внешнего вида к изображениям вашего сайта.Эффекты, которые когда-то были единственной областью редакторов изображений, таких как Photoshop, могут быть достигнуты с помощью CSS.
Они не только великолепно выглядят, но также могут сэкономить ваше время, поскольку им не нужно открывать изображения для индивидуального применения эффектов. Мы рассмотрим некоторые из лучших ресурсов, которые помогут вам изучить и внедрить фильтры изображений CSS в ваш следующий проект.
Быстрый переход: Библиотеки фильтров CSS, Веб-инструменты фильтров CSS, Плагины jQuery для фильтров CSS, Дополнительные инструменты фильтров CSS и Учебные руководства по фильтрам CSS.
Вам также могут понравиться следующие наборы инструментов: Flexbox, CSS Animation, SVG Workflow Tools, Styleguide Tools или Tools for Formatting CSS.
Панель инструментов веб-дизайнера
Неограниченное количество загрузок: более 1 000 000 веб-шаблонов, тем, плагинов, ресурсов дизайна и многое другое!
Библиотеки фильтров изображений CSS
Filters.css
Созданный на основе SCSS, filter.css — это крошечная библиотека только для CSS для применения цветовых фильтров к изображениям и другим областям вашего сайта.
CSSGram
Уна КравецCSSGram призван воссоздать популярные фильтры Instagram в Интернете. Просто загрузите библиотеку на свой сайт и используйте специальные имена классов через CSS или SASS.
colofilter.css
Лукас БономиДобавьте на свой сайт несколько красочных эффектов «DuoTone» с помощью colofilter.css. Эффекты красивы, но пока несовместимы с браузерами Microsoft (Safari частично поддерживает).
CSSCO
Лорен УоллерCSSCO — это библиотека привлекательных фотографических фильтров, которые можно легко добавить на ваш сайт. Частично поддерживаются браузеры MS и Safari.
Веб-генераторы фильтров CSS
cssFilters.co
Автор: Indrashish GhoshcssFilters.co позволяет загружать изображения, настраивать различные фильтры и выводить код CSS с помощью прекрасного интерфейса.
Смесь фильтров
Илья ШубинЗагрузите изображение в Filter Blend и примените различные цвета фона, режимы наложения и фильтры CSS.Похоже, вам больше не нужен Photoshop!
CSSReflex Filter Effects
By Naeem NoorCSSReflex Filter Effects позволяет увидеть, на что способен каждый фильтр CSS. Используйте ползунки под каждым эффектом и просмотрите результаты.
Фильтр CSS
Автор: Jordano AragãoНастройте различные фильтры по своему усмотрению и экспортируйте немного CSS для использования на своем сайте с помощью этого пера.
Фильтры изображений CSS и jQuery
tiltShift.js
Автор Ноэль ТокtiltShift.js имитирует популярный эффект наклона-сдвига с использованием фильтров jQuery и CSS 3.
Philter
Людас ДзисявичюсPhilter использует атрибуты HTML для включения фильтров CSS, включая эффекты наведения.
Редактор изображений с фильтрами CSS и jQuery
Автор SitePointВставьте ссылку на изображение и начните фильтрацию с помощью редактора изображений с фильтрами CSS и jQuery.
Postcss Instagram
Автор Азат С.Postcss Instagram, предназначенный для использования с PostCSS, представляет собой плагин, который добавляет к изображениям фильтры, подобные Instagram.
SassyFilters
Автор: Pascal DuezИспользуете SASS? SassyFilters — это набор настраиваемых фильтров CSS-SVG , настраиваемых в разных браузерах.
CSS Filters DevTools Extension
Автор: Jaume SanchezЕсли вы используете Chrome DevTools, расширение CSS Filters DevTools добавит боковую панель на панель элементов, которая позволит вам легко редактировать фильтры.
Руководства по использованию фильтров изображений CSS
Общие сведения об эффектах фильтров CSS
Автор: Alex DaniloЭто статья, написанная несколько лет назад, но все еще содержит много важной информации о фильтрах. Автор Алекс Данило особенно подробно рассматривает возможные проблемы с производительностью.
Настройка изображения с помощью эффектов фильтра CSS
Автор: Торик ФирдаусImage Adjustment with CSS Filter Effects предоставляет краткое изложение избранных фильтров изображений CSS вместе с некоторым загружаемым исходным кодом, чтобы вы могли начать работу.
Как оказалось, добавить фильтры изображений CSS на ваш сайт — несложный процесс. Интересным аспектом для дизайнеров и разработчиков является то, что вы можете настроить фильтры в своем CSS, и когда клиенты добавляют изображения на свой сайт, они автоматически фильтруются.
Это означает меньше времени на обучение для вас и больше удобства для ваших клиентов. Благодаря разнообразию фильтров и инструментов, упрощающих реализацию, нет причин не экспериментировать.
CSS фотоэффектов и фильтров от CodePen
В наши дни вы можете использовать фотоэффекты CSS или любые фильтры для своих изображений при создании веб-сайта, веб-приложения или мобильного приложения.Применяя настраиваемые эффекты на основе кода, становится намного проще изменять или настраивать их в любой момент. Наиболее часто используемые эффекты CSS — это режимы наложения и градиенты, которые позволяют применять контраст, яркость, оттенок и другие.
Вот список некоторых из лучших фотоэффектов и фильтров CSS, которые я нашел на CodePen.
Фотофильтр CSS и JS
Большой набор фотофильтров, использующих режимы наложения CSS и Javascript для внесения корректировок.
Жалюзи Photo Effect
Классный 3D-эффект жалюзи с использованием преобразования CSS и JS.
Эффект мозаики изображения с сетками CSS и режимами наложения
Использует спецификацию сетки CSS и режим смешивания для создания эффекта мозаики из одного изображения. Фотография сделана [Кристофом Рурманном] (https://500px.com/photo/184035727/), используется по лицензии Creative Commons.
CSS полутоновый фотофильтр: 8 уровней яркости
Этот фильтр SVG будет генерировать полутон с 8 уровнями из изображения на основе сетки 3 × 3. Он полагается на импорт объекта feImage, поэтому не работает в Firefox.
Глитч-фото CSS-фильтры
Вот четыре фотофильтра с использованием чистого CSS. Это эффект анаглифа 3D, эффект сбоя, видеоэффект VHS и эффект камеры GB.
Переход изображения карты смещения выполнен с помощью CSS и JS
Тест эффекта прокрутки и фото-перехода для проекта с использованием PIXI для абстракции Webgl.
Переходы изображений с использованием фильтров SVG
Это навеяно растворением перекрестных изображений Yoichi Kobayashi на основе GLSL. Это более простая версия, сделанная с использованием фильтров SVG, в частности примитивов турбулентности и передачи компонентов.
Переход изображения при прокрутке (GSAP)
Некоторые классные переходы CSS, примененные к фотографиям с использованием довольно большого количества Javascript.
Эффект разделения изображения на плитки с использованием JS и некоторого CSS
Прекрасный пример того, как следует разделить изображение на плитки с помощью JS и CSS для переходов.
Эффекты раздвижных жалюзи с Hoff
Используя настраиваемые свойства CSS, мы можем получить довольно забавный результат.
CSS3 Модный ретро-фотоэффект
Вот как вы можете создать модный ретро-фотоэффект с помощью хороших трюков с фильтрами CSS3 и линейными градиентами.Смотрите без эффекта при наведении.
CSS эффект наведения градиента
Быстрое подтверждение концепции эффекта наведения с использованием смешанного режима и градиентов CSS.
Фотоэффект CSS
Классное сочетание режимов наложения CSS, создающих 3D-эффект.
См. Фотоэффект Pen CSS Photo Effect от kataichan1975 (@ kataichan1975) на CodePen.
Галерея фотоэффектов
Довольно много примеров функций фотофильтров, использующих только CSS.
черно-белый фильтр, цветной фильтр, контрастный фильтр, CSS, эффекты CSS, примеры CSS, фильтр CSS, оттенки серого CSS, фильтры и эффекты, фото эффекты, фильтр сепияCSS Filter Generator — создавайте CSS и делитесь CSS-фильтрами и наложениями в смешанном режиме
История
Этот сайт изначально создавался как код, который я создал, чтобы поделиться с дизайнером UX, с которым я работал.Понимая, насколько полезна такая утилита, даже для меня как разработчика, я закончил тем, что создал полноценный интерфейс, который стал этим веб-сайтом. Есть еще несколько таких сайтов, но ни один из них не предлагает возможность изменить порядок фильтров или изменить порядок фильтров. в качестве надежных создателей градиентов в одном одностраничном приложении или возможность делиться фильтрами через настраиваемые URL-адреса. Есть еще функции, которые я хотел бы реализовать. Как правило, этот сайт получает несколько спорадических обновлений в год, поскольку я нахожу время, чтобы вернуться к нему. В самом последнем обновлении был проведен капитальный ремонт под капотом.
Этот веб-сайт не содержит рекламы и использует только аналитику Google для базового отслеживания. Его можно использовать совершенно бесплатно, и любой код фильтра CSS, который он сгенерирует для вас, можно использовать в любых проектах без указания авторства. Если вам нравится этот сайт, поделитесь им с друзьями или напишите мне на [email protected]. Кроме того, посмотрите мой проект Sketch / Photoshop Favicon Creator для одержимых или посетите мой якобы блог, связанный с веб-разработчиками.
Что впереди?
Этот проект находится в активной разработке, и множество новых функций уже на подходе.В произвольном порядке, запланированных товарных знаков:
Предупреждения обозревателя частичной поддержки. Дополнительная документация / примеры. Более элегантный интерфейс. Загрузите собственное изображение / используйте веб-камеру.
Последние изменения
Версия 1.2.1 — (февраль 2019 г.)
- Исправление предустановленного оверлея после преобразования ES6
- Правильные горячие клавиши
- Исправление ошибочной опечатки
- Дополнительные фото к демонстрационным изображениям (Beta)
Версия 1.2 — (февраль 2019 г.)
- Исправление ошибки в Safari из-за неправильного синтаксиса, препятствующего его правильной работе
- Сбросить исправление ошибки фильтра
- Предупреждения, не относящиеся к ES6
Версия 1.1 — (август 2018 г.)
- Лучшая генерация кода: наложения больше не фильтруются.
- Пресеты переупорядочивают позиции фильтров (наконец-то!).Переписывание всего кода должно было сделать это разумным.
- Исправления ошибок для хранения данных
- Исправления ошибок для предустановок
- Сохраненные фильтры правильно запоминают позиции
- Клавиатурные сокращения!
- Пользовательские фильтры, созданные из CSSFilterGenerator (демонстрация более экстремальных применений)
- Полноэкранный захват теперь можно закрыть, щелкнув фон
- Исправление ошибки FireFox для обмена изображениями
Версия 1.0 — Практически полностью переписан базовый код, чтобы быть умнее. (Июль 2018 г.)
- Новые предустановки и наложение подкачки изображений (больше нет прокрутки и надоедливой прокрутки вкладок, чтобы перейти к предустановкам и наложениям)
- Теперь списки заказов сохраняются предсказуемо, и переупорядочивание фильтров должно быть проще.
- Сброс теперь сбрасывает списки заказов.
- DOM меняется реже, что повышает производительность (хотя вряд ли будет замечено, кроме тестов).
- URL генерируются только по запросу.
Версия 0.9 — (январь 2018 г.)
Лучше отзывчивое поведение. Пользовательский интерфейс jQuery заменен на Sortable (улучшенная поддержка сенсорного ввода) с более простым перетаскиванием, а сохраненные / общие URL-адреса сохраняют порядок фильтров.
CSS Filter Image Editor using JavaScript
// Code By Webdevtrick (https://webdevtrick.com)
let Яркость = 100;
пусть контраст = 100;
let saturate = 100;
пусть оттенки серого = 0;
пусть инвертирует = 0;
пусть huerotate = 0;
пусть размытие = 0;
пусть непрозрачность = 100;
пусть сепия = 0;
пусть drophadow = 0;
const imgture = document.getElementById («img»);
const resetAll = document.getElementById («resetAll»);
const slider1 = document.getElementById («слайдер1»);
const value1 = document.getElementById («яркий»);
const slider2 = document.getElementById («слайдер2»);
const value2 = document.getElementById («контраст»);
const slider3 = document.getElementById («слайдер3»);
const value3 = document.getElementById («насыщать»);
const slider4 = документ.getElementById («слайдер4»);
const value4 = document.getElementById («серый»);
const slider5 = document.getElementById («slider5»);
const value5 = document.getElementById («инвертировать»);
const slider6 = document.getElementById («слайдер6»);
const value6 = document.getElementById («оттенок»);
const slider7 = document.getElementById («slider7»);
const value7 = document.getElementById («размытие»);
const slider8 = документ.getElementById («слайдер8»);
const value8 = document.getElementById («непрозрачность»);
const slider9 = document.getElementById («slider9»);
const value9 = document.getElementById («сепия»);
// Обновить фильтры
function updateFilters () {
imgture.style.filter =
«яркость (» +
яркость +
«%) контраст (» +
контраст +
» %) насыщенный («+
насыщенный +
«%) оттенки серого («+
оттенки серого +
«%) инвертировать («+
инвертировать +
«%) оттенок-повернуть («+
юеротировать +
«град.) Размытие (» +
размытие +
«пикселей) непрозрачность (» +
непрозрачность +
«%) сепия (» +
сепия +
«%)»;
}
// Сбросить все
resetAll.addEventListener («щелчок», функция () {
console.log («resset»);
яркость = 100;
slider1.value = 100;
value1.innerHTML = slider1.value + «%»;
контраст = 100;
slider2.value = 100;
value2.innerHTML = slider2.value + «%»;
saturate = 100;
slider3.value = 100;
value3.innerHTML = slider3.value + «%»;
оттенки серого = 0;
slider4.value = 0;
value4.innerHTML = slider4.value + «%»;
инвертировать = 0;
slider5.value = 0;
значение5.innerHTML = slider5.value + «%»;
huerotate = 0;
slider6.value = 0;
value6.innerHTML = slider6.value + «px»;
размытие = 0;
slider7.value = 0;
значение7.innerHTML = slider7.value + «°»;
непрозрачность = 100;
slider8.value = 0;
value8.innerHTML = 100 — slider8.value + «%»;
сепия = 0;
слайдер 9.значение = 0;
значение9.innerHTML = slider9.value + «%»;
updateFilters ();
});
// Ползунок яркости
slider1.addEventListener («input», function () {
console.log (slider1.value);
value1.innerHTML = slider1.value + «%»;
яркость = slider1.value;
updateFilters ();
});
slider1.addEventListener («focus», function () {
console.журнал («фокус получен»);
value1.style.visibility = «visible»;
});
slider1.addEventListener («размытие», function () {
console.log («фокус потерян»);
value1.style.visibility = «hidden»;
});
// Ползунок контрастности
slider2.addEventListener («input», function () {
value2.innerHTML = slider2.value + «%»;
Contrast = slider2.value;
updateFilters ();
});
слайдер 2.addEventListener («фокус», функция () {
value2.style.visibility = «visible»;
});
slider2.addEventListener («размытие», функция () {
value2.style.visibility = «hidden»;
});
// Ползунок насыщенности
slider3.addEventListener («input», function () {
value3.innerHTML = slider3.value + «%»;
saturate = slider3.value;
updateFilters ();
});
слайдер 3.addEventListener («фокус», функция () {
value3.style.visibility = «visible»;
});
slider3.addEventListener («размытие», функция () {
value3.style.visibility = «hidden»;
});
// Ползунок оттенков серого
slider4.addEventListener («input», function () {
value4.innerHTML = slider4.value + «%»;
grayscale = slider4.value;
updateFilters ( );
});
слайдер 4.addEventListener («фокус», функция () {
value4.style.visibility = «visible»;
});
slider4.addEventListener («размытие», функция () {
value4.style.visibility = «hidden»;
});
// Инвертировать слайдер
slider5.addEventListener («input», function () {
value5.innerHTML = slider5.value + «%»;
invert = slider5.value;
updateFilters ();
});
слайдер 5.addEventListener («фокус», функция () {
value5.style.visibility = «visible»;
});
slider5.addEventListener («размытие», функция () {
value5.style.visibility = «hidden»;
});
// Ползунок поворота оттенка
slider6.addEventListener («input», function () {
value6.innerHTML = slider6.value + «°»;
huerotate = slider6.value;
updateFilters ( );
});
слайдер 6.addEventListener («фокус», функция () {
value6.style.visibility = «visible»;
});
slider6.addEventListener («размытие», функция () {
value6.style.visibility = «hidden»;
});
// Ползунок размытия
slider7.addEventListener («input», function () {
value7.innerHTML = slider7.value + «px»;
blur = slider7.value;
updateFilters ();
});
слайдер 7.addEventListener («фокус», функция () {
value7.style.visibility = «visible»;
});
slider7.addEventListener («размытие», функция () {
value7.style.visibility = «hidden»;
});
// Ползунок непрозрачности
slider8.addEventListener («input», function () {
value8.innerHTML = 100 — slider8.value + «%»;
opacity = 100 — slider8.value;
updateFilters ();
});
слайдер 8.addEventListener («фокус», функция () {
value8.style.visibility = «visible»;
});
slider8.addEventListener («размытие», функция () {
value8.style.visibility = «hidden»;
});
// Сепия слайдер
slider9.addEventListener («input», function () {
value9.innerHTML = slider9.value + «%»;
sepia = slider9.value;
updateFilters ();
});
слайдер 9.addEventListener («фокус», функция () {
value9.style.visibility = «visible»;
});
slider9.addEventListener («размытие», функция () {
value9.style.visibility = «hidden»;
});
Бесплатное руководство по CSS — Фильтры изображений CSS — Редактирование изображений в Интернете (2021)
О программе —
После окончания и получения степени «информационные технологии» моя профессиональная карьера началась , начал веб-разработку и карьера графического дизайнера в 2013 году я никогда не переставал изучать новых навыков программирования и графического дизайна.
Я не изучал навыков веб-разработки и графического дизайна в колледже. это навыки самоучки.
С тех пор это увлечение продолжалось и привело к моему решению работать внештатным веб-разработчиком и графическим дизайнером . Успех и удовольствие, которое я получаю от этой работы, составляют огромных и действительно поддерживают эту страсть .
Как разработчик-самоучка и графический дизайнер , у меня была возможность расширить свой кругозор, изучив « предпринимательство».
Где я получил степень магистра в области « предпринимательство : создание высокотехнологичной инновационной компании» от Университета Мэриленда, США.
Цель —
Я был в той ситуации , когда вам нужно потратить тысячи долларов и лет упорного труда, чтобы приобрести новые навыки , чтобы вы могли прокормить свою семью и оплатите ваши счета.
Я большой сторонник образования, которое должно быть дешевым, очень практичным и не должно занимать много времени , это то, что мне позволили онлайн-классы.
Я стал здесь инструктором, и моя цель № 1 — поделиться навыками, которые я приобрел за все эти годы, предоставляя вам безумно практичные, низкие цены и в удобное для вас время обучения.
Когда я только начал учиться, я сделал кучу ошибок на этом пути, и я здесь, чтобы поделиться всем , чтобы вы не делали тех же ошибок.
« Мои ошибки — ваша прибыль» , Добро пожаловать 🙂
До сих пор у меня преподавал 13 курсов более чем 30+ тысячам студентов по всему миру и имею сотен 5-звездочных отзывов .Я приглашаю вас присоединиться к нашей семье. вы можете начать с некоторых из моих бесплатных курсов.
спасибо за ваше время и доверие, до встречи в курсе.
Your Friend-
Rahul Giri
Новая функция: фильтры CSS | Webflow Blog
Фильтры добавляют еще один мощный инструмент к вашему набору дизайнерских инструментов, позволяя добавлять к вашим проектам графические эффекты, такие как размытие, резкость, смещение цвета и другие.
И хотя вы привыкли применять подобные фильтры к изображениям, вы можете использовать фильтры CSS для любого элемента: кнопок, текста, видео — да что угодно!
Вы можете найти все свои новые параметры фильтра в разделе «Эффекты» вкладки «Стиль»:
Вы найдете новые фильтры CSS в разделе «Эффекты» вкладки «Стиль».Каждый тип фильтра также дает вам значения, которые вы можете использовать для точной настройки ваших эффектов, например радиус для фильтра «Размытие».
Вот 8 совершенно новых фильтров CSS, которые вы можете применить в конструкторе:
1. РазмытиеПрименяет размытие по Гауссу к элементу. Увеличьте значение радиуса, чтобы сделать элементы еще более размытыми.
2. Поворот оттенкаДобавляет поворот оттенка к выбранному элементу, регулируя цвета элемента в зависимости от значения угла: 0 градусов оставляет элемент нетронутым, а 180 переводит вас на противоположную сторону круга и 360 вернет вас на круги своя.Максимальное значение — 1440 градусов, т.е. 4 раза по кругу.
3. НасыщенностьНасыщает выбранный элемент до степени, определяемой выбранным вами значением количества. Количество варьируется от 0 до 100+, что позволяет получить некоторые перенасыщенные результаты.
4. ЯркостьПозволяет сделать элемент более или менее ярким. Значение 0% делает элемент полностью черным, а 100% оставляет элемент без изменений. Вы также можете установить яркость выше 100% для еще более ярких результатов.
5. КонтрастностьРегулирует уровень контрастности в элементе, где 0% соответствует полностью серому, 100% оставляет элемент без изменений, а все, что превышает 100%, создает суперконтрастные эффекты.
6. Оттенки серогоСамый простой способ превратить цветную фотографию в черно-белый шедевр.
7. СепияХотите добавить винтажности своему сайту? Тогда сепия — это фильтр для вас. Значения варьируются от 0% до 100%, поэтому вы можете контролировать, насколько винтажными выглядят ваши изображения.
8. ИнвертироватьИнвертирует значения цвета в выбранном изображении, при этом 0% оставляет изображение без изменений, а 100% создает полностью инвертированные значения.
3 креативных применения фильтров CSSПоскольку вы можете комбинировать фильтры CSS, применять их к состояниям наведения и добавлять их к любому элементу, есть все виды творческих способов заставить фильтры CSS работать на ваших веб-сайтах.
Вот всего 3 идеи, которые у нас возникли:
1.Добавление и изменение порядка нескольких эффектовПопробуйте добавить к элементу пару различных фильтров CSS, а затем перетащите их, чтобы создать различные визуальные эффекты.
Не довольны результатом? Щелкните значок глаза, чтобы скрыть эффект, и, если вам нравится результат, щелкните значок корзины, чтобы избавиться от этого эффекта.
Вы можете добавить несколько фильтров CSS к элементу, перетащить их, чтобы изменить порядок, сделать их невидимыми и выбросить в корзину. 2. Применяйте различные эффекты к различным состояниямНапример, вы можете легко сделать так, чтобы эскизы фотографий блога становились черно-белыми при наведении, инвертировать цвета нажатых ссылок и т. Д.
Фильтр CSS, добавляемый при наведении курсора, — это творческий способ добавить интерактивности. 3. Отфильтруйте что-либо из элементовНе чувствуете, что это стоковое видео достаточно «всплывает»? Просто подождите, пока вы не увидите, что он делает, когда вы поворачиваете его оттенок, инвертируете его цвета или оттенки серого!
Вы даже можете добавлять фильтры CSS к видео! Что вы будете делать с фильтрами CSS?Нам не терпится увидеть, что вы создаете с помощью этой новой функции! Поделитесь своими действиями с фильтрами в комментариях ниже или напишите в Твиттере @webflowapp с хэштегом #MadeInWebflow.