CSS element() — елемент сторінки як фон
Опис
автор: Bond
Загальний опис
автор: NagarD
- Порада
-
Використовуючи функцію
автор: Bondelement(), впевніться, що HTML елемент, який ви використовуєте, відповідає вашим потребам щодо розміру, зображення, інших властивостей тощо. - Нотатка
-
На деяких браузерах Gecko можна використовувати нестандартний метод
автор: Bonddocument.mozSetImageElement()для зміни елемента, який використовується як фон для заданого CSS елемента з фоном. - Нотатка
-
Значення можуть бути будь-якими елементами HTML з можливими стилізаціями та властивостями.
автор: Bond
Синтаксис
element(<id>);
Функція element може отримувати єдине значення:
-
<id> -
Ідентифікатор HTML елемента, що використовується як фонове зображення.
автор: Bond
| Значення без задання: | none |
|---|
Переглядачі
| Переглядач | |
|---|---|
| 60 |
| Переглядач | |
|---|---|
| 60 |
Приклади
+ запропонувати свій приклад у пісочниці
Використання функції element() для створення фону.
HTML
<div id="description">
<h2>Приклад</h2>
<p>Використання функції <code>element()</code> для створення фону</p>
</div>
<div id="result">
<div class="box">
<p>Цей блок використовує елемент з ідентифікатором #myBackground1 як фон!</p>
</div>
</div>
<div style="overflow:hidden; height:0;">
<div id="myBackground1" class="background">
<p class="rotated-text">
Цей текст є частиною фону
</p>
</div>
</div>
CSS
#description {
font-style: italic;
text-align: left;
line-height: 1.5;
margin-bottom: 50px;
padding: 12px 16px;
background-color: #f7f7f7;
border: 1px solid #ccc;
}
#result {
display: flex;
justify-content: center;
align-items: center;
height: 200px;
}
.box {
padding: 5px;
width: 200px;
height: 200px;
background: -moz-element(#myBackground1) no-repeat;
}
.background {
width: 1024px;
height: 1024px;
background-image: linear-gradient(to right, red, orange, yellow, white);
}
.rotated-text {
transform-origin: 0 0;
transform: rotate(45deg);
color: white;
}
Ліворуч — джерело, звичайний блок із градієнтом і текстом. Праворуч — три відображення через -moz-element(#dzherelo): розтягнуте на всю коробку, плиткою й у зменшеному масштабі. Останнє відображення дивиться на джерело зі display: none — і лишається порожнім. ⚠️ У браузерах, крім Firefox, усі чотири коробки будуть порожні: безпрефіксного element() не існує.
HTML
<div class="stage">
<figure>
<div id="dzherelo" class="src">ЖИВЕ ДЖЕРЕЛО</div>
<figcaption>джерело — звичайний блок із id</figcaption>
</figure>
<figure>
<div class="mirror fill"></div>
<figcaption>background-size: 100% 100%</figcaption>
</figure>
<figure>
<div class="mirror tile"></div>
<figcaption>плиткою, background-size: 60px 30px</figcaption>
</figure>
<figure>
<div class="mirror hidden-src"></div>
<figcaption>джерело з display: none — порожньо</figcaption>
</figure>
</div>
<div id="prykhovane" class="offscreen">СХОВАНЕ ЗА ЕКРАНОМ</div>
<div id="nemaie" class="none">не малюється</div>
<figure class="wide">
<div class="mirror offscreen-mirror"></div>
<figcaption>а це джерело винесено за екран через position: fixed;
left: -200vw — воно малюється, тож дзеркало працює</figcaption>
</figure>
CSS
.stage {
display: flex;
flex-wrap: wrap;
gap: 16px;
}
figure {
margin: 0;
width: 180px;
}
figcaption {
margin-top: 6px;
color: #5a6472;
font: 12px/1.35 ui-monospace, monospace;
}
.src {
display: flex;
align-items: center;
justify-content: center;
width: 180px;
height: 90px;
background: linear-gradient(135deg, #f2b134, #2f6fd0);
color: #fff;
font: 700 14px/1 system-ui, sans-serif;
}
.mirror {
width: 180px;
height: 90px;
border: 2px dashed #b9c6d8;
background-repeat: no-repeat;
}
.fill {
background-image: -moz-element(#dzherelo);
background-size: 100% 100%;
}
.tile {
background-image: -moz-element(#dzherelo);
background-size: 60px 30px;
background-repeat: repeat;
}
.hidden-src {
background-image: -moz-element(#nemaie);
background-size: 100% 100%;
}
.offscreen-mirror {
background-image: -moz-element(#prykhovane);
background-size: 100% 100%;
}
.offscreen {
position: fixed;
left: -200vw;
top: 0;
display: flex;
align-items: center;
justify-content: center;
width: 180px;
height: 90px;
background: linear-gradient(135deg, #3a9a4f, #1b4f9c);
color: #fff;
font: 700 14px/1 system-ui, sans-serif;
}
.none {
display: none;
width: 180px;
height: 90px;
background: #c0392b;
}
.wide {
width: 380px;
margin-top: 18px;
}
Коментарі
Коментарів ще немає — будьте першим!