非常教程

CSS参考手册

背景和边框 | Backgrounds & Borders

边框半径 | border-radius

CSS属性 border-radius用来设置边框圆角。当使用一个半径时确定一个圆形;当使用两个半径时确定一个椭圆,这个(椭)圆与边框的交集形成圆角效果。

/* The syntax of the first radius allows one to four values */
/* Radius is set for all 4 sides */
border-radius: 10px;

/* top-left-and-bottom-right | top-right-and-bottom-left */
border-radius: 10px 5%;

/* top-left | top-right-and-bottom-left | bottom-right */
border-radius: 2px 4px 2px;

/* top-left | top-right | bottom-right | bottom-left */
border-radius: 1px 0 3px 4px;

/* The syntax of the second radius allows one to four values */
/* (first radius values) / radius */
border-radius: 10px 5% / 20px;

/* (first radius values) / top-left-and-bottom-right | top-right-and-bottom-left */
border-radius: 10px 5% / 20px 30px;

/* (first radius values) / top-left | top-right-and-bottom-left | bottom-right */
border-radius: 10px 5px 2em / 20px 25px 30%;

/* (first radius values) / top-left | top-right | bottom-right | bottom-left */
border-radius: 10px 5% / 20px 25em 30px 35em;

border-radius: inherit;

即使元素没有边框,圆角也可以用到background上面,具体效果受background-clip影响。

这是一个简写属性,用来设置border-top-left-radius,border-top-right-radius,border-bottom-right-radiusborder-bottom-left-radius

border-radiusborder-collapsecollapse时,该属性并不适用于表格元素。

和其他简写属性类似,无法为个别值设定为继承,如 border-radius:0 0 inherit inherit,这会覆盖一部分现有定义。在这种情况下只能使用完整属性来指定

初始值

as each of the properties of the shorthand: border-top-left-radius: 0 border-top-right-radius: 0 border-bottom-right-radius: 0 border-bottom-left-radius: 0

适用元素

all elements; but User Agents are not required to apply to table and inline-table elements when border-collapse is collapse. The behavior on internal table elements is undefined for the moment.. It also applies to ::first-letter.

是否是继承属性

no

Percentages

refer to the corresponding dimension of the border box

适用媒体

visual

计算值

as each of the properties of the shorthand: border-bottom-left-radius: two absolute <length>s or <percentage>s border-bottom-right-radius: two absolute <length>s or <percentage>s border-top-left-radius: two absolute <length>s or <percentage>s border-top-right-radius: two absolute <length>s or <percentage>s

Animation type

as each of the properties of the shorthand: border-top-left-radius: a length, percentage or calc(); border-top-right-radius: a length, percentage or calc(); border-bottom-right-radius: a length, percentage or calc(); border-bottom-left-radius: a length, percentage or calc();

正规顺序

the unique non-ambiguous order defined by the formal grammar

  • border-top-left-radius0
  • border-top-right-radius0
  • border-bottom-right-radius0
  • border-bottom-left-radius0
Applies to all elements; but User Agents are not required to apply to `table` and `inline-table` elements when [`border-collapse`](border-collapse) is `collapse`. The behavior on internal table elements is undefined for the moment.. It also applies to [`::first-letter`](::first-letter).   [Inherited](inheritance) no   Percentages refer to the corresponding dimension of the border box   Media visual   [Computed value](computed_value) as each of the properties of the shorthand:
  • border-bottom-left-radius:两个绝对<length><percentage>
  • border-bottom-right-radius:两个绝对<length><percentage>
  • border-top-left-radius:两个绝对<length><percentage>
  • border-top-right-radius:两个绝对<length><percentage>
Animation type as each of the properties of the shorthand:
  • border-top-left-radius:长度,百分比或calc();
  • border-top-right-radius:长度,百分比或calc();
  • border-bottom-right-radius:长度,百分比或calc();
  • border-bottom-left-radius:长度,百分比或calc();
Canonical order the unique non-ambiguous order defined by the formal grammar  

语法

border-radius属性被指定为:

  • 一,二,三,四<length><percentage>值,用于设置角落的单个半径。
  • 通过任选地随后“/”之后是一个,两个,三个,或四个<length><percentage>值是用来设置一个额外的半径,所以可以有椭圆形的角落。

radius

可以是 <length> 或者 <percentage>,表示边框四角的圆角半径。只在单值语法中使用。

top-left-and-bottom-right

可以是 <length> 或者 <percentage>,表示边框左上角和右下角的圆角半径。只在双值语法中使用。

top-right-and-bottom-left

可以是 <length> 或者 <percentage>,表示边框右上角和左下角的圆角半径。只在双值或三值语法中使用。

top-left

可以是 <length> 或者 <percentage>,表示边框左上角的圆角半径。只在三值或四值语法中使用。

top-right

可以是 <length> 或者 <percentage>,表示边框右上角的圆角半径。只在四值语法中使用。

bottom-right

