aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/css/border-radius/index.html
blob: eb1e31d5a671b156a4769490bb6f3bcf92547560 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
---
title: border-radius
slug: Web/CSS/border-radius
tags:
  - CSS
  - CSS 属性
  - CSS 边框
  - Web
  - 参考
  - 布局
translation_of: Web/CSS/border-radius
---
<p>{{ CSSRef("CSS Borders") }}</p>

<p><a href="/zh-CN/docs/Web/CSS">CSS</a> 属性 <strong><code>border-radius</code></strong> 允许你设置元素的外边框圆角。当使用一个半径时确定一个圆形,当使用两个半径时确定一个椭圆。这个(椭)圆与边框的交集形成圆角效果。</p>

<p><img alt="Images of CSS3 rounded corners: no rounding, rounding w/ an arc of circle, rounding w/ an arc of ellipse" class="default internal" src="/files/3638/border-radius-sh.png" style="height: 164px; width: 549px;"></p>

<div>{{EmbedInteractiveExample("pages/css/border-radius.html")}}</div>



<p>该属性是一个 <a href="/zh-CN/docs/Web/CSS/Shorthand_properties">简写属性</a>,是为了将这四个属性 {{Cssxref("border-top-left-radius")}}{{Cssxref("border-top-right-radius")}}{{Cssxref("border-bottom-right-radius")}},和 {{Cssxref("border-bottom-left-radius")}} 简写为一个属性。</p>

<p>即使元素没有边框,圆角也可以用到 {{ Cssxref("background") }} 上面,具体效果受 {{ Cssxref("background-clip") }} 影响。</p>

<p>{{Cssxref("border-collapse")}} 的值为 <code>collapse</code> 时,<code>border-radius</code> 属性不会被应用到表格(</p>)元素上。<table>




















</table>


   <em>radius</em>
   <img alt="all-corner.png" class="default internal" src="https://developer.mozilla.org/@api/deki/files/6138/=all-corner.png">
   可以是 {{ cssxref("&lt;length&gt;") }} 或者 {{cssxref("&lt;percentage&gt;")}},表示边框四角的圆角半径。只在单值语法中使用。


   <em>top-left-and-bottom-right</em>
   <img alt="top-left-bottom-right.png" class="default internal" src="https://developer.mozilla.org/@api/deki/files/6141/=top-left-bottom-right.png">
   可以是 {{ cssxref("&lt;length&gt;") }} 或者 {{cssxref("&lt;percentage&gt;")}},表示边框左上角和右下角的圆角半径。只在双值语法中使用。


   <em>top-right-and-bottom-left</em>
   <img alt="top-right-bottom-left.png" class="default internal" src="https://developer.mozilla.org/@api/deki/files/6143/=top-right-bottom-left.png">
   可以是 {{ cssxref("&lt;length&gt;") }} 或者 {{cssxref("&lt;percentage&gt;")}},表示边框右上角和左下角的圆角半径。只在双值或三值语法中使用。


   <em>top-left</em>
   <img alt="top-left.png" class="default internal" src="https://developer.mozilla.org/@api/deki/files/6142/=top-left.png">
   可以是 {{ cssxref("&lt;length&gt;") }} 或者 {{cssxref("&lt;percentage&gt;")}},表示边框左上角的圆角半径。只在三值或四值语法中使用。


   <em>top-right</em>
   <img alt="top-right.png" class="default internal" src="https://developer.mozilla.org/@api/deki/files/6144/=top-right.png">
   可以是 {{ cssxref("&lt;length&gt;") }} 或者 {{cssxref("&lt;percentage&gt;")}},表示边框右上角的圆角半径。只在四值语法中使用。


   <em>bottom-right</em>
   <img alt="bottom-rigth.png" class="default internal" src="https://developer.mozilla.org/@api/deki/files/6140/=bottom-rigth.png">
   可以是 {{ cssxref("&lt;length&gt;") }} 或者 {{cssxref("&lt;percentage&gt;")}},表示边框右下角的圆角半径。只在三值或四值语法中使用。


   <em>bottom-left</em>
   <img alt="bottom-left.png" class="default internal" src="https://developer.mozilla.org/@api/deki/files/6139/=bottom-left.png">
   可以是 {{ cssxref("&lt;length&gt;") }} 或者 {{cssxref("&lt;percentage&gt;")}},表示边框左下角的圆角半径。只在四值语法中使用。


   <code>inherit</code>

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




<dl>
 <dt><a id="&lt;length>" name="&lt;length>">{{cssxref("&lt;length&gt;")}}</a></dt>
 <dd>{{ cssxref("&lt;length&gt;") }} 定义圆形半径或椭圆的半长轴,半短轴。负值无效。</dd>
 <dt><a id="&lt;percentage>" name="&lt;percentage>">{{cssxref("&lt;percentage&gt;")}}</a></dt>
 <dd>使用百分数定义圆形半径或椭圆的半长轴,半短轴。水平半轴相对于盒模型的宽度;垂直半轴相对于盒模型的高度。负值无效。</dd>
