У меня есть один элемент с неповторяющимся background-image
в background-position: 4px 4px
. Изображение является аватаром, а справа - один абзац с margin-left: 120px
, поэтому текст не пересекает background-image
. Я уже выполнил эффект на элемент изображения, однако, чтобы закрепить мое понимание масок CSS, я хотел определить, как применить этот же эффект к background-image
. Вот мой текущий код (фуксия использовалась только для моей отладки и теперь здесь, чтобы помочь визуализировать проблему):
/***
-webkit- prefixes automatically appended by my system software.
Testing with Waterfox first, Chrome second.
***/
background-color: #f0f;
background-image: url(avatar.png);
mask-image: radial-gradient(ellipse at center, rgba(255,255,255,1) 1%,rgba(255,255,255,1) 50%,rgba(255,255,255,0) 70%,rgba(255,255,255,0) 100%);
mask-position: 4px 4px;
mask-size: 100px 100px;
![Repeating Mask Overflow](https://i.stack.imgur.com/w7BJm.png)
Установка mask-repeat: no-repeat;
скрывает все остальное (например, дочерний элемент абзаца), а большинство других значений mask-repeat
просто повторяют эффект окружности, как показано на примере изображения. Я просматривал документацию по маске в Mozilla Developer Network, хотя, похоже, ничего не помогло. Конечно, я мог бы возиться с контентом, созданным с помощью CSS, однако я бы не стал изучать что-либо и ограничивал бы свои собственные возможности дизайна.
Как замаскировать только часть элемента с помощью CSS, не скрывая остальную часть элемента или его дочерние элементы?
Для каждого комментария здесь есть XML и CSS.
<section class="preface">
<div class="synopsis"><p>Some text.</p></div>
</section>
.preface {overflow: auto;}
.preface .synopsis
{
background-image: url(images/avatars/john.gif);
background-position: 4px 4px;
background-repeat: no-repeat;
float: left;
height: 108px;
mask-image: radial-gradient(ellipse at center, rgba(255,255,255,1) 1%,rgba(255,255,255,1) 50%,rgba(255,255,255,0) 70%,rgba(255,255,255,0) 100%);
mask-position: 4px 4px;
mask-size: 100px 100px;
min-height: 108px;
overflow: auto;
position: relative;
width: 75%;
}