在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
问题记录 今天本打算要完成一个类似于进度条的小组件, 原型是这样的(这里长200px, 高28px) 我一看, 很简单嘛, 抛开那个数字1样式不谈, 整体父级样式就是一个左边半圆形, 右边带有弧度的div啊。 傻了, 不对啊, 我原以为是这样的 实际上, 浏览器中是这样的 不对了啊, 右边的角度设置了啊, 怎么看起来跟没设置一样呢, 我把8改成了10px在试了下, 还是差不多跟没设置一样的。 8px按理说应该有明显的弧度了啊, 全设置成8px看看呢 对啊, 这是8px应该有的弧度, 为什么改成左边写成50px就变样了呢, 难道跟50px有关?带着疑问, 我看了看百度。 百度说, 其实border-radius的完整写法(w3c)是 border-radius: 1-4 length|% / 1-4 length|%; 平时我们写的border-radius : 50px,其实完整的写法应该是: border-radius : 50px 50px 50px 50px / 50px 50px 50px 50px; “/”前的四个数值表示圆角的水平半径,后面四个值表示圆角的垂直半径 每个顺序一一对应 (水平半径:左上 右上 右下 左下)/(垂直半径:左上 右上 右下 左下), 什么是水平半径和垂直半径呢? 根据水平半径跟垂直半径的比值, 可以调整角的弧度, 两者半径相同, 就是个圆角。 这就是问什么我平时设置的角都是圆角的原因, 因为我没有写完整过 例如 border-radius:10px 20px 30px 40px/40px 30px 20px 10px 就是这样的样子 再来回头看我们之前的问题 我们忽略了高度28px了啊. 这样算来, 我们要设置右边是个半圆形, 只要水平跟垂直半径都是14px不就好了吗 border-radius: 14px 8px 8px 14px / 14px 8px 8px 14px; 这样,父级样式不就对了吗。 之前右边设置的8px圆角看起来没有效果, 可能跟50px比起来, 被等比例压缩了吧, 因为左边本来就高28px, 塞了个半径50px进去, 我算算(14 * 8 / 50 = 2.24), 就等于设置成了 border-radius: 14px 2.24px 2.24px 14px / 14px 2.24px 2.24px 14px; 以后写样式要当心了啊, 小问题也不小啊。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持极客世界。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论