Spec-Zone.ru › CSS

Заполнение

Базовая линия Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с января 2020 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзывы

Свойство fill CSS определяет, как содержимое SVG-текста и внутренняя область SVG-фигур заполняются или окрашиваются. Если оно присутствует, оно переопределяет атрибут элемента fill.

Области внутри контура SVG-фигуры или текста окрашиваются. Что считается «внутри» фигуры, не всегда очевидно. Контуры, определяющие фигуру, могут перекрываться. Области, считающиеся «внутри» этих сложных фигур, уточняются свойством или атрибутом fill-rule.

Если подпути открыты, fill закрывает путь перед окраской, как если бы была включена команда «closepath», соединяющая последнюю точку подпути с первой точкой подпути. Другими словами, fill применяется к открытым подпутям внутри path элементов (т.е. подпутям без команды closepath) и polyline элементов.

Примечание: Свойство fill применяется только к <circle>, <ellipse>, <path>, <polygon>, <polyline>, <rect>, <text>, <textPath>, <tref> и <tspan> элементам, вложенным в <svg>. Оно не применяется к другим SVG, HTML или псевдоэлементам.

Синтаксис

/* keywords */
fill: none;
fill: context-fill;
fill: context-stroke;

/* <color> values */
fill: red;
fill: hsl(120deg 75% 25% / 60%);

