Spec-Zone.ru › Web APIs

SVGStyleElement: свойство media

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

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

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

Свойство SVGStyleElement.media — это строка запроса к медиа, соответствующая атрибуту media данного элемента SVG-стиля.

Запрос должен быть выполнен для применения стиля.

Значение

Строка, определяющая список допустимых запросов к медиа с одним или несколькими значениями, разделёнными запятыми. Например "screen, print", или "all" (значение по умолчанию).

Значение инициализируется строкой, указанной в соответствующем атрибуте стиля media.

Примеры

В этом примере показано, как программно получить и установить свойство media для стиля, определённого в определении SVG.

HTML

HTML содержит определение SVG для <circle> с элементом <style>, который условлен запросом к медиа "all and (min-width: 600px)". Мы также определяем button, который будет использоваться для отображения текущего стиля и изменения стиля.

<button></button>
<svg
  xmlns="http://www.w3.org/2000/svg"
  xmlns:xlink="http://www.w3.org/1999/xlink">
  <circle cx="60" cy="60" r="50" />
</svg>

JavaScript

Нижеприведённый код получает элемент style (элемент SVGStyleElement ) по его идентификатору.

const svg = document.querySelector("svg");
// Create the `style` element in the SVG namespace
const style = document.createElementNS("http://www.w3.org/2000/svg", "style");
const node = document.createTextNode("circle { fill: red; }");
svg.appendChild(style);
style.appendChild(node);

Затем мы добавляем функцию, которая устанавливает текст кнопки для отображения текущего значения свойства media стиля вместе с текущей шириной окна. Эта функция вызывается для установки начального текста кнопки, а также при изменении размера окна или нажатии на кнопку. Обработчик события кнопки также устанавливает значение свойства media стиля.

const button = document.querySelector("button");

function setButtonText() {
  button.textContent = `Media: ${style.media} (Width: ${window.innerWidth})`;
}
setButtonText();

addEventListener("resize", () => {
  setButtonText();
});

button.addEventListener("click", () => {
  style.media = "all and (min-width: 700px)";
  setButtonText();
});

Результат

Результат показан ниже. Текст кнопки показывает значение атрибута media, первоначально применённого к SVG-стилю, а также ширину текущей области (поскольку код выполняется в области). Уменьшите ширину области до ширины, указанной в запросе к медиа на кнопке, чтобы наблюдать за применением стиля. Нажмите на кнопку, чтобы переключить значение свойства media стиля (что будет отражено на кнопке).

Примечание: Свойство media может быть установлено на любую строку, но будет проигнорировано, если строка не является допустимым запросом к медиа.

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

Спецификация
Векторная графика масштабируемого размера (SVG) 2
# __svg__SVGStyleElement__media

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
media 1 12 1.5 ≤12.1 3 18 4 ≤12.1 1 1.0 3

См. также

  • HTMLStyleElement.media

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

Spec-Zone.ru

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