This is an experimental technology
Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.
Опис
Властивість filter
дає можливість застосувати до елементів такі графічні ефекти, як розмиття (blurring), збільшення чіткості (sharpening), зміна кольорів (color shifting). Зазвичай фільтри викорустовуються для налаштування рендерингу зображень, фонів (backgrounds) та границь (borders).
У CSS стандарт включені декілька функцій, які досягають визначених ефектів. Ви можете також посилатися на SVG-фільтр за допомогою посилання(URL) на SVG filter element.
Примітка: Більш старі версії браузера Windows Internet Explorer (4.0 - 9.0) підтримували нестандартний
"filter", який з того часу є застарілим.
Initial value | none |
---|
Applies to | all elements; In SVG, it applies to container elements excluding the defs element and all graphics elements |
---|
Inherited | no |
---|
Media | visual |
---|
Computed value | as specified |
---|
Animatable | yes |
---|
Canonical order | the unique non-ambiguous order defined by the formal grammar |
---|
Syntax
filter: url("filters.svg#filter-id");
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%);
/* Apply multiple filters */
filter: contrast(175%) brightness(3%);
/* Global values */
filter: inherit;
filter: initial;
filter: unset;
З функцією використовуйте наступне:
filter: <filter-function> [<filter-function>]* | none
Для посилання на SVG <filter>
елемент використовуйте наступне:
filter: url(file.svg#filter-element-id)
Формальний синтаксис
none | <filter-function-list>where
<filter-function-list> = [ <filter-function> | <url> ]+
where
<filter-function> = <blur()> | <brightness()> | <contrast()> | <drop-shadow()> | <grayscale()> | <hue-rotate()> | <invert()> | <opacity()> | <sepia()> | <saturate()>
where
<blur()> = blur( <length> )
<brightness()> = brightness( [ <number> | <percentage> ] )
<contrast()> = contrast( [ <number> | <percentage> ] )
<drop-shadow()> = drop-shadow( <length>{2,3} <color>? )
<grayscale()> = grayscale( [ <number> | <percentage> ] )
<hue-rotate()> = hue-rotate( <angle> )
<invert()> = invert( [ <number> | <percentage> ] )
<opacity()> = opacity( [ <number> | <percentage> ] )
<sepia()> = sepia( [ <number> | <percentage> ] )
<saturate()> = saturate( [ <number> | <percentage> ] )
where
<color> = <rgb()> | <rgba()> | <hsl()> | <hsla()> | <hex-color> | <named-color> | currentcolor | <deprecated-system-color>
where
<rgb()> = rgb( <rgb-component>#{3} )
<rgba()> = rgba( <rgb-component>#{3} , <alpha-value> )
<hsl()> = hsl( <hue>, <percentage>, <percentage> )
<hsla()> = hsla( <hue>, <percentage>, <percentage>, <alpha-value> )
<named-color> = <ident>
<deprecated-system-color> = ActiveBorder | ActiveCaption | AppWorkspace | Background | ButtonFace | ButtonHighlight | ButtonShadow | ButtonText | CaptionText | GrayText | Highlight | HighlightText | InactiveBorder | InactiveCaption | InactiveCaptionText | InfoBackground | InfoText | Menu | MenuText | Scrollbar | ThreeDDarkShadow | ThreeDFace | ThreeDHighlight | ThreeDLightShadow | ThreeDShadow | Window | WindowFrame | WindowText
where
<rgb-component> = <integer> | <percentage>
<alpha-value> = <number>
<hue> = <number>
Приклади
Приклади використання визначених функцій подаються нижче. Дивіться кожну функцію для конкретного прикладу.
.mydiv { filter: grayscale(50%) }
/* зробить сірим на 50% та розмиє на 10px */
img {
filter: grayscale(0.5) blur(10px);
}
Приклади використання URL функції з SVG ресурсом наведені нижче.
.target { filter: url(#c1); }
.mydiv { filter: url(commonfilters.xml#large-blur) }
Функції
Для того, щоб використовувати CSS властивість filter
, необхідно вказати значення (value) для однієї з наступних функцій. Якщо значення не є валідним, функція повертає "none". За винятком зазначених випадків, функції, які приймають значення, виражені у відсотках (наприклад, 34%), також приймають і ті значення, що виражені десятковим дробом (наприклад, 0.34).
url()
Функція url() приймає місцезнаходження XML-файлу, який визначає SVG-фільтр і має містити якір(anchor) до конкретного фільтр-елемента.
filter: url(resources.svg#c1)
blur()
Розмиття. Застосовує гаусове (Gaussian) розмиття до вхідного зображення. Значення радіусу (‘radius’) встановлює значення стандартного відхилення до гауссової (Gaussian) функції, або на скільки пікселі екрану мають зливатися один з одним. Тому більше значення забеспечить більше розмиття. Якщо жоден параметр не вказаний, використовується значення "0". Параметр визначений, як CSS довжина, але не приймає значень у відсотках.
filter: blur(5px)
<table class="standard-table">
<thead>
<tr>
<th align="left" scope="col">Original image</th>
<th align="left" scope="col">Live example</th>
<th align="left" scope="col">SVG Equivalent</th>
<th align="left" scope="col">Static example</th>
</tr>
</thead>
<tbody>
<tr>
<td><img alt="Test_Form.jpg" id="img1" class="internal default" src="/files/3710/Test_Form_2.jpg" style="width: 100%;" /></td>
<td><img alt="Test_Form.jpg" id="img2" class="internal default" src="/files/3710/Test_Form_2.jpg" style="width: 100%;" /></td>
<td><div class="svg-container"><svg id="img3" viewbox="0 0 233 176">
<filter id="svgBlur" x="-5%" y="-5%" width="110%" height="110%" >
<feGaussianBlur in="SourceGraphic" stdDeviation="5" />
</filter>
<image xlink:href="/files/3710/Test_Form_2.jpeg" filter="url(#svgBlur)" x="5%" y="5%" width="212px" height="161px" />
</svg><div></td>
<td><img alt="Test_Form_s.jpg" id="img4" class="internal default" src="/files/3711/Test_Form_2_s.jpg" style="width: 100%;" /></td>
</tr>
</tbody>
</table>
html {
height:100%;
}
body {
font: 14px/1.286 "Lucida Grande", "Lucida Sans Unicode", "DejaVu Sans", Lucida, Arial, Helvetica, sans-serif;
color: rgb(51, 51, 51);
height:100%;
overflow:hidden;
}
#img2 {
width:100%;
height:auto;
-webkit-filter:blur(5px);
-ms-filter:blur(5px);
filter:blur(5px); }
table.standard-table {
border: 1px solid rgb(187, 187, 187);
border-collapse: collapse;
border-spacing: 0;
margin: 0 0 1.286em;
height: 100%;
width: 85%;
}
table.standard-table th {
border: 1px solid rgb(187, 187, 187);
padding: 0px 5px;
background: none repeat scroll 0% 0% rgb(238, 238, 238);
text-align: left;
font-weight: bold;
}
table.standard-table td {
padding: 5px;
border: 1px solid rgb(204, 204, 204);
text-align: left;
vertical-align: top;
width:25%;
height:auto;
}
#img3 {
height:100%;
}
<svg style="position: absolute; top: -99999px" xmlns="https://www.w3.org/2000/svg">
<filter id="svgBlur" x="-5%" y="-5%" width="110%" height="110%">
<feGaussianBlur in="SourceGraphic" stdDeviation="5"/>
</filter>
</svg>
brightness()
Яскравість. Застосовує лінійний множник(мультиплікатор) до вхідного зображення, щоб зробити його більш або менш яскравим. Значення "0%"
створить абсолютно чорне зображення. Значення "100%" залишить зображення без змін. Інші значення є лінійними мультиплікаторами, що застосовуються до ефекту. Значення, більші за "100%", дозволяються і дають більш яскраві результати. Якщо параметр ‘amount’ не вказаний, використовується значення "1".
filter: brightness(0.5)
<svg style="position: absolute; top: -99999px" xmlns="https://www.w3.org/2000/svg">
<filter id="brightness">
<feComponentTransfer>
<feFuncR type="linear" slope="[amount]"/>
<feFuncG type="linear" slope="[amount]"/>
<feFuncB type="linear" slope="[amount]"/>
</feComponentTransfer>
</filter>
</svg>
<table class="standard-table">
<thead>
<tr>
<th align="left" scope="col">Original image</th>
<th align="left" scope="col">Live example</th>
<th align="left" scope="col">SVG Equivalent</th>
<th align="left" scope="col">Static example</th>
</tr>
</thead>
<tbody>
<tr>
<td><img alt="Test_Form.jpg" id="img1" class="internal default" src="/files/3708/Test_Form.jpg" style="width: 100%;" /></td>
<td><img alt="Test_Form.jpg" id="img2" class="internal default" src="/files/3708/Test_Form.jpg" style="width: 100%;" /></td>
<td><div class="svg-container"><svg xmlns="https://www.w3.org/2000/svg" id="img3" viewbox="0 0 286 217">
<filter id="brightness">
<feComponentTransfer>
<feFuncR type="linear" slope="2"/>
<feFuncG type="linear" slope="2"/>
<feFuncB type="linear" slope="2"/>
</feComponentTransfer>
</filter>
<image xlink:href="/files/3708/Test_Form.jpg" filter="url(#brightness)" width="286px" height="217px" />
</svg><div></td>
<td><img alt="Test_Form_s.jpg" id="img4" class="internal default" src="/files/3709/Test_Form_s.jpg" style="width: 100%;" /></td>
</tr>
</tbody>
</table>
html {
height:100%;
}
body {
font: 14px/1.286 "Lucida Grande","Lucida Sans Unicode","DejaVu Sans",Lucida,Arial,Helvetica,sans-serif;
color: rgb(51, 51, 51);
height:100%;
overflow:hidden;
}
#img2 {
width:100%;
height:auto;
-moz-filter:brightness(2);
-webkit-filter:brightness(2);
-o-filter:brightness(2);
-ms-filter:brightness(2);
filter:brightness(2); }
table.standard-table {
border: 1px solid rgb(187, 187, 187);
border-collapse: collapse;
border-spacing: 0px;
margin: 0px 0px 1.286em;
height:100%;
width: 85%;
}
table.standard-table th {
border: 1px solid rgb(187, 187, 187);
padding: 0px 5px;
background: none repeat scroll 0% 0% rgb(238, 238, 238);
text-align: left;
font-weight: bold;
}
table.standard-table td {
padding: 5px;
border: 1px solid rgb(204, 204, 204);
text-align: left;
vertical-align: top;
width:25%;
height:auto;
}
#img3 {
height:100%;
}
contrast()
Контрастність. Налаштовує контраст зображення. Значення "0%"
створить абсолютно сіре зображення. Значення "100%" залишить зображення без змін. Значення, більші за "100%", дозволяються і дають більш контрастні результати. Якщо параметр ‘amount’ не вказаний, використовується значення "1".
filter: contrast(200%)
<svg style="position: absolute; top: -99999px" xmlns="https://www.w3.org/2000/svg">
<filter id="contrast">
<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>
<table class="standard-table">
<thead>
<tr>
<th align="left" scope="col">Original image</th>
<th align="left" scope="col">Live example</th>
<th align="left" scope="col">SVG Equivalent</th>
<th align="left" scope="col">Static example</th>
</tr>
</thead>
<tbody>
<tr>
<td><img alt="Test_Form_3.jpeg" id="img1" class="internal default" src="/files/3712/Test_Form_3.jpeg" style="width: 100%;" /></td>
<td><img alt="Test_Form_3.jpg" id="img2" class="internal default" src="/files/3712/Test_Form_3.jpeg" style="width: 100%;" /></td>
<td><div class="svg-container"><svg xmlns="https://www.w3.org/2000/svg" id="img3" viewbox="0 0 240 151">
<filter id="contrast">
<feComponentTransfer>
<feFuncR type="linear" slope="2" intercept="-0.5"/>
<feFuncG type="linear" slope="2" intercept="-0.5"/>
<feFuncB type="linear" slope="2" intercept="-0.5"/>
</feComponentTransfer>
</filter>
<image xlink:href="/files/3712/Test_Form_3.jpeg" filter="url(#contrast)" width="240px" height="151px" />
</svg><div></td>
<td><img alt="Test_Form_s.jpg" id="img4" class="internal default" src="/files/3713/Test_Form_3_s.jpg" style="width: 100%;" /></td>
</tr>
</tbody>
</table>
html {
height:100%;
}
body {
font: 14px/1.286 "Lucida Grande","Lucida Sans Unicode","DejaVu Sans",Lucida,Arial,Helvetica,sans-serif;
color: rgb(51, 51, 51);
height:100%;
overflow:hidden;
}
#img2 {
width:100%;
height:auto;
-moz-filter:contrast(200%);
-webkit-filter:contrast(200%);
-o-filter:contrast(200%);
-ms-filter:contrast(200%);
filter:contrast(200%); }
table.standard-table {
border: 1px solid rgb(187, 187, 187);
border-collapse: collapse;
border-spacing: 0px;
margin: 0px 0px 1.286em;
width: 85%;
height: 100%;
}
table.standard-table th {
border: 1px solid rgb(187, 187, 187);
padding: 0px 5px;
background: none repeat scroll 0% 0% rgb(238, 238, 238);
text-align: left;
font-weight: bold;
}
table.standard-table td {
padding: 5px;
border: 1px solid rgb(204, 204, 204);
text-align: left;
vertical-align: top;
width:25%;
height:auto;
}
#img3 {
height:100%;
}
drop-shadow()
Відкидання тіні. Застосовує відкидання тіні до вхідного зображення. Це фактично розмита, зміщена версія альфа-маски вхідного зображення, намальована певним кольором та створена під зображенням. Функція приймає параметр типу <shadow> (визначена у CSS3 Backgrounds), за винятком того, що ключове слово ‘inset’ не дозволене. Дана функція дуже схода на більш укорінену властивість box-shadow
; різниця у тому, що у випадку з фільтрами деякі браузери забезпечують апаратне прискорення для більш високої продуктивності. Нижче наведені параметри параметра <shadow>.
<offset-x>
<offset-y>
(required)
- Ці два обов'язкові
<length>
значення вказують зміщення тіні. <offset-x> визначає горизонтальну відстань. Від’ємні значення розміщують тінь лівіше елемента. <offset-y> визначає вертикальну відстань. Від’ємні значення розміщують тінь вище елемента. Дивіться <length>
можливі одиниці. Якщо обидва значення "0", тінь розміщується за елементом (і може створювати ефект ромиття, якщо вказані <blur-radius> та/або <spread-radius>).
<blur-radius>
(optional)
- Це необов'язкове третє
<length>
значення. Чим більше значення, тим більше розмиття, тим більшою і світлішою стає тінь. Від’ємні значення не дозволені. Якщо значення не визначене, воно буде "0" (межі тіні будуть чіткими).
<spread-radius>
(optional)
- Це необов'язкове четверте
<length>
значення. Додатні значення розширять тінь і зроблять її більшою, а від'ємні - зменшать. Якщо значення не визначено, воно буде "0" (тінь буде мати какий розмір, як зображення).
Примітка: Webkit та, можливо, інші браузери, не підтримують цей четвертий параметр; він не виконається, якщо його додати.
<color>
(optional)
- Дивіться
<color>
значення, щоб дізнатися можливі ключові слова та умовні позначення. Якщо значення не вказано, колір залежить від браузера. У Gecko (Firefox), Presto (Opera) та Trident (Internet Explorer), значення color
властивості використовується. З іншого боку, тінь WebKit є прозорою, тому вона є марою, даремною, якщо значення <color> не вказане.
filter: drop-shadow(16px 16px 10px black)
<svg style="position: absolute; top: -999999px" xmlns="https://www.w3.org/2000/svg">
<filter id="drop-shadow">
<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>
<table class="standard-table">
<thead>
<tr>
<th align="left" scope="col">Original image</th>
<th align="left" scope="col">Live example</th>
<th align="left" scope="col">SVG Equivalent</th>
<th align="left" scope="col">Static example</th>
</tr>
</thead>
<tbody>
<tr>
<td><img alt="Test_Form_4.jpeg" id="img1" class="internal default" src="/files/3714/Test_Form_4.jpeg" style="width: 100%;" /></td>
<td><img alt="Test_Form_4.jpg" id="img2" class="internal default" src="/files/3714/Test_Form_4.jpeg" style="width: 100%;" /></td>
<td><div class="svg-container"><svg xmlns="https://www.w3.org/2000/svg" id="img3" viewbox="0 0 239 187">
<filter id="drop-shadow">
<feGaussianBlur in="SourceAlpha" stdDeviation="5"/>
<feOffset dx="16" dy="16"/>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<image xlink:href="/files/3714/Test_Form_4.jpeg" filter="url(#drop-shadow)" width="213px" height="161px" />
</svg><div></td>
<td><img alt="Test_Form_4_s.jpg" id="img4" class="internal default" src="/files/3715/Test_Form_4_s.jpg" style="width: 100%;" /></td>
</tr>
<tr>
<td><img alt="Test_Form_4 distorded border - Original image" id="img11" class="internal default" src="/files/8467/Test_Form_4_irregular-shape_opacity-gradient.png" style="width: 100%;" /></td>
<td><img alt="Test_Form_4 distorded border - Live example" id="img12" class="internal default" src="/files/8467/Test_Form_4_irregular-shape_opacity-gradient.png" style="width: 100%;" /></td>
<td>
<div class="svg-container">
<svg xmlns="https://www.w3.org/2000/svg" id="img13" viewbox="0 0 239 187">
<filter id="drop-shadow2">
<feGaussianBlur in="SourceAlpha" stdDeviation="4"/>
<feOffset dx="8" dy="10"/>
<feMerge>
<feMergeNode/>
<feMergeNode in="SourceGraphic"/>
</feMerge>
</filter>
<image xlink:href="/files/8467/Test_Form_4_irregular-shape_opacity-gradient.png" filter="url(#drop-shadow2)" width="213px" height="161px" />
</svg>
<div>
</td>
<td><img alt="Test_Form_4 distorded border drop shadow - Static example" id="img14" class="internal default" src="/files/8469/Test_Form_4_irregular-shape_opacity-gradient_drop-shadow.png" style="width: 100%;" /></td>
</tr>
</tbody>
</table>
html {
height:100%;
}
body {
font: 14px/1.286 "Lucida Grande","Lucida Sans Unicode","DejaVu Sans",Lucida,Arial,Helvetica,sans-serif;
color: rgb(51, 51, 51);
height:100%;
overflow:hidden;
}
#img2 {
width:100%;
height:auto;
-moz-filter: drop-shadow(16px 16px 10px black);
-webkit-filter: drop-shadow(16px 16px 10px black);
-o-filter: drop-shadow(16px 16px 10px black);
-ms-filter: drop-shadow(16px 16px 10px black);
filter: drop-shadow(16px 16px 10px black);
}
#img12 {
width:100%;
height:auto;
-moz-filter: drop-shadow(8px 9px 5px rgba(0,0,0,.8));
-webkit-filter: drop-shadow(8px 9px 5px rgba(0,0,0,.8));
-o-filter: drop-shadow(8px 9px 5px rgba(0,0,0,.8));
-ms-filter: drop-shadow(8px 9px 5px rgba(0,0,0,.8));
filter: drop-shadow(8px 9px 5px rgba(0,0,0,.8));
}
table.standard-table {
border: 1px solid rgb(187, 187, 187);
border-collapse: collapse;
border-spacing: 0px;
margin: 0px 0px 1.286em;
width: 85%;
height: 100%;
}
#irregular-shape {
width: 64%;
}
table.standard-table th {
border: 1px solid rgb(187, 187, 187);
padding: 0px 5px;
background: none repeat scroll 0% 0% rgb(238, 238, 238);
text-align: left;
font-weight: bold;
}
table.standard-table td {
padding: 5px;
border: 1px solid rgb(204, 204, 204);
text-align: left;
vertical-align: top;
width:25%;
height:auto;
}
#img3, #img13 {
height:100%;
}
grayscale()
Конвертує вхідне зображення у відтінках сірого. Значення ‘amount’ визначає пропорцію конвертації. Значення "100%" повністю конвертує зображення у відтінки сірого. Значення "0%" залишає зобращення без змін. Значення між "0%" та "100%" є лінійними множниками(мультиплікаторами) ефекта. Якщо парамент ‘amount’ не вказаний, використовується значення "0".
filter: grayscale(100%)
<table class="standard-table">
<thead>
<tr>
<th align="left" scope="col">Original image</th>
<th align="left" scope="col">Live example</th>
<th align="left" scope="col">SVG Equivalent</th>
<th align="left" scope="col">Static example</th>
</tr>
</thead>
<tbody>
<tr>
<td><img alt="Test_Form_5.jpeg" id="img1" class="internal default" src="/files/3716/Test_Form_5.jpeg" style="width: 100%;" /></td>
<td><img alt="Test_Form_5.jpg" id="img2" class="internal default" src="/files/3716/Test_Form_5.jpeg" style="width: 100%;" /></td>
<td><div class="svg-container"><svg xmlns="https://www.w3.org/2000/svg" id="img3" viewbox="0 0 276 184">
<filter id="grayscale">
<feColorMatrix type="matrix"
values="0.2126 0.7152 0.0722 0 0
0.2126 0.7152 0.0722 0 0
0.2126 0.7152 0.0722 0 0
0 0 0 1 0"/>
</filter>
<image xlink:href="/files/3716/Test_Form_5.jpeg" filter="url(#grayscale)" width="276px" height="184px" />
</svg><div></td>
<td><img alt="Test_Form_5_s.jpg" id="img4" class="internal default" src="/files/3717/Test_Form_5_s.jpg" style="width: 100%;" /></td>
</tr>
</tbody>
</table>
html {
height:100%;
}
body {
font: 14px/1.286 "Lucida Grande","Lucida Sans Unicode","DejaVu Sans",Lucida,Arial,Helvetica,sans-serif;
color: rgb(51, 51, 51);
height:100%;
overflow:hidden;
}
#img2 {
width:100%;
height:auto;
-moz-filter:grayscale(100%);
-webkit-filter:grayscale(100%);
-o-filter:grayscale(100%);
-ms-filter:grayscale(100%);
filter:grayscale(100%); }
table.standard-table {
border: 1px solid rgb(187, 187, 187);
border-collapse: collapse;
border-spacing: 0px;
margin: 0px 0px 1.286em;
width: 85%;
height: 100%;
}
table.standard-table th {
border: 1px solid rgb(187, 187, 187);
padding: 0px 5px;
background: none repeat scroll 0% 0% rgb(238, 238, 238);
text-align: left;
font-weight: bold;
}
table.standard-table td {
padding: 5px;
border: 1px solid rgb(204, 204, 204);
text-align: left;
vertical-align: top;
width:25%;
height:auto;
}
#img3 {
height:100%;
}
hue-rotate()
Зміна відтінків. Застосовує зміну відтінків до вхідного зображення. Значення ‘angle’ визначає кількість градусів на колірному крузі (color circle), які будуть застосовані до вхідного зображення. Значення (0deg) залишає зображення без змін. Якщо параметр ‘angle’ відсутній, використовується значення "0deg". Хоча і не існує максимального значення, ефект значень, більших за "360deg", буде обертатися навколо.
filter: hue-rotate(90deg)
<table class="standard-table">
<thead>
<tr>
<th align="left" scope="col">Original image</th>
<th align="left" scope="col">Live example</th>
<th align="left" scope="col">SVG Equivalent</th>
<th align="left" scope="col">Static example</th>
</tr>
</thead>
<tbody>
<tr>
<td><img alt="Test_Form_6.jpeg" id="img1" class="internal default" src="/files/3718/Test_Form_6.jpeg" style="width: 100%;" /></td>
<td><img alt="Test_Form_6.jpg" id="img2" class="internal default" src="/files/3718/Test_Form_6.jpeg" style="width: 100%;" /></td>
<td><div class="svg-container"><svg xmlns="https://www.w3.org/2000/svg" id="img3" viewbox="0 0 266 190">
<filter id="hue-rotate">
<feColorMatrix type="hueRotate"
values="90"/>
</filter>
<image xlink:href="/files/3718/Test_Form_6.jpeg" filter="url(#hue-rotate)" width="266px" height="190px" />
</svg><div></td>
<td><img alt="Test_Form_6_s.jpg" id="img4" class="internal default" src="/files/3719/Test_Form_6_s.jpg" style="width: 100%;" /></td>
</tr>
</tbody>
</table>
html {
height:100%;
}
body {
font: 14px/1.286 "Lucida Grande","Lucida Sans Unicode","DejaVu Sans",Lucida,Arial,Helvetica,sans-serif;
color: rgb(51, 51, 51);
height:100%;
overflow:hidden;
}
#img2 {
width:100%;
height:auto;
-moz-filter:hue-rotate(90deg);
-webkit-filter:hue-rotate(90deg);
-o-filter:hue-rotate(90deg);
-ms-filter:hue-rotate(90deg);
filter:hue-rotate(90deg); }
table.standard-table {
border: 1px solid rgb(187, 187, 187);
border-collapse: collapse;
border-spacing: 0px;
margin: 0px 0px 1.286em;
width: 85%;
height: 100%;
}
table.standard-table th {
border: 1px solid rgb(187, 187, 187);
padding: 0px 5px;
background: none repeat scroll 0% 0% rgb(238, 238, 238);
text-align: left;
font-weight: bold;
}
table.standard-table td {
padding: 5px;
border: 1px solid rgb(204, 204, 204);
text-align: left;
vertical-align: top;
width:25%;
height:auto;
}
#img3 {
height:100%;
}
<svg style="position: absolute; top: -999999px" xmlns="https://www.w3.org/2000/svg">
<filter id="svgHueRotate" >
<feColorMatrix type="hueRotate" values="[angle]" />
<filter />
</svg>
invert()
Інвертування. Інвертує зразки (samples) у вхідному зображенні. Значення ‘amount
’ визначає пропорцію конвертації. Значення "100%"
інвертує зображення повністю. Значення "0%"
залишає зображення без змін. Значення між "0%"
та "100%"
є лінійними множниками (мультиплікаторами) ефекта. Якщо параметр ‘amount
’ відсутній, використовується значення "0"
.
filter: invert(100%)
<table class="standard-table">
<thead>
<tr>
<th align="left" scope="col">Original image</th>
<th align="left" scope="col">Live example</th>
<th align="left" scope="col">SVG Equivalent</th>
<th align="left" scope="col">Static example</th>
</tr>
</thead>
<tbody>
<tr>
<td><img alt="Test_Form_7.jpeg" id="img1" class="internal default" src="/files/3720/Test_Form_7.jpeg" style="width: 100%;" /></td>
<td><img alt="Test_Form_7.jpg" id="img2" class="internal default" src="/files/3720/Test_Form_7.jpeg" style="width: 100%;" /></td>
<td><div class="svg-container"><svg xmlns="https://www.w3.org/2000/svg" id="img3" viewbox="0 0 183 276">
<filter id="invert">
<feComponentTransfer>
<feFuncR type="table" tableValues="1 0"/>
<feFuncG type="table" tableValues="1 0"/>
<feFuncB type="table" tableValues="1 0"/>
</feComponentTransfer>
</filter>
<image xlink:href="/files/3720/Test_Form_7.jpeg" filter="url(#invert)" width="183px" height="276px" />
</svg><div></td>
<td><img alt="Test_Form_7_s.jpg" id="img4" class="internal default" src="/files/3721/Test_Form_7_s.jpg" style="width: 100%;" /></td>
</tr>
</tbody>
</table>
html {
height:100%;
}
body {
font: 14px/1.286 "Lucida Grande","Lucida Sans Unicode","DejaVu Sans",Lucida,Arial,Helvetica,sans-serif;
color: rgb(51, 51, 51);
height:100%;
overflow:hidden;
}
#img2 {
width:100%;
height:auto;
-moz-filter: invert(100%);
-webkit-filter: invert(100%);
-o-filter: invert(100%);
-ms-filter: invert(100%);
filter: invert(100%); }
table.standard-table {
border: 1px solid rgb(187, 187, 187);
border-collapse: collapse;
border-spacing: 0px;
margin: 0px 0px 1.286em;
width: 85%;
height: 100%;
}
table.standard-table th {
border: 1px solid rgb(187, 187, 187);
padding: 0px 5px;
background: none repeat scroll 0% 0% rgb(238, 238, 238);
text-align: left;
font-weight: bold;
}
table.standard-table td {
padding: 5px;
border: 1px solid rgb(204, 204, 204);
text-align: left;
vertical-align: top;
width:25%;
height:auto;
}
#img3 {
height:100%;
}
opacity()
Непрозорість. Застосовує прозорість до вхідного зображення. Значення ‘amount
’ визначає пропорцію конвертації. Зі значенням "0%"
зображення стає повністю прозорим. Значення "100%"
залишає зображення без змін. Значення між "0%" та "100%" є лінійними множниками (мультиплікаторами) ефекта. Це еквівалентно множенню зразків (samples) зображення на ‘amount
’. Якщо параметр ‘amount’ відсутній, використовується значення "1". Ця функція схожа на більш укорінену властивість opacity
; ріниця полягає у тому, що у випадку з фільтрами деякі браузери забезпечують апаратне прискорення для більш високої продуктивності.
filter: opacity(50%)
<table class="standard-table">
<thead>
<tr>
<th align="left" scope="col">Original image</th>
<th align="left" scope="col">Live example</th>
<th align="left" scope="col">SVG Equivalent</th>
<th align="left" scope="col">Static example</th>
</tr>
</thead>
<tbody>
<tr>
<td><img alt="Test_Form_14.jpeg" id="img1" class="internal default" src="/files/3725/Test_Form_14.jpeg" style="width: 100%;" /></td>
<td><img alt="Test_Form_14.jpg" id="img2" class="internal default" src="/files/3725/Test_Form_14.jpeg" style="width: 100%;" /></td>
<td><div class="svg-container"><svg xmlns="https://www.w3.org/2000/svg" id="img3" viewbox="0 0 276 183">
<filter id="opacity">
<feComponentTransfer>
<feFuncA type="table" tableValues="0 0.5">
</feComponentTransfer>
</filter>
<image xlink:href="/files/3725/Test_Form_14.jpeg" filter="url(#opacity)" width="276px" height="183px" />
</svg><div></td>
<td><img alt="Test_Form_14_s.jpg" id="img4" class="internal default" src="/files/3726/Test_Form_14_s.jpg" style="width: 100%;" /></td>
</tr>
</tbody>
</table>
html {
height:100%;
}
body {
font: 14px/1.286 "Lucida Grande","Lucida Sans Unicode","DejaVu Sans",Lucida,Arial,Helvetica,sans-serif;
color: rgb(51, 51, 51);
height:100%;
overflow:hidden;
}
#img2 {
width:100%;
height:auto;
-moz-filter: opacity(50%);
-webkit-filter: opacity(50%);
-o-filter: opacity(50%);
-ms-filter: opacity(50%);
filter: opacity(50%); }
table.standard-table {
border: 1px solid rgb(187, 187, 187);
border-collapse: collapse;
border-spacing: 0px;
margin: 0px 0px 1.286em;
width: 85%;
height: 100%;
}
table.standard-table th {
border: 1px solid rgb(187, 187, 187);
padding: 0px 5px;
background: none repeat scroll 0% 0% rgb(238, 238, 238);
text-align: left;
font-weight: bold;
}
table.standard-table td {
padding: 5px;
border: 1px solid rgb(204, 204, 204);
text-align: left;
vertical-align: top;
width:25%;
height:auto;
}
#img3 {
height:100%;
}
saturate()
Насичення. Робить зображення більш насиченими. Значення ‘amount
’ визначає пропорцію конвертації. Зі значенням "0%
" зображення стає повністю ненасиченим. Значення "100%
" залишає зображення без змін. Інші значення є лінійними множниками (мультиплікаторами) ефекта. Значення, більші за "100%"
дозволяються і забеспечують більш насиченими результатами. Якщо параметр ‘amount
’ відсутній, використовується значення "1".
filter: saturate(200%)
<table class="standard-table">
<thead>
<tr>
<th align="left" scope="col">Original image</th>
<th align="left" scope="col">Live example</th>
<th align="left" scope="col">SVG Equivalent</th>
<th align="left" scope="col">Static example</th>
</tr>
</thead>
<tbody>
<tr>
<td><img alt="Test_Form_9.jpeg" id="img1" class="internal default" src="/files/3722/Test_Form_9.jpeg" style="width: 100%;" /></td>
<td><img alt="Test_Form_9.jpg" id="img2" class="internal default" src="/files/3722/Test_Form_9.jpeg" style="width: 100%;" /></td>
<td><div class="svg-container"><svg xmlns="https://www.w3.org/2000/svg" id="img3" viewbox="0 0 201 239">
<filter id="saturate">
<feColorMatrix type="saturate"
values="2"/>
</filter>
<image xlink:href="/files/3722/Test_Form_9.jpeg" filter="url(#saturate)" width="201px" height="239px" />
</svg><div></td>
<td><img alt="Test_Form_9_s.jpg" id="img4" class="internal default" src="/files/3724/Test_Form_9_s.jpeg" style="width: 100%;" /></td>
</tr>
</tbody>
</table>
html {
height:100%;
}
body {
font: 14px/1.286 "Lucida Grande","Lucida Sans Unicode","DejaVu Sans",Lucida,Arial,Helvetica,sans-serif;
color: rgb(51, 51, 51);
height:100%;
overflow:hidden;
}
#img2 {
width:100%;
height:auto;
-moz-filter: saturate(200%);
-webkit-filter: saturate(200%);
-o-filter: saturate(200%);
-ms-filter: saturate(200%);
filter: saturate(200%); }
table.standard-table {
border: 1px solid rgb(187, 187, 187);
border-collapse: collapse;
border-spacing: 0px;
margin: 0px 0px 1.286em;
width: 85%;
height: 100%;
}
table.standard-table th {
border: 1px solid rgb(187, 187, 187);
padding: 0px 5px;
background: none repeat scroll 0% 0% rgb(238, 238, 238);
text-align: left;
font-weight: bold;
}
table.standard-table td {
padding: 5px;
border: 1px solid rgb(204, 204, 204);
text-align: left;
vertical-align: top;
width:25%;
height:auto;
}
#img3 {
height:100%;
}
sepia()
Сепія. Конвертує зображення до сепії. Значення ‘amount
’ визначає пропорцію конвертації. Значення "100%
" конвертує зображення повністю. Значення "0%"
залишає зображення без змін. Значення між "0%
" та "100%
" є лінійними множниками (мультиплікаторами) ефекта. Якщо параметр ‘amount’ відсутній, використовується значення "0
".
filter: sepia(100%)
<table class="standard-table">
<thead>
<tr>
<th align="left" scope="col">Original image</th>
<th align="left" scope="col">Live example</th>
<th align="left" scope="col">SVG Equivalent</th>
<th align="left" scope="col">Static example</th>
</tr>
</thead>
<tbody>
<tr>
<td><img alt="Test_Form_12.jpeg" id="img1" class="internal default" src="/files/3727/Test_Form_12.jpeg" style="width: 100%;" /></td>
<td><img alt="Test_Form_12.jpg" id="img2" class="internal default" src="/files/3727/Test_Form_12.jpeg" style="width: 100%;" /></td>
<td><div class="svg-container"><svg xmlns="https://www.w3.org/2000/svg" id="img3" viewbox="0 0 259 194">
<filter id="sepia">
<feColorMatrix type="matrix"
values="0.393 0.769 0.189 0 0
0.349 0.686 0.168 0 0
0.272 0.534 0.131 0 0
0 0 0 1 0"/>
</filter>
<image xlink:href="/files/3727/Test_Form_12.jpeg" filter="url(#sepia)" width="259px" height="194px" />
</svg><div></td>
<td><img alt="Test_Form_12_s.jpg" id="img4" class="internal default" src="/files/3728/Test_Form_12_s.jpg" style="width: 100%;" /></td>
</tr>
</tbody>
</table>
html {
height:100%;
}
body {
font: 14px/1.286 "Lucida Grande","Lucida Sans Unicode","DejaVu Sans",Lucida,Arial,Helvetica,sans-serif;
color: rgb(51, 51, 51);
height:100%;
overflow:hidden;
}
#img2 {
width:100%;
height:auto;
-moz-filter: sepia(100%);
-webkit-filter: sepia(100%);
-o-filter: sepia(100%);
-ms-filter: sepia(100%);
filter: sepia(100%); }
table.standard-table {
border: 1px solid rgb(187, 187, 187);
border-collapse: collapse;
border-spacing: 0px;
margin: 0px 0px 1.286em;
width: 85%;
height: 100%;
}
table.standard-table th {
border: 1px solid rgb(187, 187, 187);
padding: 0px 5px;
background: none repeat scroll 0% 0% rgb(238, 238, 238);
text-align: left;
font-weight: bold;
}
table.standard-table td {
padding: 5px;
border: 1px solid rgb(204, 204, 204);
text-align: left;
vertical-align: top;
width:25%;
height:auto;
}
#img3 {
height:100%;
}
Combining functions
Можна комбінувати будь-яку кількість функцій для маніпулювання рендерингом. Наступні приклади посилюють контрастність та яскравість зображення.
filter: contrast(175%) brightness(103%)
<table class="standard-table">
<thead>
<tr>
<th align="left" scope="col">Original image</th>
<th align="left" scope="col">Live example</th>
<th align="left" scope="col">Static example</th>
</tr>
</thead>
<tbody>
<tr>
<td><img alt="Test_Form_8.jpeg" id="img1" class="internal default" src="/files/3729/Test_Form_8.jpeg" style="width: 100%;" /></td>
<td><img alt="Test_Form_8.jpg" id="img2" class="internal default" src="/files/3729/Test_Form_8.jpeg" style="width: 100%;" /></td>
<td><img alt="Test_Form_8_s.jpg" id="img4" class="internal default" src="/files/3730/Test_Form_8_s.jpeg" style="width: 100%;" /></td>
</tr>
</tbody>
</table>
html {
height:100%;
}
body {
font: 14px/1.286 "Lucida Grande","Lucida Sans Unicode","DejaVu Sans",Lucida,Arial,Helvetica,sans-serif;
color: rgb(51, 51, 51);
height:100%;
overflow:hidden;
}
#img2 {
width:100%;
height:auto;
-moz-filter: contrast(175%) brightness(103%);
-webkit-filter: contrast(175%) brightness(103%);
-o-filter: contrast(175%) brightness(103%);
-ms-filter: contrast(175%) brightness(103%);
filter: contrast(175%) brightness(103%);
}
table.standard-table {
border: 1px solid rgb(187, 187, 187);
border-collapse: collapse;
border-spacing: 0px;
margin: 0px 0px 1.286em;
width: 85%;
height: 100%;
}
table.standard-table th {
border: 1px solid rgb(187, 187, 187);
padding: 0px 5px;
background: none repeat scroll 0% 0% rgb(238, 238, 238);
text-align: left;
font-weight: bold;
}
table.standard-table td {
padding: 5px;
border: 1px solid rgb(204, 204, 204);
text-align: left;
vertical-align: top;
width:25%;
height:auto;
}
#img3 {
height:100%;
}
Specifications
Browser compatibility
Feature |
Chrome |
Firefox (Gecko) |
Internet Explorer |
Opera |
Safari (WebKit) |
Basic support |
18.0-webkit[1] |
35 (35)[2] |
No support[3] |
15.0-webkit |
6.0-webkit |
On SVG Elements |
No support[4] |
35 (35) |
No support |
No support |
No support |
Feature |
Android |
Firefox Mobile (Gecko) |
IE Mobile |
Opera Mobile |
Safari Mobile |
Basic support |
4.4-webkit |
35 (35)[2] |
No support |
22.0 (Yes)-webkit |
6.0 (Yes)-webkit
|
On SVG Elements |
No support[4] |
35 (35) |
No support |
No support |
No support |
[1] У Chrome 18 to 19, функція saturate()
приймає тільки цілі десяткові числа та відсоткові значання. Цей баг виправлений у Chrome 20 та наступних.
[2] До Firefox 34, Gecko виконував тільки url()
форму властивості filter
; так як формування ланцюжка (chaining) тоді не було реалізовано, було дозволено тільки одне url()
(або коли layout.css.filters.enabled
pref було встановлене як false
).
Функціональні значення filter
контролюються layout.css.filters.enabled
pref і був доступним, але заборонений за замовчуванням у Firefox 34.
[3] Internet Explorer з 4.0 по 9.0 виконував нестандартну властивіст filter
. Синтаксис сильно відрізняється і не був тут задокументований.
[4] У даний момент Blink не виконує дану властивість(feature). Дивіться bug 109224.
See also