可以是 <length> 或者 <percentage>,表示边框右下角的圆角半径。只在三值或四值语法中使用。

bottom-left

可以是 <length> 或者 <percentage>,表示边框左下角的圆角半径。只在四值语法中使用。

inherit

表示四个值都从父元素计算值继承。

<length>定义圆形半径或椭圆的半长轴,半短轴。不能用负值。<percentage>使用百分数定义圆形半径或椭圆的半长轴,半短轴。水平半轴相对于盒模型的宽度;垂直半轴相对于盒模型的高度。不能用负值。

例如:

border-radius: 1em/5em;

/* is equivalent to */

border-top-left-radius:     1em 5em;
border-top-right-radius:    1em 5em;
border-bottom-right-radius: 1em 5em;
border-bottom-left-radius:  1em 5em;
border-radius: 4px 3px 6px / 2px 4px;

/* is equivalent to: */

border-top-left-radius:     4px 2px;
border-top-right-radius:    3px 4px;
border-bottom-right-radius: 6px 2px;
border-bottom-left-radius:  3px 4px;

正式语法

<length-percentage>{1,4} [ / <length-percentage>{1,4} ]?where 
<length-percentage> = <length> | <percentage>

示例

  border: solid 10px;
  /* the border will curve into a 'D' */  
  border-radius: 10px 40px 40px 10px;
  
  border: groove 1em red;  
  border-radius: 2em;
  background: gold;
  border: ridge gold;
  border-radius: 13em/3em; 
  border: none;
  border-radius: 40px 10px;  
  border: none;
  border-radius: 50%; 
  border: dotted;
  border-width: 10px 4px;
  border-radius: 10px 40px;
  border: dashed;
  border-width: 2px 4px;
  border-radius: 40px;

在线示例

样本1:http://jsfiddle.net/tripad/qnGKj/2/

样本2:http://jsfiddle.net/tripad/qnGKj/3/

样本3:http://jsfiddle.net/tripad/qnGKj/4/

样本4:http://jsfiddle.net/tripad/qnGKj/5/

样本5:http://jsfiddle.net/tripad/qnGKj/6/

规范

Specification

Status

Comment

CSS Backgrounds and Borders Module Level 3The definition of 'border-radius' in that specification.

Candidate Recommendation

Initial definition

浏览器兼容性

Feature

Chrome

Edge

Firefox

Internet Explorer

Opera

Safari

Basic Support

41 1 -webkit-

(Yes) (Yes) -webkit-

42 3 1 — 12 -moz-

9

10.54

51 3 -webkit-

Elliptical borders

(Yes)5

(Yes)

3.5

(Yes)

(Yes)

(Yes)6

4 values for 4 corners

4.0

(Yes)

(Yes)

(Yes)

(Yes)

5

Percentages

(Yes)7

(Yes)

48

(Yes)

11.59

5.17

Feature

Android

Chrome for Android

Edge mobile

Firefox for Android

IE mobile

Opera Android

iOS Safari

Basic Support

2.1 -webkit-

?

(Yes) (Yes) -webkit-

(Yes)2

Elliptical borders

?

?

(Yes)

(Yes)

?

No

?

4 values for 4 corners

?

?

(Yes)

(Yes)

?

No

?

Percentages

(Yes)7

?

(Yes)

(Yes)

?

No

(Yes)7

当前的Chrome和Safari版本会忽略<select>元素上的border-radius,除非-webkit-appearance被覆盖为适当的值。

在Firefox 50之前,圆角(带border-radius)的边框样式总是呈现为如同border-style被设为solid。这已在Firefox 50中修复。

为了符合CSS3标准,Firefox 4更改了<percentage>值的处理以符合规范。通过设定border-radius: 50%;,您可以对任意大小的元素指定椭圆作为边框。如果未设置overflow: visible,Firefox 4还会使圆角裁剪内容和图像。

在版本11.60之前的Opera中,替换元素border-radius不会有圆角。

在Chrome 4之前,斜杠/表示法不受支持。如果指定了两个值,则会在所有四个角上绘制椭圆边框。-webkit-border-radius: 40px 10px;相当于border-radius: 40px/10px;

在Safari 4.1之前,斜杠/符号不受支持。如果指定了两个值,则会在所有四个角上绘制椭圆边框。-webkit-border-radius: 40px 10px;相当于border-radius: 40px/10px;

旧版Chrome和Safari版本不支持<percentage>值(2010年11月份修复)。

<percentage> 值在Firefox 4之前以非标准方式实现。水平和垂直半径都与边框的宽度有关。

在11.50之前,Opera中 的<percentage>值的实现是错误的。

背景和边框 | Backgrounds & Borders相关

