#css #css3 #svg #адаптивная_верстка #clip_path
В следующем примере блок main (синезелёный градиент) обрезается при помощи clip-path и принимает форму сердечка. Однако видно, что он обрезается в масштабе 1:1, а хотелось бы, чтобы форма обрезки растягивалась по размеру блока (по аналогии с тем, как у background-size работает cover, contain или 100% 100%). https://jsfiddle.net/a5goLyds/ html, body, main { margin: 0; height: 100%; } svg { width: 10em; float: right; position: relative; z-index: 1; } main { background: linear-gradient(to bottom, green, blue); clip-path: url(#heart-clip); }
Ответы
Ответ 1
К сожалению я не нашёл clip-path генераторов, которые позволяли бы рисовать кривыми линиями. Есть генераторы, которые рисуют прямыми линиями по узловым точкам: https://codepen.io/jh3y/pen/XqVQqa http://bennettfeely.com/clippy/ Для многоугольника получаю вот такие значения clip-path: polygon(50% 0%, 80% 10%, 100% 35%, 100% 70%, 80% 90%, 50% 100%, 20% 90%, 0% 70%, 0% 35%, 20% 10%); Преобразую для svg clip-path в доли от единицы:Чтобы получить масштабируемый clip-path, например при наведении курсора, нужно менять размер изображения в сторону увеличения, соответственно увеличится и clip-path, обрезая это изображение. svg {} main { width: 15%; height: 15%; background: linear-gradient(to bottom, green, blue); clip-path: url(#heart-clip); transition: 1s; } main:hover { width: 100%; height: 100%; } Ответ 2
Ничего не меняя в авторском примере - ввожу туда:
Комментариев нет:
Отправить комментарий