CSS3小分队-进击的border-radius

上一篇:《CSS float属性小解——”浮“生若水》

当CSS3披荆斩棘来到我们面前,我们看到的是一个操作起来更加简便、更加炫目的html世界。如果当CSS3完全盛行起来,当多个主流浏览器开始兼容一个个CSS3属性,那么无论是对于前端开发者,还是对于坐在浏览器前浏览网页的我们,都将是一件非常美妙的事情,那时才是“旧时王谢堂前燕,飞入寻常百姓家”。

对于进击的CSS3小分队,让我们依次掀开它们华丽的面纱。第一个出场的是border-radius。

一、CSS2代码生成圆角

在网页设计中,圆角可以用来美化区域,在css2中,如果我们要制作一个圆角,方法也不少,只不过都相对复杂。比如,最方便的可以用圆角图片,但是会增加http请求,用户体验稍差,没有纯代码来得快捷;用代码的话可以用多个元素层叠的思想来“堆”出一个圆角,但是代码较多,看着就烦。当然还有其他方法,小伙伴们可以发挥奇思妙想,但是应该绝对没有border-radius来得酣畅直接。

不管是不是百战不殆,知己知彼还是很有必要的,所以在此先用CSS2的代码来生成圆角来看看效果:

思路是用多个div进行叠加,从而得到圆角的效果。上面两个角和下面两个角的div类顺序相反即可,主体div来确定区域的大小。

HTML Markup

<!--左上角/右上角-->
<div class="r_top">
<div class="r_a"></div>
<div class="r_b"></div>
<div class="r_c"></div>
<div class="r_d"></div>
<div class="r_e"></div>
<div class="r_f"></div>
<div class="r_g"></div>
<div class="r_h"></div>
</div>
<div class="box">
<!-- 主体部分 -->
</div>
<!--左下角/右下角-->
<div class="r_bottom">
<div class="r_h"></div>
<div class="r_g"></div>
<div class="r_f"></div>
<div class="r_e"></div>
<div class="r_d"></div>
<div class="r_c"></div>
<div class="r_b"></div>
<div class="r_a"></div>
</div>

CSS Code

<!--左上角/右上角-->
<div class="r_top">
<div class="r_a"></div>
<div class="r_b"></div>
<div class="r_c"></div>
<div class="r_d"></div>
<div class="r_e"></div>
<div class="r_f"></div>
<div class="r_g"></div>
<div class="r_h"></div>
</div>
<div class="box">
<!-- 主体部分 -->
</div>
<!--左下角/右下角-->
<div class="r_bottom">
<div class="r_h"></div>
<div class="r_g"></div>
<div class="r_f"></div>
<div class="r_e"></div>
<div class="r_d"></div>
<div class="r_c"></div>
<div class="r_b"></div>
<div class="r_a"></div>
</div>

让我们放大看一下效果:

该暴露的都暴露出来了。。。

以上是CSS2做出来的圆角效果,明显的代码重复,代码繁多。如果要用同样的思路生成一个圆角半径更大的圆角,而且希望得到的圆角效果更加圆润,那么就需要增加更多的标签,更多重复繁多的代码,这并不是我们想看到的。

二、CSS3进击的border-radius

CSS3中加入的border-radius着实给我们带来了极大的便利。首先来看它的语法:

border-radius : none | <length>{1,4} [/ <length>{1,4} ]?

border-radius是一种简写属性,用来设置border-*-radius的属性,值可以去数值,也可以取百分数,四个值是按照top-left、top-right、bottom-right、bottom-left的顺序即从上开始顺时针来设置的。下面分八种情况来讨论。

1、border-radius:20px;属性后只有一个值,那么即top-left、top-right、bottom-right、bottom-left圆角半径相等,效果如下:

2、border-radius:20px 40px;属性后有两个值,那么即top-left和bottom-right取第一个值,top-right和bottom-left取第二个值,即对角取值,效果如下:

3、border-radius:20px 30px 40px;属性后有三个值,那么即top-left取第一个值,top-right和bottom-left取第二个值,bottom-right取第三个值,其实还是按照top-left、top-right、bottom-right、bottom-left的顺序即从上开始顺时针来设置的,因为正常情况下top-right和bottom-left取值相等,所以第三个值自然是bottom-right,效果如下:

4、border-radius:20px 30px 40px 50px;属性后有四个值,那么按照按照top-left、top-right、bottom-right、bottom-left的顺序即从上开始顺时针来设置,依次取值,效果如下:

以上为基本的四种取值,接下来列出另外四种取值形式,下面四种形式其实是和上面四种形式没有什么区别的,只是设置了不同的水平半径和垂直半径而已:

5、border-radius:水平半径/垂直半径,即border-radius:20px/40px;即四个圆角均取同一个水平半径和垂直半径,其实属于1的变形,效果如下:

6、border-radius:水平半径1 水平半径2/垂直半径1 垂直半径2,即border-radius:20px 30px/40px 50px;即top-left和bottom-right取水平半径1和垂直半径1,top-right和bottom-left取水平半径2和垂直半径2,其实属于2的变形,效果如下:

7、border-radius:水平半径1 水平半径2 水平半径3/垂直半径1 垂直半径2 垂直半径3,即border-radius:20px 30px 40px/50px 60px 70px;即top-left取水平半径1和垂直半径1,top-right和bottom-left取水平半径2和垂直半径2,bottom-right取水平半径3和垂直半径3,其实属于3的变形,效果如下:

8、border-radius:水平半径1 水平半径2 水平半径3 水平半径4/垂直半径1 垂直半径2 垂直半径3 垂直半径4,即border-radius:20px 30px 40px 50px/60px 70px 80px 90px;即顺时针依次取值,其实属于4的变形,效果如下:

