html 使用没有javascript的svg掩码将一个图像掩盖在另一个上面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html 使用没有javascript的svg掩码将一个图像掩盖在另一个上面相关的知识,希望对你有一定的参考价值。
body {
padding: 0;
margin: 0;
border: 20px solid #03374c;
}
.main-hero {
position: relative;
height: 90vh;
min-height: 600px;
}
.hero-bg-orng {
clip-path: url(#clipping) 50%;
-webkit-clip-path: url(#clipping);
text-align: center;
position: relative;
background-repeat: no-repeat;
background-image: url('bg-main-orange.jpg');
background-position: center top;
background-size: cover;
fill: #ff7e11;
width: 100%;
height: 100%;
}
.hero-text-label {
top: 35vh;
padding-top: 16px;
position: absolute;
z-index: 100;
height: auto;
margin: auto;
width: 100%;
}
.hero-text-label h1{
color: #FFF;
width: 100%;
line-height: 4.6rem;
font-size: 5rem;
font-weight: 100;
text-align: center;
margin: 0;
padding: 0;
}
.hero-text-label h1.fist-line {
font-size: 5rem;
}
.hero-text-label h1.second-line {
font-size: 4.2rem;
}
#clipping {
width: 100%;
/*width 445 will use 1/2 of it in css, will be recalculated for all elements, 445/2=222px*/
transform: translateX(calc(50vw - 240px)) translateY(35vh); /*will work in oll modern browsers*/
fill: #ff7e11;
text-align: center;
}
.hero-bg {
position: absolute;
top:0;
width: 100%;
height: 100%;
}
.hero-text {
position: relative;
display: block;
z-index: 10;
text-align: center;
}
.svg-mask {
position: absolute;
display: block;
margin: auto;
}
.bg-blue {
position: absolute;
top:0;
width: 100%;
height: 100%;
background-color: #007b8a;
background-repeat: no-repeat;
background-image: url('bg-main-blue.jpg');
background-position: center top;
background-size: cover;
margin-bottom: 250px;
z-index: 1;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<!-- SVG markup for the mask -->
<svg class="svg-mask" width="100%" height="178px" >
<defs>
<!--width 445 -->
<clipPath id="clipping" text-anchor="middle">
<path d="M0.000,-0.000 L0.000,95.000 L46.000,96.000 L46.000,178.000 L397.000,170.000 L397.000,106.000 L444.656,107.000 L444.656,7.000 L0.000,-0.000 Z"/>
</clipPath>
</defs>
</svg>
<!--end of inlined svg-->
<div class="main-hero">
<div class="hero-text-label">
<h1 class="fist-line">Invest with</h1>
<h1 class="second-line">CBOE Vest</h1>
</div>
<div class="hero-text hero-bg-orng">
<!--or place text here it will be masked-->
</div>
<div class="bg-blue"></div>
</div>
</body>
</html>
以上是关于html 使用没有javascript的svg掩码将一个图像掩盖在另一个上面的主要内容,如果未能解决你的问题,请参考以下文章
将带有掩码和符号的 SVG 转换为纯 SVG 文件?
SVG注入的后备,没有Javascript / SVG支持
如何使用javascript动态更改html中svg的文本内容
如果存在媒体查询,则 SVG 掩码不起作用
具有多个视频源的SVG掩码?
Javascript 函数未在单击时定义 SVG 元素