Как сделать прозрачную маску?

196
28 марта 2018, 03:12

Как сделать этот треугольник средствами css? Пробовал через clip и через border, но как-то всё тщетно

Answer 1

Это делается с помощью псевдоэлементов, задавая определённый размер border'у:

* { 
  margin: 0; 
  padding: 0; 
} 
 
body { 
  display: flex; 
  justify-content: center; 
  align-items: center; 
} 
 
.wrapper { 
  margin: 1rem; 
  position: relative; 
} 
 
.wrapper img { 
  width: 100%; 
} 
 
.wrapper::before { 
  content: ""; 
  display: block; 
  position: absolute; 
  top: 0; 
  border-top: 250px solid; 
  border-left: 250px solid; 
  border-color: transparent rgba(255, 255, 0, 0.5); 
} 
 
.wrapper::after { 
  content: ""; 
  position: absolute; 
  top: 0; 
  border: none; 
  border-bottom: 250px solid; 
  border-right: 250px solid; 
  border-color: transparent rgba(255, 0, 255, 0.5); 
}
<div class="wrapper"> 
  <img src="https://via.placeholder.com/250x250"> 
</div>

Вариант на SVG (Adaptive):

* { 
  margin: 0; 
  padding: 0; 
}
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/2000/svg" version="1.1" viewBox="0 0 500 500"> 
  <g> 
    <image xlink:href="https://via.placeholder.com/200x200"/> 
    <polygon points="0, 0 0, 200 200,200" fill="rgba(255, 0, 255, 0.5)"/> 
    <polygon points="200, 0 200, 200 0,0" fill="rgba(255, 255, 0, 0.5)"/> 
  </g> 
</svg>

READ ALSO
Не верная минимизация css

Не верная минимизация css

Через Css optimizer оптимизировал css, однако вот это:

211
Пространство имён для CSS

Пространство имён для CSS

Есть файл css шаблона и есть файл css библиотеки, они конфликтуютКак решить эту проблему? Может быть можно как-то сделать быстро отдельное пространство...

219