CSS3 border-radius 属性


CSS3 border-radius 属性

CSS3 border-radius 属性定义一个元素的外边框的角的形状。可以用它来通过四个值设置边框的四个角的半径。

语法

border-radius: value;

值可以是一个或四个。

单值

设置单一值将应用于所有四个角:

border-radius: 10px;

四个值

border-radius: 10px 20px 30px 40px;

值按顺序表示顶部左侧,顶部右侧,底部右侧和底部左侧角的半径。

三个值

border-radius: 10px 20px 30px;

第一个值表示顶部左侧和顶部右侧,第二个值表示底部右侧和底部左侧,第三个表示底部右侧和底部左侧。

两个值

border-radius: 10px 20px;

第一个值表示顶部左侧和底部右侧,第二个值表示底部左侧和顶部右侧。

初始值

border-radius: 0;

过渡效果

border-radius 同样支持 CSS3 过渡效果,当 hover 时,圆角可以转变:

.box {
  width: 100px;
  height: 100px;
  background: #edb200;
  -webkit-transition: all .5s;
  -moz-transition: all .5s;
  transition: all .5s;
  border-radius: 10px;  /* 优先使用圆角 */
}
.box:hover {
  border-radius: 50px;
}

浏览器兼容性

导致问题的主要原因是老版的浏览器只识别"border-radius"这一个值,不能识别"-webkit-border-radius"这种带有浏览器前缀的写法。

.box {
  width: 100px;
  height: 100px;
  background: #edb200;
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  border-radius: 10px;  
}

全局使用

Border-radius 也可以全局应用于所有圆角。这将会减少您在CSS中编写的代码量。 以下是一个通用类可以用于 border-radius 属性的值:

.round-corners {
    border-radius: 5px;
}

最佳实践

  • 当控件的宽度和高度成比例时,可以用交替圆角实现更好的效果。
.round-corners {
    border-radius: 10px 5px 10px 5px;
}
  • 如果要为容器应用圆角,还可以使用 CSS 伪元素实现。
.panel {
  position: relative; 
  padding: 40px; 
  background: #ffffff; 
  border-radius: 20px; 
}
.panel::before { 
  border-radius: 10px; 
  content: ""; 
  position: absolute; 
  z-index: -1; 
  top: 5%; 
  bottom: 5%; 
  left: 5%; 
  right: 5%; 
  background: #dddddd; 
}

结论

border-radius 是一个功能强大的 CSS3 属性,可以轻松地改变元素的外观。使用单个值、四个值、三个值或两个值创建圆角是很容易的。同时, border-radius 也支持过渡效果,使动态效果更加出色。它既有简单的用法,也有复杂的技巧,可以轻松地实现您所想要的效果。化繁为简的设计思想,是值得我们借鉴的。