1.定位 |
2.背景 | background
3.背景附件 | background-attachment
4.背景裁剪 | background-clip
5.背景颜色 | background-color
6.背景图片 | background-image
7.背景来源 | background-origin
8.背景图片位置 | background-position
9.背景位置-x | background-position-x
10.背景位置-y | background-position-y
11.背景重复 | background-repeat
12.背景大小 | background-size
13.边框 | border
14.底部边框 | border-bottom
15.底部边框颜色 | border-bottom-color
16.左下角的边框半径 | border-bottom-left-radius
17.右下角的边框半径 | border-bottom-right-radius
18.边框底部样式 | border-bottom-style
19.边框底部宽度 | border-bottom-width
20.边框颜色 | border-color
21.边框图片 | border-image
22.边框图像开始 | border-image-outset
23.边框图像重复 | border-image-repeat
24.边框图像使用范围 | border-image-slice
25.边框图像路径 | border-image-source
26.边框图像宽度 | border-image-width
27.左边框 | border-left
28.左边框颜色 | border-left-color
29.左边框宽度 | border-left-width
30.右边框 | border-right
31.右边框颜色 | border-right-color
32.右边框样式 | border-right-style
33.右边框宽度 | border-right-width
34.边框样式 | border-style
35.边框属性 | border-top
36.边框属性颜色 | border-top-color
37.边框左上角半径 | border-top-left-radius
38.边框右上角半径 | border-top-right-radius
39.边框样式属性 | border-top-style
40.上边框宽度 | border-top-width
41.边框宽度 | border-width
42.盒子阴影 | box-shadow
43.背景和边框 | CSS Background and Borders
44.背景图像生成 | CSS Background and Borders: Border-image generator
45.边界半径生成 | CSS Background and Borders: Border-radius generator
46.框阴影生成 | CSS Background and Borders: Box-shadow generator
47.缩放背景图像 | CSS Background and Borders: Scaling background images
48.多个背景 | CSS Background and Borders: Using CSS multiple backgrounds
49.背景和边框 | CSS Backgrounds and Borders
CSS

层叠样式表( Cascading Style Sheets )是一种用来表现 HTML 或 XML 等文件样式的计算机语言。CSS 不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

CSS目录

1.动画和转换 | Animations & Transitions
2.背景和边框 | Backgrounds & Borders
3.基本框模型 | Basic Box Model
4.基本用户界面 | Basic User Interface
5.框对齐 | Box Alignment
6. 级联和继承 | Cascading & Inheritance
7.颜色 | Color
8. 合成与混合 | Compositing & Blending
9.条件和规则 | Conditional Rules
10.计数器样式 | Counter Styles
11.设备适配 | Device Adaptation
12.扩展 | Extensions
13.滤镜效果 | Filter Effects
14.灵活的框布局 | Flexible Box Layout
15.字体 | Fonts
16.片段模块 | Fragmentation
17.全屏 API | Fullscreen API
18. 生成内容 | Generated Content
19.网格布局 | Grid Layout
20.图像值 | Image Values
21.初始线格局 | Inline Layout
22.列表和计数器 | Lists & Counters
23.逻辑属性 | Logical Properties
24.面具 | Masking
25.媒体查询 | Media Queries
26.杂项 | Miscellaneous
27.Miscellaneous Level 1
28.Miscellaneous Level 2
29.运动路径 | Motion Path
30. 多列布局 | Multi-column Layout
31.命名空间 | Namespaces
32.项目模型 | Object Model View
33.网页媒体 | Paged Media
34.定位布局 | Positioned Layout
35.伪元素 | Pseudo-
36.节奏大小 | Rhythmic Sizing
37. Ruby布局 | Ruby Layout
38.可缩放矢量图形 | Scalable Vector Graphics
39.滚动快照 | Scroll Snap
40.选择 | Selectors
41.形状 | Shapes
42.文本 | Text
43.文字装饰 | Text Decoration
44.变换 | Transforms
45.值和单位 | Values & Units
46.变量 | Variables
47.写入模型 | Writing Modes
48.CSS 教程
49.CSS 创建
50.CSS Id 和 Class选择器
51.CSS 简介
52.CSS 盒子模型
53.CSS Table(表格)
54.CSS 列表样式(ul)
55.CSS 链接(link)
56.CSS Fonts(字体)
57.CSS Text(文本)
58.CSS Backgrounds(背景)
59.CSS Display(显示) 与 Visibility(可见性)
60.CSS 尺寸 (Dimension)
61.CSS 分组和嵌套
62.CSS 轮廓(outline)属性
63.CSS Border(边框)
64.CSS 图像透明/不透明
65.CSS 导航栏
66.CSS 伪元素
67.CSS 伪类
68.CSS Float(浮动)
69.CSS Position(定位)
70.CSS 总结
71.CSS 属性选择器
72.CSS 媒体类型
73.CSS 图像拼合技术
74.CSS 实例
75.CSS 组合选择符
76.响应式 Web 设计 – 框架
77.响应式 Web 设计 – 视频(Video)
78.CSS 提示工具(Tooltip)
79.CSS 布局 Overflow
80.CSS 计数器
81.CSS 表单