作者:Nicholas Zakas

译者:阮一峰

一、CSS3圆角的优点

传统的圆角生成方案,必须使用多张图片作为背景图案。CSS3的出现,使得我们再也不必浪费时间去制作这些图片了,而且还有其他多个优点:

* 减少维护的工作量。图片文件的生成、更新、编写网页代码,这些工作都不再需要了。

* 提高网页性能。由于不必再发出多余的HTTP请求,网页的载入速度将变快。

* 增加视觉可靠性。某些情况下(网络拥堵、服务器出错、网速过慢等等),背景图片会下载失败,导致视觉效果不佳。CSS3就不会发生这种情况。

二、border-radius属性

CSS3圆角只需设置一个属性:border-radius(含义是"边框半径")。你为这个属性提供一个值,就能同时设置四个圆角的半径。所有合法的CSS度量值都可以使用:em、ex、pt、px、百分比等等。

比如,下面是一个div方框:

现在设置它的圆角半径为15px:

border-radius: 15px;

这条语句同时将每个圆角的"水平半径"(horizontal radius)和"垂直半径"(vertical radius)都设置为15px。

border-radius可以同时设置1到4个值。如果设置1个值,表示4个圆角都使用这个值。如果设置两个值,表示左上角和右下角使用第一个值,右上角和左下角使用第二个值。如果设置三个值,表示左上角使用第一个值,右上角和左下角使用第二个值,右下角使用第三个值。如果设置四个值,则依次对应左上角、右上角、右下角、左下角(顺时针顺序)。

border-radius: 15px 5px;

border-radius: 15px 5px 25px;

border-radius: 15px 5px 25px 0px;

(左下角的半径为0,就变成直角了。)

border-radius还可以用斜杠设置第二组值。这时,第一组值表示水平半径,第二组值表示垂直半径。第二组值也可以同时设置1到4个值,应用规则与第一组值相同。

border-radius: 15px 5px / 3px;

border-radius: 15px 5px 25px / 3px 5px;

border-radius: 15px 5px 25px 5px / 3px 5px 10px 15px;

三、单个圆角的设置

除了同时设置四个圆角以外,还可以单独对每个角进行设置。对应四个角,CSS3提供四个单独的属性:

* border-top-left-radius

* border-top-right-radius

* border-bottom-right-radius

* border-bottom-left-radius

这四个属性都可以同时设置1到2个值。如果设置1个值,表示水平半径与垂直半径相等。如果设置2个值,第一个值表示水平半径,第二个值表示垂直半径。

border-top-left-radius: 15px;

border-top-left-radius: 15px 5px;

四、浏览器支持

IE 9、Opera 10.5、Safari 5、Chrome 4和Firefox 4,都支持上述的border-radius属性。早期版本的Safari和Chrome,支持-webkit-border-radius属性,早期版本的Firefox支持-moz-border-radius属性。

目前来看,为了保证兼容性,只需同时设置-moz-border-radius和border-radius即可。

-moz-border-radius: 15px;

border-radius: 15px;

(注意:border-radius必须放在最后声明,否则可能会失效。)

另外,早期版本Firefox的单个圆角的语句,与标准语法略有不同。

* -moz-border-radius-topleft(标准语法:border-top-left-radius)

* -moz-border-radius-topright(标准语法:border-top-right-radius)

* -moz-border-radius-bottomleft(标准语法:border-bottom-left-radius)

* -moz-border-radius-bottomright(标准语法:border-bottom-right-radius)

五、注意事项

虽然各大浏览器都支持border-radius,但是在某些细节上,实现都不一样。当四个角的颜色、宽度、风格(实线框、虚线框等)、单位都相同时,所有浏览器的渲染结果基本一致;一旦四个角的设置不相同,就会出现很大的差异。比如,下面这段代码在不同的浏览器中,渲染结果就相差很大。

border-color: black;

border-style: solid dashed;

border-width: 1px 2px 3px;

border-top-color: red;

border-radius: 5%;

另外,并非所有浏览器,都支持将圆角半径设为一个百分比值。

因此,目前最安全的做法,就是将每个圆角边框的风格和宽度,都设为一样的值,并且避免使用百分比值。

(完)

实例补充:

交互设计就是研究人与物体之间如何互动的问题,比如按电梯时,按钮立即高亮,同时屏幕上显示电梯现在所在楼层数,这个过程就是交互设计,而电梯按钮用什么颜色,外观有什么花纹就是视觉设计。