当然,除了像素等单位,还可以用百分号作单位,不要忘记哦~~~~~~~~~

让我们放大效果看一下:

放大以后,圆角依然是像素级别的,一下子感觉整个世界都圆润起来了呢。

当然,border-radius也可以拆开写

border-top-left-radius: <length>  <length>   //左上角

border-top-right-radius: <length>  <length>  //右上角

border-bottom-right-radius:<length>  <length>  //右下角

border-bottom-left-radius:<length>  <length>   //左下角

PS:对于较老的浏览器请不要忘记添加可恶的浏览器前缀-moz-/-webkit-

三、这货能干什么

border-radius能干什么就是厨师做菜的问题了,不一样的厨师有不一样的思想,有不一样的手艺,做出来的菜肴也千差万别。

有这样的菜品:

也有这样的菜品:

还有这样椭圆的菜品:

或者来个圆圆的大饼等等:

如上图所示,border-radius为我们生成椭圆和圆提供了很大的便利,也为我们生成更多的图案提供的更多的可能。

四、小了个结

关于border-radius至此告一段落,希望能给需要的朋友带来帮助,有新的想法和问题也欢迎讨论,有讲的不对的地方还恳请批评指正。

上一篇:《CSS float属性小解——”浮“生若水》

时间: 2024-10-22 11:31:52

CSS3小分队-进击的border-radius的相关文章

CSS3小分队——text分身text-shadow

上一篇:<CSS3小分队——进击的border-radius> 上一篇把border-radius拉上台走了个秀,今天我们轮着角色接着走.台下一团shadow在蠕动,恩,今天上台的是一个shadow属性.关于shadow的属性有两个:box-shadow和text-shadow,今天我们说的是text-shadow先. 一.shadow阴影的背后 text-shadow在CSS2中出现过,可是昙花一现,在CSS2.1中又被抛弃了,现在这团阴影又在CSS3中满血归来. 顾名思义,text-sha

css3巧用border做加载效果

该效果主要是用到了css3的动画animation以及transform中的角度变换rotate. html的结构十分简单,用到一个div,也用到了css3中的属性 border-radius .这边只测试了chrome的效果. <!doctype html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title>

利用css3动画和border来实现圆形进度条

最近在学习前端的一些知识,发现border的功能十分强大啊! 首先来看看demo 就是这么一个圆形的进度条,在文本框中输入0-100的数值下面的进度条相应的转到多少 这个主要是利用border,旋转和css动画来实现的,主要思想是利用两个div来互相遮挡border形成的一个只有半圈有颜色的圆形,再利用旋转div的角度来调整显示 上代码: html+css+js(这里引入了jquery) <!DOCTYPE html> <html lang="en"> <

CSS3:不可思议的border属性

在CSS中,其border属性有很多的规则.对于一些事物,例如三角形或者其它的图像,我们仍然使用图片代替.但是现在就不需要了,我们可以用CSS形成一些基本图形,我分享了一些关于这方面的技巧. 1.正三角形: .triangle_up { height:0px; width:0px; border-bottom:50px solid #006633; border-left:50px solid transparent; border-right:50px solid transparent; }

哥也有个MacBook Air——纯CSS打造银色MacBook Air(一)

上一篇:<CSS3小分队——text分身text-shadow> 写在前面: 前段时间自己用CSS绘制了一个银色的MacBook Air,今天把它从电脑硬盘深处挖了出来,我把我的思路和想法写下来和小伙伴们分享分享.先把最后的效果给大家. 这其实是一个半成品,键盘上的其他图标和文字都还没有加,图标的话可以用font-face,有机会的话把它补全给大家. 小伙伴们也可以去codepen上查看高清无码大图,给出链接: http://codepen.io/myvin/pen/yNezZR 这里使用了C

小tip: CSS3如何实现圆角的outline效果?

by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=4765 一.首先,outline是个很牛逼的东西 温故而知鑫,10年的时候写过一篇可用性方面的文章:"页面可用性之outline轮廓外框的一些研究",还算挺有用的:3年之后,也就是13年,介绍了个没什么使用价值的东西:"纯CSS实现的outline切换transition动画效果". 个把星

CSS3 基本知识

1.CSS3 简介 CSS 指层叠样式表 (Cascading Style Sheets),用于控制网页的样式和布局,CSS3 是最新的 CSS 标准. 在网页制作时采用层叠样式表,可以有效的对页面的布局.字体.颜色.背景和其他效果实现更加精确的控制,只要对相应的代码做一些简单的修改,就可以改变同一页面的不同部分.通过仅仅编辑一个简单的 CSS 文件,外部样式表有能力同时改变站点中所有页面的布局和外观. CSS3 语言开发是朝着模块化发展的.之前的规范作为一个模块很庞大而且比较复杂,所以 CSS

CSS3 - 初识CSS3

.navdemo{ width:560px; height: 50px; font:bold 0/50px Arial; text-align:center; margin:40px auto 0; background: #f65f57; /*制作圆*/ border-radius:5px; /*制作导航立体风格*/ box-shadow:0 5px 5px 0px gray; } .navdemo a{ display: inline-block; -webkit-transition: a

检测 HTML5\CSS3\JAVASCRIPT 在浏览器的适应情况

CSS3 Selectors Test : 这是CSS3.INFO网站提供的css选择器测试页面,它能够详细显示当前浏览器对所有CSS3选择器的支持情况.启动测试,浏览器会自动测验,并已列表的方式显示当前浏览器对所有css3选择器的支持情况     http://tools.CSS3.info/selectors-test/test.html When can I use :这是一个专业的测试网站,为广大网页设计师提供CSS3\HTML5\SVG\JAVAScript api 技术的浏览器支持情