PHP定义梯形,CSS怎样做出梯形的标签页

这次给大家带来CSS怎样做出梯形的标签页,CSS做出梯形标签页的注意事项有哪些,下面就是实战案例,一起来看一下。

在web设计中,梯形标签页是很常见的一种形式,但是梯形又是一种很难实现的样式,很多开发者会直接用梯形背景图片来生成效果,但是采用背景图片的方式产生了额外的http请求,并不是一种非常理想的方式,这里笔者为大家带来一种直接用css来实现梯形效果的方法。

以一个简单的p为例:

这是一个梯形

.p{

position: relative;

display: inline-block;

padding: .5em 1em .35em;

color: white;

}

.p::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来对比查看效果,这里笔者将两种结果都展示出来:

086f76a3f4b80a5724c56c6ec7252ce8.png

50fec9ea9bf148ea8e7cc4e82ccefedf.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;

}

产生的效果图是这样的:

a39cde1477e646fe021f84b9c6669eda.png

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

1c29a0e71f2453487892c90e9188fade.png

3c1f56f04631b75651d463768f7aa187.png

d7a4c47437828c3d2f060c94f3ab1454.png

73fcafe790c2f3a8facc762f31336df7.png

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部