CSS border-radius
繪製圓角效果是常見的操作,因為帶有一定弧度的圖案可能更加圓潤自然。
CSS3之前,實現圓角效果非常困難,通常採用邊框層疊累計以達到圓角視覺效果。
由於border-radius屬性的出現,使得繪製圓角效果變得更為簡單靈活。
下面結合程式碼例項詳細介紹一下此屬性的用法,首先看一段例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> div { margin:0px auto; width: 100px; height: 100px; background-color:green; border-radius: 50px; } </style> </head> <body> <div></div> </body> </html>
程式碼執行效果截圖如下:
矩形的長寬高是100px,然後將圓角半徑設定為50px,生成一個圓形效果。
可見通過border-radius屬性可以非常簡單的實現圓角效果,下面詳細對其一下介紹。
一.語法結構:
border-radius屬性繪製的圓角不一定是正圓,也可能是橢圓,具體效果由水平半徑與垂直半徑決定。
簡單總結如下:
(1).一個矩形可以具有一到四個圓角。
(2).圓角是一個正圓或者橢圓的四分之一。
(3).圓角的水平半徑和垂直半徑並不一定相等。
再來分析一下它的具體語法實現,屬性值用於規定圓角半徑的尺寸。
既可以是length格式,也可以是百分比格式,後續文章會進行詳細分析。
屬性值大致可以分為具有斜槓和不具有斜槓兩種。
不具有斜槓:
如果引數值不具有斜槓,那麼水平半徑與垂直半徑尺寸相同。
(1).一個屬性值:
此屬性值作用於四個圓角,程式碼片段如下:
[CSS] 純文字檢視 複製程式碼div { margin:0px auto; width: 100px; height: 100px; background-color:green; border-radius: 20px; }
程式碼執行效果截圖如下:
(2).兩個屬性值:
第一個屬性值作用於左上和右下圓角。
第二個屬性值作用於右上和左下圓角。
程式碼片段如下:
[CSS] 純文字檢視 複製程式碼div { margin:0px auto; width: 100px; height: 100px; background-color:green; border-radius: 20px 10px; }
程式碼執行效果截圖如下:
(3).三個屬性值:
第一個屬性值作用於左上圓角。
第二個屬性值作用於右上和左下圓角。
第三個屬性值作用於右下圓角。
程式碼片段如下:
[CSS] 純文字檢視 複製程式碼div { margin:0px auto; width: 100px; height: 100px; background-color:green; border-radius: 20px 10px 30px; }
程式碼執行效果截圖如下:
(4).四個屬性值:
第一個屬性值作用於左上圓角。
第二個屬性值作用於右上圓角。
第三個屬性值作用於右下圓角。
第四個屬性值作用於左下圓角。
程式碼片段如下:
[CSS] 純文字檢視 複製程式碼div { margin:0px auto; width: 100px; height: 100px; background-color:green; border-radius: 10px 20px 30px 40px; }
程式碼執行效果截圖如下:
具有斜槓:
不具有斜槓的時候,水平半徑與垂直半徑的尺寸沒法分別規定。
採用具有斜槓的語法結構,可以解決上述問題,看如下程式碼:
[CSS] 純文字檢視 複製程式碼div { margin:0px auto; width: 100px; height: 100px; background-color:green; border-radius: 10px 20px 30px 40px / 40px 30px 20px 10px; }
程式碼執行效果截圖如下:
分析如下:
(1).斜槓左側的引數用於規定圓角水平直徑尺寸。
(2).斜槓右側得引數用於規定圓角垂直直徑尺寸。
(3).兩側的資料按照左上角、右上角、右下角和左下角順序生效。
(4).兩側資料可以規定一個或者四個,生效順序與沒有斜槓時相同。
二.百分數作為屬性值:
屬性值也可以是百分比格式,使用方式與length格式相同。
唯一需要搞清楚的是,百分別格式的尺寸參考物件。
為了節省篇幅,具體參閱CSS border-radius 百分數一章節。
三.帶有邊框的圓角效果:
前面的例子中,矩形不帶有邊框,當然也可以帶邊框。
原理都是一樣的,單獨拿出來介紹,主要是為了提醒幾個注意點。
為了節省篇幅,具體參閱CSS border-radius 帶邊框一章節。
四.半徑之和超過元素尺寸:
有可能各種原因導致相鄰的半徑之和可能會超過元素對應方位尺寸。
看如下程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> div { margin:0px auto; width: 100px; height: 100px; background-color:green; border-radius: 200px; } </style> </head> <body> <div></div> </body> </html>
div的寬高都是100px,但是設定圓角半徑尺寸是200px。
很明顯,相鄰圓角直徑的和是400px,遠超過div的尺寸。
這個時候,瀏覽器會自動重新計算一個恰當的值,保證使它們處於不重合的臨界狀態。
所以瀏覽器重新給半徑賦值為50px,恰好生成一個正圓,相鄰的直徑恰好不會重合。
五.水平直徑和垂直直徑尺寸比例規定:
這是很重要的一個特點,很多初學者比較容易忽視。
看如下程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> div { margin:0px auto; width: 200px; height: 300px; background-color:green; border-radius:200px; } </style> </head> <body> <div></div> </body> </html>
程式碼執行效果截圖如下:
程式碼分析如下:
(1).規定水平和垂直半徑的尺寸都為200px。
(2).但是矩形寬度只有200px,所以瀏覽器會重新計算,將水平直徑尺寸定位100px。
(3).矩形高度是300px,那是不是垂直半徑被重新計算為150px呢,答案是否定的。
(4).我們規定水平和垂直半徑的尺寸都是200px,它們是相等的,這個比例要永恆保持下去。
(5).所以垂直半徑的尺寸也是100px。
相關文章
- css3 border-radiusCSSS3
- CSS border-radius 帶邊框CSS
- CSS3 border-radius帶邊框CSSS3
- CSS border-radius 百分比CSS
- CSS3 border-radius百分數CSSS3
- [譯] CSS border-radius 還可以這麼用?CSS
- ios使用border-radius時失效iOS
- 在安卓手機中rem單位border-radius:50%畫圓變形的解決方案安卓REM
- 移動端設定了overflow:hidden和border-radius,子元素超出部分不隱藏問題?
- css 命名:BEM, scoped css, css modules 與 css-in-jsCSSJS
- 【CSS】CSS常用技巧CSS
- CSS速刷 - CSS效果CSS
- css43 CSS SpecificityCSS
- css15 CSS MarginsCSS
- css16 CSS PaddingCSSpadding
- CSS——CSS基礎(1)CSS
- CSS——CSS 值和單位CSS
- CSS速刷 - CSS動畫CSS動畫
- css34 CSS Opacity / TransparencyCSSS3
- css38 CSS Image SpritesCSSS3
- css44 CSS The !important RuleCSSImport
- css45 CSS Math FunctionsCSSFunction
- css23 CSS Links, CursorsCSS
- css11 CSS RGB ColorsCSS
- css12 CSS HEX ColorsCSS
- css17 CSS Height, WidthCSS
- css18 CSS Box ModelCSS
- 【CSS】CSS簡介,CSS基礎選擇器詳解CSS
- CSSCSS
- CSS中的“大白”——CSS 動畫CSS動畫
- CSS——CSS 結構和層疊CSS
- css26 CSS Layout - The display PropertyCSS
- WebRTC與CSS濾鏡(CSS filter)WebCSSFilter
- CSS系列 (03):CSS三大特性CSS
- Css規範整理:2、css盒模型CSS模型
- CSS基礎:CSS變數簡介CSS變數
- CSS flexCSSFlex
- CSS E:not()CSS