</dl>

<p>例如:</p>

<pre class="brush: css">border-radius: 1em/5em;

/* 等价于: */

border-top-left-radius:     1em 5em;
border-top-right-radius:    1em 5em;
border-bottom-right-radius: 1em 5em;
border-bottom-left-radius:  1em 5em;
</pre>

<pre class="brush: css">border-radius: 4px 3px 6px / 2px 4px;

/* 等价于: */

border-top-left-radius:     4px 2px;
border-top-right-radius:    3px 4px;
border-bottom-right-radius: 6px 2px;
border-bottom-left-radius:  3px 4px;
</pre>

<h3 id="Formal_syntax">Formal syntax</h3>

{{csssyntax}}

<h2 id="示例">示例</h2>

<pre style="display: inline-block; margin: 10px; border: solid 10px; border-radius: 10px 40px 40px 10px;">  border: solid 10px;
  /* the border will curve into a 'D' */
  border-radius: 10px 40px 40px 10px;
</pre>

<pre style="display: inline-block; margin: 10px; border: groove 1em red; border-radius: 2em;">  border: groove 1em red;
  border-radius: 2em;
</pre>

<pre style="display: inline-block; margin: 10px; background: gold; border: ridge gold; border-radius: 13em/3em;">  background: gold;
  border: ridge gold;
  border-radius: 13em/3em;
</pre>

<pre style="display: inline-block; margin: 10px; background: gold; border: none; border-radius: 40px 10px;">  border: none;
  border-radius: 40px 10px;
</pre>

<pre style="display: inline-block; margin: 10px; background: black; color: white; border: none; border-radius: 50%;">  border: none;
  border-radius: 50%;
</pre>

<h2 id="在线示例">在线示例</h2>

<p>示例 1 : <a href="http://jsfiddle.net/Tripad/qnGKj/2/">http://jsfiddle.net/Tripad/qnGKj/2/</a></p>

<p>示例 2 : <a href="http://jsfiddle.net/Tripad/qnGKj/3/">http://jsfiddle.net/Tripad/qnGKj/3/</a></p>

<p>示例 3 : <a href="http://jsfiddle.net/Tripad/qnGKj/4/">http://jsfiddle.net/Tripad/qnGKj/4/</a></p>

<p>示例 4 : <a href="http://jsfiddle.net/Tripad/qnGKj/5/">http://jsfiddle.net/Tripad/qnGKj/5/</a></p>

<p>示例 5 : <a href="http://jsfiddle.net/Tripad/qnGKj/6/">http://jsfiddle.net/Tripad/qnGKj/6/</a></p>

<h2 id="注意">注意</h2>

<ul>
 <li>在 Gecko 中,点状和虚线状圆角边框被渲染为了实线 {{ bug("382721") }}.</li>
 <li>当表格元素的 {{ Cssxref("border-collapse") }} 为 <code>collapse</code> 时 <code style="font-style: normal; font-size: 13.63636302948px; line-height: 19.0909080505371px;">border-radius</code><span style="font-size: 13.63636302948px; line-height: 19.0909080505371px;"> 不会生效。</span></li>
 <li>旧版本 WebKit 对于多重值有不同的处理方式,见下。</li>
</ul>

<h2 id="规范">规范</h2>

<table class="standard-table">
 <thead>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td>{{ SpecName('CSS3 Backgrounds', '#border-radius', 'border-radius') }}</td>
   <td>{{ Spec2('CSS3 Backgrounds') }}</td>
   <td> </td>
  </tr>
 </tbody>
</table>

<p>{{cssinfo}}</p>


<h2 id="浏览器兼容性">浏览器兼容性</h2>



<p>{{Compat("css.properties.border-radius")}}</p>

<p>{{ CompatibilityTable() }}</p>

<div id="compat-desktop">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>Firefox (Gecko)</th>
   <th>Chrome</th>
   <th>Internet Explorer</th>
   <th>Opera</th>
   <th>Safari</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>{{ CompatGeckoDesktop("2.0") }}<br>
    {{ CompatGeckoDesktop("1.0") }}{{ property_prefix("-moz") }}</td>
   <td>4.0<br>
    0.2{{ property_prefix("-webkit") }}</td>
   <td>9.0</td>
   <td>10.5</td>
   <td>5.0<br>
    3.0{{ property_prefix("-webkit") }}</td>
  </tr>
  <tr>
   <td>Elliptical borders</td>
   <td>{{ CompatGeckoDesktop("1.9.1") }}</td>
   <td>yes</td>
   <td>yes</td>
   <td>yes</td>
   <td>yes, but see below</td>
  </tr>
  <tr>
   <td>4 values for 4 corners</td>
   <td>yes</td>
   <td>4.0</td>
   <td>yes</td>
   <td>yes</td>
   <td>5.0</td>
  </tr>
  <tr>
   <td>Percentages</td>
   <td>yes<br>
    was {{ non-standard_inline() }} (see below)</td>
   <td>yes</td>
   <td>yes</td>
   <td>11.5</td>
   <td>5.1</td>
  </tr>
 </tbody>
