我需要使用css和html创建一个响应三角形。三角形将包含文本,随着文本的增加,我希望三角形的大小也增加。
以下是我创建的小提琴。
<div class="wrapper">
<div class="top-layer-content banner-notch"></div>
<a class="icon-play fa fa-play-circle-o" rel="lightbox" href="#">
<p> See it in action</p>
</a>
<div>
.wrapper{
position:relative;
}
.banner-notch {
width: 0;
height: 0;
border-bottom: 220px solid #000;
border-left: 220px solid transparent;
filter: alpha(opacity=50);
opacity: 0.6;
color:white;
position:relative;
float:right;
}
.wrapper a{
position:absolute;
top:130px;
right:20px;
color:white;
text-decoration:none;
font-size:25px;
background-position:0 50px;
}
.wrapper .fa-play-circle-o:before{
padding-left:38px;
}
.wrapper p{
font-size:16px;
}
我检查了以下链接,但似乎三角形的形状不同,文字似乎没有换行。文字开始溢出。
谢谢, Hardik
答案 0 :(得分:3)
您可以使用伪元素和transform:rotate()
制作一个适合其内容大小的三角形。
<强> FIDDLE 强>
这种技术可能需要根据您使用的上下文(带有宽度比的容器)和文本变大时所需的设计进行一些调整。
HTML:
<div class="wrapper">
<a class="icon-play fa fa-play-circle-o" rel="lightbox" href="#">
<p> See it in action</p>
</a>
</div>
CSS:
.wrapper{
position: relative;
float:right;
clear:right;
overflow:hidden;
z-index:1;
padding:0 1% 0 30%;
margin-right:5%;
}
.fa-play-circle-o{
display:block;
margin:130% 0 2%;
color:#fff;
text-decoration:none;
font-size:18px;
text-align:center;
}
.fa-play-circle-o:before{
font-size:30px;
}
.wrapper:after{
content:"";
position:absolute;
background-color:#666666;
width:500%;
height:100%;
top:0;right:0;
z-index:-1;
-ms-transform: rotate(-45deg);
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
-ms-transform-origin:100% 0;
-webkit-transform-origin:100% 0;
transform-origin:100% 0;
}
答案 1 :(得分:0)
我认为只使用CSS Gradient就可以了。由于我不熟悉渐变,我使用了online CSS gradient generator并执行了以下操作:
<强> CSS 强>
.triangle {
width: 300px;
border: 1px solid black;
background-image: -webkit-gradient(linear, left top, left top, color-stop(0, #000000), color-stop(0.5, #FFFFFF));
background-image: -o-linear-gradient(left top, #000000 0%, #FFFFFF 50%);
background-image: -moz-linear-gradient(left top, #000000 0%, #FFFFFF 50%);
background-image: -webkit-linear-gradient(left top, #000000 0%, #FFFFFF 50%);
background-image: -ms-linear-gradient(left top, #000000 0%, #FFFFFF 50%);
background-image: linear-gradient(to left top, #000000 0%, #FFFFFF 50%);
}
<强> Working Fiddle 强>