html梯形选项卡,CSS如何实现梯形标签页

CSS如何实现梯形标签页

发布时间:2021-03-19 11:59:32

来源:亿速云

阅读:92

作者:小新

小编给大家分享一下CSS如何实现梯形标签页,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

以一个简单的div为例:

这是一个梯形
.div{

position: relative;

display: inline-block;

padding: .5em 1em .35em;

color: white;

}

.div::before{

content: ''; /*用伪元素来生成一个矩形*/

position: absolute;

top: 0;

right: 0;

bottom: 0;

left: 0;

z-index: -1;

background: #58a;

transform: scaleY(1.3) perspective(.5em) rotateX(5deg);

transform-origin: bottom;

}

如果我们直接对元素结点进行3D变形,那么元素内的内容也会产生变形,这是一种不理想的效果,所以这里利用伪元素,将变形效果作用到伪元素上,就可以实现理想的效果。在这里,变形的时候,我们固定住了底部,它的高度是会发生变化的,所以通过scaleY(1.3)来补足它在高度上的缩水。读者可以去掉scaleY(1.3)和transform-origin来对比查看效果,这里笔者将两种结果都展示出来:

7c9229cced5e7ec4c2a8665c30a79b93.png

1abee3dbe957c99d79843b75d465d15f.png

这是没有scaleY和transform-origin产生的结果

这是上述代码产生的样式结果

既然一个梯形标签产生了,那我们就可以进一步生成多个标签页,这里笔者为大家带来一个简单的示例。

Home

Projects

About

nav>a{

position: relative;

display: inline-block;

padding: .3em 1em 0;

}

nav>a::before{

content: '';

position: absolute;

top: 0;

right: 0;

bottom: 0;

left: 0;

z-index: -1;

background: #ccc;

background-image: linear-gradient(hsla(0,0%,100%,.6),hsla(0,0%,100%,0));

border: 1px solid rgba(0,0,0,.4);

border-bottom: none;

border-radius: .5em .5em 0 0;

transform: perspective(.5em) rotateX(5deg);

transform-origin: bottom;

}

产生的效果图是这样的:

6c8c5980c5b6f5fd4aec9cd7623e54b2.png

读者可以改变transform-origin的属性为:left,right,bottom left, left right等查看不同的效果,这里笔者为大家展示几种效果:

64e31228980652cd54158e5663edbffd.png

9436f2e86a4e0450bae73fe79fdbd654.png

31c6b1ffc5d8bf2c47708397dc9bc7b9.png

9553ee6d286875966de853fbfe9ed204.png

以上是“CSS如何实现梯形标签页”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值