</table>
</div>

<div id="compat-mobile">
<table class="compat-table">
 <tbody>
  <tr>
   <th>Feature</th>
   <th>iOS Safari</th>
   <th>Opera Mini</th>
   <th>Opera Mobile</th>
   <th>Android Browser</th>
  </tr>
  <tr>
   <td>Basic support</td>
   <td>3.2{{ property_prefix("-webkit") }}</td>
   <td>{{ CompatNo() }}</td>
   <td>{{ CompatNo() }}</td>
   <td>2.1{{ property_prefix("-webkit") }}</td>
  </tr>
  <tr>
   <td>Elliptical borders</td>
   <td>{{ CompatUnknown() }}</td>
   <td>{{ CompatNo() }}</td>
   <td>{{ CompatNo() }}</td>
   <td>{{ CompatUnknown() }}</td>
  </tr>
  <tr>
   <td>4 values for 4 corners</td>
   <td>{{ CompatUnknown() }}</td>
   <td>{{ CompatNo() }}</td>
   <td>{{ CompatNo() }}</td>
   <td>{{ CompatUnknown() }}</td>
  </tr>
  <tr>
   <td>Percentages</td>
   <td>{{ CompatUnknown() }}</td>
   <td>{{ CompatNo() }}</td>
   <td>{{ CompatNo() }}</td>
   <td>{{ CompatUnknown() }}</td>
  </tr>
 </tbody>
</table>
</div>

<h3 id="&lt;percentage>_值"><code>&lt;percentage&gt;</code></h3>

<ul>
 <li>在旧版本的 Chrome 和 Safari 中不支持。(<a class="external" href="http://trac.webkit.org/changeset/66615">fixed in Sepember 2010</a>)</li>
 <li>在 11.50 版本以前的 Opera 中实现有问题。</li>
 <li>Gecko 2.0 (Firefox 4) 版本前实现不标准:水平半轴和垂直半轴<strong></strong>相对于盒子模型的宽度。</li>
 <li>在旧版本的 iOS (iOS 5 之前) 和 Android 中 (WebKit 532 之前) 不支持。</li>
</ul>

<h3 id="Gecko_notes">Gecko notes</h3>

<p>In Gecko 2.0 <code>-moz-border-radius</code> was renamed to <code>border-radius</code>; <code>-moz-border-radius</code> was supported as an alias until Gecko 12.0. In order to conform to the CSS3 standard, Gecko 2.0</p>

<ul>
 <li>changes the handling of {{cssxref("&lt;percentage&gt;")}} values to match the specification. You can specify an ellipse as border on an arbitrary sized element just with <code>border-radius: 50%;</code></li>
 <li>makes rounded corners clip content and images (if {{ cssxref("overflow") }}<code>: visible</code> is not set)</li>
</ul>

<div class="note"><strong>Note:</strong> Support for the prefixed version (<code>-moz-border-radius</code>) was removed in Gecko 13.0 {{ geckoRelease("13.0") }}.</div>

<h3 id="WebKit_notes">WebKit notes</h3>

<p>旧版本的 Safari 和 Chrome (532.5 之前)</p>

<ul>
 <li>只支持<strong>单值</strong>设定四个角。必须使用<a href="/en/CSS/border-top-left-radius#Examples" style="text-decoration: underline;" title="en/CSS/border-top-left-radius#Examples">完整值</a>来设置不同角。 </li>
 <li>不支持斜杠 / 符号,如果指定了两个值,那么四个角都为椭圆角.
  <pre>/* 它们是等价的 */

-webkit-border-radius: 40px 10px;
        border-radius: 40px/10px;
</pre>
 </li>
</ul>

<h3 id="Opera_notes">Opera notes</h3>

<p>In Opera (prior to Opera 11.60), applying <code>border-radius</code> to replaced elements will not have rounded corners.</p>

<h2 id="另请参阅">另请参阅</h2>

<ul>
 <li>与 border-radius 相关的 CSS 属性:{{Cssxref("border-top-left-radius")}}, {{Cssxref("border-top-right-radius")}}, {{Cssxref("border-bottom-right-radius")}}, {{Cssxref("border-bottom-left-radius")}}</li>
</ul>