您现在的位置是:网站首页> 编程资料编程资料
纯CSS实现单一div的正多边形变换
2021-09-04
941人已围观
简介 这篇文章主要介绍了纯CSS实现单一div的正多边形变换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
上一篇我们介绍了如何利用before和after伪元素来做Material Design风格的按钮,里头关键的技术就在于活用边框宽度和div本体宽高,因此这篇再加码一个效果,就是纯粹利用CSS,让“单一个”div,从正三角形变换为正八边形(单一div最多只能做到正八边形),最后再搭配动画的效果,变成正多边形的变换动画,也由于正多边形需要用到不少的三角函数计算,为了方便起见,这里将正多边形的边统一都设为100px。
正三角形
正三角形不需要用到伪元素,只需要设定div本身的边框宽度即可产生,先来看一下正三角形的边长与中线,若边长为100px,则中线四舍五入就是87px(100 x sin(60)= 87)。

因此我们要将div的长宽都设为0,接着把底部border的宽度设为87px,左右的border宽度设为50px(颜色设为透明transparent),就可以做出一个漂亮的三角形。
width:0; height:0; border-width:0 50px 87px ; border-style:solid; border-color:transparent transparent #095;

正方形
正方形应该是最简单的,只要设定长宽设定为同样数值就可以了,不过其实还有另外两种方法,第一种你可以把长宽设为0,把上下左右的border设为50px也可以,第二种则是高度设为0,宽度设为100px,然后某个边宽也设为100,都是可以的。
.a{ width:100px; height:100px; background:#c00; } .b{ width:0; height:0; border-width:50px; border-style:solid; border-color:#095; } .c{ width:100px; height:0; border-width:0 0 100px; border-style:solid; border-color:#069; }
正五边形
正五边形就需要进入基本的三角函数领域了,让我们先把正五边形分解,用原本的div作为上方的三角形,然后用一个伪元素制作下方的梯形,因为正五边形每边的夹角为108度,所以可以藉由三角函数计算出上方三角形的高度为59px(100 x cos(54)),宽度为192px(100x sin(54)x 2),下方梯形的高度为95px(100 x sin(72)),长边的宽度跟上面的三角形一样都是192px。

了解原理之后,就可以利用伪元素来搭配制作
相关内容
- 使用CSS变量实现炫酷惊人的悬浮效果CSS3实现的上升悬浮的粒子闪烁发光动画特效源码纯CSS3实现发光的悬浮荧光屏动画效果源码css实现悬浮效果的阴影的方法示例jQuery+CSS3实现的可拖拽悬浮弹性菜单特效源码css3实现的鼠标悬浮3D转动二级下拉导航菜单动画特效源码css3实现的多种3d纸张鼠标悬浮特效源码CSS3按钮鼠标悬浮实现光圈效果源码CSS实现鼠标悬浮出现遮罩层示例源码基于CSS3实现右侧悬浮在线客服源码CSS3实现网页右侧悬浮固定二维码扫描与在线客服等功能特效源码
- 从css 3d说到空间坐标轴附源码纯CSS3实现的3D阴阳八卦(太极)图旋转动画效果源码纯CSS3实现的3D木质尺子旋转动画效果源码CSS3实现鼠标滑过3D样式图片层叠切换动画特效CSS3实现鼠标滑过图片3D旋转动画特效源码纯CSS3实现3D展开动画的图标菜单特效源码CSS3实现鼠标悬停展开3D图标菜单特效源码纯CSS3实现风浪中前行的3D海盗船动画效果源码纯css3实现的3D宝贝猪猡动画效果源码
- rem适配移动设备的方法示例Html5移动端适配IphoneX等机型的方法浅谈移动端适配大法详解如何使用image-set适配移动端高清屏图片移动 web 端屏幕适配(rem)详解H5 活动页之移动端 REM 布局适配方法html5实现移动端适配完美写法手机端用rem+scss做适配的详解移动端适配 使px自动转换rem
- 详解CSS实现仿Windows10鼠标照亮边框效果纯CSS3制作的鼠标悬停时边框旋转鼠标经过图片显示边框的CSS代码
- css实现发光文字及一点点js特效 CSS3制作炫酷的自定义发光文字实现带CSS混合模式的JS视觉差轮播图特效HTML+CSS+JS实现键盘导航源码特效 js和css3实现带反光特效按钮插件js和CSS3实现带详情页面的炫酷网格布局特效js和CSS3实现缩略图全屏展开特效源码JS和CSS3实现点击展开页面动画特效
- 用css实现正方形div 的两种方法css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局CSS实现一个自适应的正方形的方法示例
- CSS3 transforms应用于背景图像的解决方法CSS控制背景图像平铺实现边框阴影效果学习CSS的背景图像属性background-CSS教程-网页制作-网页教学网css3背景图片透明叠加属性cross-fade简介及用法实例
- 纯CSS3制作页面切换效果的实例代码怎样实现H5+CSS3手指滑动切换图片的示例代码css实现导航切换的实例代码用CSS实现Tab页切换效果的示例代码CSS实现Tab页切换实例代码CSS使用classList实现两个按钮样式的切换
- CSS 类名的问题详解CSS类名支持中文命名的示例切勿用数字开头来命名css伪类名CSS 类名的长命名和短命名
- css实现网页栏目左侧固定当滚动到底部时自动调整位置 CSS实现底部tapbar栏功能
