【前端小技巧】border-raduis小技巧

定义

border-radius: length|% (可以设置宽度/百分比);
border-radius: 1-4 length|% (四个角:左上,右上,右下,左下 即顺时针方向);
border-radius: 1-4 length|% / 1-4 length|%(水平方向/垂直方向);

特性

1.当任意两个相邻圆角的半径之和大于border box的尺寸时,用户代理必须按比例减少各个半径所使用的值,直到他们不会重叠
2.大值特性:值很大的时候,只会使用能够渲染的圆角大小渲染
3.等比例特性:水平半径和垂直半径比例恒定不变

步骤
1.半径100px圆形四个角设置60px

border-radius:60px;
border-radius:60px 60px 60px 60px;
border-radius:60px 60px 60px 60px /60px 60px 60px 60px;

图片描述

上图,如果给圆设置60px的border-radius 应该是蓝色框框的位置,但因为左下和右下有重叠,因此按比例减少直到两者不会重叠,减少之后就是绿色框框的效果,因为给半径为100px的div设置border-radius,不管是50px还是60px效果是一样的。

2.圆形横向60px,纵向50px

border-radius:60px/50px;
border-radius:60px 60px 60px 60px /50px 50px 50px 50px;

图片描述

上图,因为横向60px已经超过了横向半径50px,需要减少至50px,根据上面的等比例特性,纵向50px需要按照横向的60/50的比例缩小,呈现的效果就是上图的效果。

3.椭圆四个角设置50%圆角

border-radius:50%;
border-radius:50% 50% 50% 50% /50% 50% 50% 50%;

图片描述

4.四个角设置同样的横向及纵向百分比

border-radius:50%/40%

图片描述

5.四个角设置50% 30% 30% 50%/30% 50% 50% 30%圆角

border-radius:50% 30% 30% 50%/30% 50% 50% 30%;

图片描述

6.如果某个角某个方向设置成0则该角是直角;同一方向上邻边相加大于100%,则按比例分配

border-radius: 50%/0 100% 25% 0;
border-radius: 50% 50% 50% 50%/0 100% 25% 0;

图片描述

上图中,因为左上 左下已经有一个方向设置为0,因此该两个方向是直角,右上和右下方向横向上均占50%,但是纵向,两者相加已经超过100%会有重叠。因此会按照100:25的比例分配两者的占比。

7.【半个椭圆】横向:四个角50%,纵向:某两个相邻的角100%,其他两个角0

border-radius: 50%/100% 100% 0 0;
border-radius: 50% 50% 50% 50%/100% 100% 0 0;

图片描述

8.三个直角1

border-radius: 100%/100% 0 0 0
border-radius: 100% 100% 100% 100%/100% 0 0 0;

图片描述

虽然上图中图形横向上占比都是100%,因为相邻方向相加超过100%,因此各边分配的横向均是50%,虽然左上角在纵向上分配100%,但因为横向:纵向比要永远保持100%:100%即1:1。因此纵向仍然占比50%。

9.三个直角2

border-radius: 50%/100% 0 0 0;
border-radius: 50% 50% 50% 50%/100% 0 0 0;

图片描述

10.【1/4椭圆】某个方向横向纵向100%,其他三个方向不设置

border-radius: 100% 0 0 0;
border-radius: 100% 0 0 0/100% 0 0 0;

图片描述

11.在刚才所有实现的基础之上添加border会有小惊喜哦~

border-radius: 100% 0 100% 0;
background-color: transparent;
border-top:10px solid red;

图片描述

Stylus是一种CSS预处理器,它可以让你用更简洁、更强大的语法来编写CSS代码。与Sass和Less类似,Stylus可以通过编译将你的代码转换成普通的CSS文件。相比于直接编写CSS,使用Stylus可以提供更多的功能,例如使用变量、函数等。 如果你想学习Stylus,你可以参考一些资源。Stylus官方中文文档提供了详细的教程和参考资料,可以让你更好地了解Stylus的语法和用法。另外,张鑫旭的网站也提供了一个Stylus文档,其中包含了一些实例和示例代码。 在Stylus中,你可以使用混合器来重复使用一些样式代码。混合器允许你定义一组样式规则,然后将其应用到不同的选择器上。下面是一个典型的混合器应用例子,使用border-radius来生成不同浏览器前缀的border-radius属性。 ``` border-radius(n) -webkit-border-radius n -moz-border-radius n border-radius n div border-raduis(10px) ``` 经过编译后,以上代码将生成以下CSS代码: ``` div { -webkit-border-radius: 10px; -moz-border-radius: 10px; border-radius: 10px; } ``` 这个例子展示了如何使用混合器来简化重复的样式代码,以及如何在Stylus中定义和使用函数。如果你想了解更多关于Stylus的用法和技巧,可以参考上述提到的资源。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【stylus】css预处理器stylus的安装以及简单用法](https://blog.csdn.net/meichaoWen/article/details/109309698)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [CSS预处理框架——Stylus](https://blog.csdn.net/cainiaoyihao_/article/details/115719282)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [css 预编译处理器 - Stylus](https://blog.csdn.net/ZXW_Future/article/details/106207209)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值