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

<div class="div">这是一个梯形</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来对比查看效果,这里笔者将两种结果都展示出来:


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

<nav><a href="#">Home</a><a href="#">Projects</a><a href="#">About</a>
</nav>
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;
}

产生的效果图是这样的:

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




感兴趣的读者可以自己尝试一些,如果有更好的方法,欢迎留言指教。

css实现梯形标签页相关推荐

  1. 梯形面积php,CSS实现梯形标签页

    在web设计中,梯形标签页是很常见的一种形式,但是梯形又是一种很难实现的样式,下面小编给大家分享使用CSS实现梯形标签页的代码,需要的朋友参考下吧 在web设计中,梯形标签页是很常见的一种形式,但是梯 ...

  2. JavaScript 实现 标签页 切换效果

    JavaScript 实现 标签页 切换效果 构建主体界面 HTML 代码 <h1>实现标签页的切换效果</h1> <ul id="tab">& ...

  3. JS实现标签页效果(配合css)不同标签下对应不同div

    显示页面tab.jsp <%@   page   language = "java"   import = "java.util.*"   pageEnc ...

  4. 用css和jquery实现标签页效果(一)

    用css和jQuery实现一个简单的标签页效果,用css实现斜边导航的效果,除了ie6其他的浏览器都支持, 其效果如下     css样式: <style type="text/css ...

  5. 自定义浏览器起始页、主页和标签页(html+css)

    以Chrome为例,自定义一个浏览器的起始页 Chrome的标签页有两个个人不太喜欢的点.一个是无法自定义浏览器的访问按钮,一个是搜索框在顶上的标签栏.在手机上,夸克浏览器的起始界面用户体验非常好,就 ...

  6. EasyUI中Tabs标签页的简单使用

    场景 效果 属性 tabs none 返回全部的标签页面板(tab panel). resize none 调整标签页(tabs)容器的尺寸并做布局. add options 添加一个新的标签页面板( ...

  7. 使用bootstrap标签页

    关键字:使用标签页,静态调用html页面(使用iframe内联框架) 完整代码如下: <!DOCTYPE html> <htmllang="en"> < ...

  8. easyui打开新的选项卡_Easyui Tabs 标签页/选项卡_EasyUI 插件

    通过 $.fn.tabs.defaults 重写默认的 defaults. The tabs display a collection of panel. It shows only one tab ...

  9. Chrome开发者工具Element style里的Computed标签页

    View only the CSS that's actually applied to an element 根据Chrome开发者工具文档介绍,styles标签页里显示的是所有施加到一个HTML ...

最新文章

  1. matlab中用于小数取整的函数的用法
  2. 对硕士而言,编制和稳定究竟有多重要?
  3. 区块链架构下 智慧城市发展加速
  4. go语言中的引用类型
  5. 速卖通新手入驻必须了解的“9大知识点”
  6. css 相同的css属性_CSS中的order属性
  7. 【评论分享有礼】毕业遇上疫情怎么办?4条技术指南轻松应对(内含求职、租房攻略)
  8. API接口设计之RESTful软件架构风格
  9. JAVA常用的快捷键
  10. linux关闭防火墙时出现问号乱码,linux文件名乱码问题的解决方...-tcp_wrappers防火墙配置方法-su 与 su - 的比较_169IT.COM...
  11. ApacheCN 活动汇总 2019.6.28
  12. 图片居中操作 空行 html,word中进行图片居中对齐批量设置的操作技巧
  13. 1049: 平方和与立方和 Python
  14. 刷穿剑指offer-Day11-链表I 基础介绍
  15. linux shell 发邮件
  16. 3-----A Forcast for Bicycle Rental Demand Based on Random Forests and Multiple Linear Regression
  17. 测试(测试开发)类相关面试题for互联网
  18. 如何在Cisco Packet Tracer中创建多个路由器虚拟局域网(方法一)
  19. Widget原理分析
  20. Effective Java 第三版读书笔记(类和接口)

热门文章

  1. 关于机器学习的定义的理解
  2. 2023 强制网站微信打开代码
  3. H5渠道、广告平台、地推、AppStore一站式数据监控平台
  4. HotSpot-多维属性的kpi异常定位(根因分析)
  5. 怎么提取pdf中的某一页?试试这三种提取办法
  6. (C语言)冒泡排序法(含代码)
  7. 超简单设置右键 VS Code 打开文件
  8. 电商管理后台功能介绍
  9. 从IPC到分布式软总线的随笔
  10. Android RelativeLayout布局