详解css3属性border-radius

123 篇文章 0 订阅
18 篇文章 0 订阅

当时写这篇文章主要是想探讨一下优雅降级和渐进增强的区别,按照正常的逻辑思维,不管是降级还是增强,应该对于效果是没什么区别的,因为后者会覆盖前者,但今天无意看到张鑫旭的一篇文章,关于CSS3属性的书写顺序(10年的,原谅我的孤陋寡闻T_T),标准的css3属性和带webkit的前缀在某些情况是不一样的效果,比如border-radius和-webkit-border-radius带两个参数时,显示的效果并不一样:

?
.not-a- square {
    border-radius: 30px 10px ; /*让box左上和右下角为30像素圆弧,左下角和右上是10像素圆弧*/
    -webkit-border-radius: 30px 10px ; /*box渲染为每个角都是30像素宽10像素高的圆弧*/
}

展示结果(直接借图啦,当然本鱼也实践过了,确实如此~):

顺便带出一下border-radius的参数:

据w3c上的官方解释,是这样子的:

border-radius: 1-4 length|% / 1-4 length|%;
1-4指的是radius的四个值,length和%指的是值的单位。

写过border的人都知道border可以带四个参数分别设置四个边框(上左下右的顺序),同样的,border-radius也可以带四个参数,并且以顺时针的方向解析,上左,上右,下右,下左:

?
1
2
3
.box{
     border-radius: 5px 10px 20px 50px         
}

展示结果:

两个参数的时候,是上左和下右,上右和下左,比如.div1{border-radius: 2em 1em},就不截图了,直接demo

三个参数的时候,是上左,上右和下左,下右,比如.div1{border-radius: 2em 1em 3em},demo

 

那么以斜杠/分开后面的参数是怎么回事呢?是这样子的,第一个参数表示圆角的水平半径,第二个参数表示圆角的垂直半径,所以你现在就可以画一个左右不对称的圆角啦:

?
1
.div 1 {border-radius: 2em / 1em }

 

看到这里你会不会以如果四个圆角都要分别制定特殊的形状,是不是 2em/1em , 1em/0.5em, 3em/1em, 1em/1em像上面那个四个参数一样的设定(我就是这么以为的),答案是错!误!的!因为官方的解释就是前面放1-4后面放1-4啊!鱼不是被吃掉的就是被笨s的~

?
1
2
3
.div 1 {
         border-radius: 10px 20px 30px 40px / 40px 30px 20px 10px
}

按顺时针的顺序,斜杠/左边是四个圆角的水平半径,右边是四个圆角的垂直半径,但是通常我们很少写右边的参数,那就是默认右边等于左边的值。当然你也可以省略一些值,比如这样子写.div1{border-radius: 2em 1em 4em / 0.5em 3em;},解析顺序你就可以按照上面的自己推算一下啦。

然后再回到张老师的那个-weibkit前缀下的问题{-webkit-border-radius:30px 10px}实际上就等于{border-radius:30px/10px},效果是一样的,至于为什么,我也还不知道,张老师说background-image也有此问题,姐明天再瞧瞧,back home~

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
border-radius属性用于设置元素的边框的圆角。它是一个简写属性,可以同时设置四个边角的圆角半径。基本语法如下: border-radius: 水平圆角半径 垂直圆角半径; 其中,水平圆角半径表示左上角和右下角的圆角半径,垂直圆角半径表示右上角和左下角的圆角半径。可以使用具体的长度值(如px、em等)或百分比值来设置圆角半径。如果只设置一个值,则水平圆角半径和垂直圆角半径相同。如果设置两个值,则第一个值表示水平圆角半径,第二个值表示垂直圆角半径。如果设置四个值,则分别表示左上角、右上角、右下角和左下角的圆角半径。 例如,如果要为一个元素设置相同的圆角半径为10px,可以使用以下语法: border-radius: 10px; 如果要为一个元素设置水平圆角半径为10px,垂直圆角半径为20px,可以使用以下语法: border-radius: 10px 20px; 如果要为一个元素设置四个不同的圆角半径,可以使用以下语法: border-radius: 10px 20px 30px 40px; 希望以上信息对您有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [CSS3圆角详解](https://blog.csdn.net/weixin_42659625/article/details/81085841)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [CSS边框属性一---border-radius](https://blog.csdn.net/weixin_39645019/article/details/118375945)[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^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值