css 外弧_css圆弧边框相关推荐

  1. css 外弧_CSS绘制圆(弧)

    1.绘制一个圆 使用块元素或行内块元素可以绘制一个矩形,然后添加一个圆角,如果矩形的长宽一样,圆角半径恰好是边长一半,就会得到一个圆形. 半径值 10 30 50 效果 2.绘制胶囊形状 把上面的方形 ...

  2. css 外弧_css 伪类实现弧形

    在实现页面五花八门的有特色的ui时,我们有时会遇到要用实现一个弧形,而这样的弧形要怎么实现呢?用图片?不太优雅,这样就要无故多加载一张图片了,这里来说说怎么用css的after伪类来实现弧形. 总思路 ...

  3. css 外弧_css 弧度

    style .head-bg { position: absolute; height: 1.9rem; width: 100%; overflow: hidden; z-index: -1; } . ...

  4. 输入框使用圆弧的造型html,css怎么把盒子边框变成圆弧

    1. 怎样用css把文本框变成圆角 border-radius属性可以实现元素的圆角.如下css可以实现文本框(单行.多行)的圆角: input[type=text],textarea{border- ...

  5. ireport如何给static text加边框_html amp;amp; css 解决li浮动边框为2的问题

    html && css 解决li浮动边框为2的问题 思路 问题:首先,li 浮动后,添加边框,则 中间 li 的边框会形成 1+1=2 的效果,1px的边框会变成2px.(例:分页模块 ...

  6. css控制边界与边框示例(内边距、外边距使用方法)

    这篇文章主要介绍了css控制边界与边框示例,需要的朋友可以参考下 一.CSS控制边界 1.内边距 padding(内边距也叫内填充) padding-bottom 长度/百分比 元件下端边线的空隙 p ...

  7. html怎么添加5px高的线,CSS 0.5px 细线边框的原理和实现方式

    细线边框的具体实现方法有:伪元素缩放或渐变,box-shadow模拟,svg画线,border-image裁剪等.要实现小于1px的线条,有个先决条件:屏幕的分辨率要足够高,设备像素比要大于1,即cs ...

  8. css中textarea去掉边框和取消选中后的边框

    css代码: /* 去除边框 */ border: none; resize: none; /* 去除选中后的边框 */ outline:none;

  9. html 带边框的梯形,css clip-path画带边框梯形多边形

    css clip-path画带边框梯形多边形 项目案例一(自适应梯形) 项目案例二(渐变色多边形) 项目案例一(自适应梯形) 如下梯形区域为模块的title信息,要求title文字个数变化时梯形区域随 ...

最新文章

  1. 智能车竞赛技术报告 | 智能车视觉 - 宜宾学院- 平头哥1组
  2. android如何暂停倒计时,在Android中暂停和恢复倒计时器和进度条?
  3. 点击鼠标左键 自动锁定计算机图标,鼠标一按左键桌面图标就消失了怎么办_为什么按鼠标左键时桌面图标都不见了...
  4. 自己发现的数学规律一
  5. Spring框架你敢写精通,面试官就敢问@Autowired注解的实现原理
  6. Flask 【第七篇】Flask中的wtforms使用
  7. InnoDB 的辅助索引叶子节点为什么不直接保存的记录地址而要存主键键值
  8. vscode 头文件包含问题_使用clangd替代c/c++配置vscode c++项目
  9. java substring_java 中 substring()方法
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的微信小程序图书借阅管理系统
  11. ios 友盟第三方登录遇到的各种坑。
  12. swiftui动画之tab自定义切换动画_Unity动画系统详解1:在Unity中如何制作动画?
  13. 【Python】if __name__ == __main__做了什么?
  14. Forever 0.5 (计算几何思维)
  15. 【Python学习实践教程】10个Python经典项目实战,练手必备
  16. ubuntu 14.04 更新 flash
  17. 折扣力度自动计算器 | 财富自由必备小工具
  18. android app银联支付,android app 快速接入银联支付流程(android studio版)
  19. 用tkinter实现BMI计算
  20. html5 签到墙,创意头脑风暴!5种个性签名墙设计超有范儿

热门文章

  1. 修改mysql端口号
  2. linux安装fcitx中文输入法,解决没有候选项的问题(debian10)
  3. Redis中的HotKey如何解决
  4. 前端 JS 设计模式之设计原则
  5. C语言strchr函数:字符串查找
  6. python和js优劣势_Python对比其他语言,在web开发中有什么优劣势?
  7. MySQL 中 ALTER 命令
  8. 股票逐笔成交接口大智慧怎样建模?
  9. C++のeasyx特辑2:星空
  10. ubuntu之虚拟机网络设置