/* <url> values */
fill: url(#gradientElementID);
fill: url(star.png);

/* <url> with fallback */
fill: url(#gradientElementID) blue;
fill: url(star.png) none;

/* Global values */
fill: inherit;
fill: initial;
fill: revert;
fill: revert-layer;
fill: unset;

Значения

none

Никакое fill не окрашивается; области внутри обводки (если таковая есть) прозрачны.

context-fill

Использует значение цвета fill из контекстного элемента.

context-stroke

Использует значение цвета stroke из контекстного элемента.

<color>

Цвет заливки как любое допустимое значение CSS <color>.

<url>

Ссылка на URL-адрес элемента-сервера SVG для отрисовки, например, <linearGradient>, <radialGradient> или <pattern>. Ссылка на ресурс может быть дополнена <color> или none, которые будут использоваться в качестве резервного варианта, если сервер для отрисовки не найден.

Формальное определение

Начальное значение black
Применимо к Элементы SVG-фигур и текстового содержимого
Наследуется да
Вычисленное значение как указано, но с <color> значениями, вычисленными, и <url> значениями, приведенными к абсолютному виду
Тип анимации по типу вычисленного значения

Формальный синтаксис

fill = 
<paint>

<paint> =
none |
<image> |
<svg-paint>

<image> =
<url> |
<gradient>

<svg-paint> =
child |
child( <integer> )

<url> =
<url()> |
<src()>

<url()> =
url( <string> <url-modifier>* ) |
<url-token>

<src()> =
src( <string> <url-modifier>* )

Примеры

Определение значений заливки для SVG-элементов

Этот пример демонстрирует, как объявляется fill, эффект свойства и то, как свойство CSS fill имеет приоритет над атрибутом fill.

HTML

У нас есть SVG с двумя сложными фигурами, определенными с использованием SVG-элементов <polygon> и <path>. Оба имеют атрибут fill со значением #000 (что эквивалентно значению по умолчанию black). Мы добавляем темную серую обводку #666 с помощью атрибута SVG stroke, но могли бы использовать свойство stroke.

<svg viewBox="0 0 220 120" xmlns="http://www.w3.org/2000/svg">
  <path
    d="M 10,5 l 90,0 -80,80 0,-60 80,80 -90,0 z"
    stroke="#666"
    fill="#000" />
  <polygon
    points="180,10 150,100 220,40 140,40 210,100"
    stroke="#666"
    fill="#000" />
</svg>

CSS

Мы устанавливаем значения fill для фигур в SVG.

path {
  fill: red;
}
polygon {
  fill: hsl(0deg 100% 50% / 60%);
}

Результаты

Значение свойства CSS fill переопределяет значение атрибута SVG fill, в результате чего обе фигуры заполняются красным цветом; красный цвет многоугольника полупрозрачный.

Использование ключевых слов для значений fill

Этот пример демонстрирует использование ключевых слов для fill.

HTML

Мы включаем три элемента <path> и элемент <marker>, который добавляет круг <circle> к каждой точке пути. Мы устанавливаем черный цвет маркера круга с серым заполнением с помощью атрибутов SVG stroke и fill.

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 300 90">
  <path d="M 10 44.64 L 30 10 L 70 10 L 90 44.64 L 70 79.28 L 30 79.28 Z" />
  <path d="M 100 44.64 L 80 10 L 120 10 L 140 44.64 L 120 79.28 L 80 79.28 Z" />
  <path
    d="M 150 44.64 L 130 10 L 170 10 L 190 44.64 L 170 79.28 L 130 79.28 Z" />
  <marker
    id="circle"
    markerWidth="12"
    markerHeight="12"
    refX="6"
    refY="6"
    markerUnits="userSpaceOnUse">
    <circle cx="6" cy="6" r="3" stroke-width="2" stroke="black" fill="grey" />
  </marker>
</svg>

CSS

Мы задаем разные цвета stroke и fill для каждого пути. У первого пути с красной границей установлено fill со значением none. Мы устанавливаем цвет обводки и заливки маркера круга равным цвету обводки элемента, который он маркирует, используя значение context-stroke.

path {
  stroke-width: 2px;
  marker: url(#circle);
}
path:nth-of-type(1) {
  stroke: red;
  fill: none;
}
path:nth-of-type(2) {
  stroke: green;
  fill: lightgreen;
}
path:nth-of-type(3) {
  stroke: blue;
  fill: lightblue;
}
circle {
  stroke: context-stroke;
  fill: context-stroke;
}

Результаты

Обратите внимание, как первый путь имеет прозрачный фон, потому что fill установлено в none, переопределяя значение по умолчанию fill равное black. Круги заполнены цветом обводки. Если вы измените значение на context-fill, круги будут прозрачными, lightgreen и lightblue вместо red, green, и blue.

Заливки и резервные варианты

Этот пример демонстрирует, как включить значение url() с резервным вариантом как fill значение.

HTML

У нас есть SVG, содержащий две звезды <polygon> и <linearGradient>, которая переходит от зеленого к золотому и к красному.

<svg viewBox="0 0 220 120" xmlns="http://www.w3.org/2000/svg">
  <defs>
    <linearGradient id="myGradient">
      <stop offset="5%" stop-color="green" />
      <stop offset="50%" stop-color="gold" />
      <stop offset="95%" stop-color="red" />
    </linearGradient>
  </defs>
  <polygon points="80,10 50,100 120,40 40,40 110,100" />
  <polygon points="180,10 150,100 220,40 140,40 210,100" />
</svg>

CSS

Мы устанавливаем значения fill для многоугольников в SVG, предоставляя значение url() и резервный вариант.

polygon:first-of-type {
  fill: url("#myGradient") magenta;
}
polygon:last-of-type {
  fill: url("#MISSINGIMAGE") magenta;
}

Результаты

Первая звезда имеет градиент в качестве фона. Вторая звезда использует резервное значение, поскольку элемент, на который ссылается url() не существует.

Спецификации

Спецификация
Модуль CSS Заливка и обводка Уровень 3
# fill-shorthand

Совместимость с браузерами

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
fill ≤80 ≤80 ≤72 67 ≤13.1 80 79 57 ≤13.4 13.0 80

См. также

  • Атрибут SVG fill
  • Свойства представления: fill, clip-rule, color-interpolation-filters, fill-opacity, fill-rule, marker-end, marker-mid, marker-start, shape-rendering, stop-color, stop-opacity, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stroke-opacity, stroke-width, text-anchor и vector-effect
  • opacity
  • background-color
  • <color>
  • <basic-shape> тип данных

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/fill

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API