CSS-функция `-moz-image-rect()`
Устарело: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут по-прежнему её поддерживать, она уже могла быть исключена из соответствующих веб-стандартов, её могут готовиться удалить или сохранять только для обеспечения совместимости. Избегайте её использования и по возможности обновите существующий код; при принятии решения обратитесь к таблице совместимости внизу этой страницы. Учтите, что эта функция может перестать работать в любой момент.
Нестандартная функция: Эта функция не является стандартной и не входит в процесс стандартизации. Не используйте её на общедоступных производственных сайтах: она будет работать не у всех пользователей. Кроме того, реализации могут существенно различаться, а поведение функции может измениться в будущем.
Нестандартная функция: Эта функция не является стандартной и не входит в процесс стандартизации. Не используйте её на общедоступных производственных сайтах: она будет работать не у всех пользователей. Кроме того, реализации могут существенно различаться, а поведение функции может измениться в будущем.
Значение -moz-image-rect для CSS background-image позволяет использовать часть большого изображения в качестве фона.
Синтаксис
-moz-image-rect(url("my-url"), top, right, bottom, left);
Значения
-
<url> - URI изображения, из которого берётся фрагмент.
-
top - Верхняя граница фрагмента внутри указанного изображения, заданная целым числом (
<integer>) или в процентах (<percentage>). -
right - Правая граница фрагмента внутри указанного изображения, заданная целым числом (
<integer>) или в процентах (<percentage>). -
bottom - Нижняя граница фрагмента внутри указанного изображения, заданная целым числом (
<integer>) или в процентах (<percentage>). -
left - Левая граница фрагмента внутри указанного изображения, заданная целым числом (
<integer>) или в процентах (<percentage>).
Описание
Это свойство позволяет, например, использовать разные части одного большого изображения в качестве фонов в разных частях содержимого.
Синтаксис прямоугольника похож на синтаксис функции rect(), создающей тип CSS <shape>. Все четыре значения отсчитываются от верхнего левого угла изображения.
Примеры
В этом примере загружается изображение, которое разделяется на четыре части для создания логотипа Firefox в четырёх блоках <div>. При нажатии на контейнер четыре части поворачиваются: значения свойства background-image меняются местами между четырьмя блоками <div>.
CSS
В CSS сначала задаётся стиль контейнера, а затем стили четырёх блоков, из которых состоит полное изображение.
Контейнер выглядит так:
#container {
width: 267px;
height: 272px;
top: 100px;
left: 100px;
position: absolute;
font-size: 16px;
text-shadow: white 0px 0px 6px;
text-align: center;
}
Затем задаются четыре блока, определяющие фрагменты изображения. Рассмотрим их по очереди.
#box1 {
background-image: -moz-image-rect(url("firefox.png"), 0%, 50%, 50%, 0%);
width: 133px;
height: 136px;
left: 0px;
top: 0px;
position: absolute;
}
Это верхний левый угол изображения. Он задаёт прямоугольник, содержащий верхнюю левую четверть изображения из файла firefox.jpg.
#box2 {
background-image: -moz-image-rect(url("firefox.png"), 0%, 100%, 50%, 50%);
width: 133px;
height: 136px;
left: 133px;
top: 0px;
position: absolute;
}
Это верхний правый угол изображения.
Остальные углы задаются аналогичным образом:
#box3 {
background-image: -moz-image-rect(url("firefox.png"), 50%, 50%, 100%, 0%);
width: 133px;
height: 136px;
left: 0px;
top: 136px;
position: absolute;
}
#box4 {
background-image: -moz-image-rect(url("firefox.png"), 50%, 100%, 100%, 50%);
width: 133px;
height: 136px;
left: 133px;
top: 136px;
position: absolute;
}
HTML
Добавим контейнер с четырьмя блоками:
<div id="container"> <div id="box1">Top left</div> <div id="box2">Top right</div> <div id="box3">Bottom left</div> <div id="box4">Bottom right</div> </div>
Так четыре фрагмента изображения размещаются в сетке из двух строк и двух столбцов. Все четыре фрагмента находятся внутри большего блока <div>, основное назначение которого — получать события щелчка и передавать их нашему коду JavaScript.
JavaScript
Этот код обрабатывает событие щелчка мышью по контейнеру.
function rotate() {
let prevStyle = window
.getComputedStyle(document.getElementById("box4"), null)
.getPropertyValue("background-image");
// Now that we've saved the last one, start rotating
for (let i = 1; i <= 4; i++) {
const curId = `box${i}`;
// Shift the background images
const curStyle = window
.getComputedStyle(document.getElementById(curId), null)
.getPropertyValue("background-image");
document.getElementById(curId).style.backgroundImage = prevStyle;
prevStyle = curStyle;
}
}
document.getElementById("container").addEventListener("click", rotate);
С помощью window.getComputedStyle() этот код получает стили каждого элемента и сдвигает их к следующему элементу. Обратите внимание: перед началом сдвига сохраняется копия стиля последнего блока, так как стиль третьего элемента перезапишет его. При каждом щелчке мышью значения свойства background-image копируются из одного элемента в следующий, что и позволяет получить нужный эффект.
Результат
Спецификации
Не входит ни в один стандарт.
Совместимость с браузерами
| Компьютерные устройства | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari для iOS | Samsung Internet | WebView для Android | WebView для iOS | |
-moz-image-rect |
Нет |
Нет |
4–120 |
Нет |
Нет |
Нет |
4–120 |
Нет |
Нет |
Нет |
Нет |
Нет |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/-moz-image-rect