上一篇博客中,概述瞭如何在 HTML 文檔中使用 CSS,以及如何選擇 HTML 元素,而且在文檔的最後以表格的形式給出了 CSS 中全部的屬性。在接下來的這篇博客中,將闡述主要 HTML 元素的可控制 CSS 樣式,並以示例的方式展現如何使用 CSS 設置 HTML 元素的樣式。 一個 HTML 元素,默認狀況下是沒有渲染效果的,一般須要藉助 CSS 來賦予其華麗的樣式。可是 CSS 的屬性衆多,如何去學習,並在實踐中快速的運用這些屬性顯得尤其重要。接下來會對這些屬性,按照本身的思惟進行簡單的梳理,但願能夠拋磚引玉,啓發你們的思惟。 你們能夠思考一下:咱們使用 CSS 來幹什麼?設置 HTML 元素的樣式。在這裏我以爲 HTML 元素是首要的核心,然而展現在 Web 頁面上的 HTML 元素,是以一個個盒子的形式展現的。那麼咱們就首先來介紹一下盒模型,以此爲基礎逐漸地切入到 HTML 元素的樣式。
如圖css
代碼html
HTML 文檔瀏覽器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 連接到外部樣式表 --> <link rel="stylesheet" href="mystyle.css"> <title>CSS 樣式(初級)</title> </head> <body> <!-- 盒模型 --> <div id="margin">Margin <div id="border">Border <div id="padding">padding <div id="content">Content </div> </div> </div> </div> </body> </html>
CSS 文件學習
#margin { background-color: lightgray; width: 500px; height: 350px; margin: 100px; padding-top: 10px; padding-left: 25px; } #border { background-color: blue; width: 450px; height: 300px; padding-top: 10px; padding-left: 25px; text-align: center; } #padding { background-color: orange; width: 400px; height: 250px; padding-top: 10px; padding-left: 25px; text-align: right; } #content { background-color: white; width: 350px; height: 200px; padding-top: 10px; padding-left: 25px; text-align: left; }
代碼url
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 連接到外部樣式表 --> <link rel="stylesheet" href="mystyle.css"> <title>CSS 樣式(初級)</title> </head> <body> <div id="container"> <div id="content"> 注意 外邊距的變化 </div> </div> </body> </html>
body { background-color: lightgray; } #content { width: 300px; height: 230px; /*指定四個方向的外邊距都爲 25px*/ margin: 25px; background-color: white; }
代碼spa
#content { width: 300px; height: 230px; margin: 25px 50px; background-color: white; }
三個參數3d
代碼code
#content { width: 300px; height: 230px; margin: 25px 50px 100px; background-color: white; }
四個參數htm
代碼blog
#content { width: 300px; height: 230px; margin: 25px 50px 100px 125px; background-color: white; }
普通寫法
#content { width: 300px; height: 230px; margin-top: 50px; margin-left: 60px; background-color: white; }
border-style
樣式 | 含義 |
---|---|
dotted | 點線框 |
dashed | 虛線框 |
solid | 實線框 |
double | 上邊界,每一個邊界的寬度等於 border-width |
groove | 3D 溝槽邊框 |
ridge | 3D 脊邊框 |
inset | 3D的嵌入邊框 |
outset | 3D突出邊框 |
HTML 文檔
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 連接到外部樣式表 --> <link rel="stylesheet" href="mystyle.css"> <title>CSS 樣式(初級)</title> </head> <body> <div id="border1"></div> <br> <div id="border2"></div> </body> </html>
CSS 文件
#border1 { width: 100px; height: 80px; /*邊框 普通寫法*/ border-style: solid; border-width: 2.5px; border-color: red; } #border2 { width: 100px; height: 80px; /*邊框 簡寫形式*/ border: solid 2.5px red; }
效果
普通寫法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 連接到外部樣式表 --> <link rel="stylesheet" href="mystyle.css"> <title>CSS 樣式(初級)</title> </head> <body> <div id="border1"></div> <br> <div id="border2"></div> <br> <div id="border3"></div> <br> <div id="border4"></div> </body> </html>
簡寫(四個值分別對應與:左上、右上、右下、左下)
#border1 { width: 60px; height: 35px; /*邊框 普通寫法*/ border-style: solid; border-width: 2.5px; border-color: red; /*邊框圓角*/ border-radius: 8px 3px 12px 20px; } #border2 { width: 60px; height: 35px; /*邊框 簡寫形式*/ border: solid 2.5px red; /*邊框圓角*/ border-radius: 8px 5px 20px; } #border3 { width: 60px; height: 35px; /*邊框 簡寫形式*/ border: solid 2.5px red; /*邊框圓角*/ border-radius: 8px 20px; } #border4 { width: 60px; height: 35px; /*邊框 簡寫形式*/ border: solid 2.5px red; /*邊框圓角*/ border-radius: 8px; }
效果
語法
box-shadow: h-shadow v-shadow blur spread color inset;
各個屬性的含義
屬性 | 含義 | 可選 |
---|---|---|
h-shadow | 水平陰影的位置(能夠爲負值) | 必需 |
v-shadow | 垂直陰影的位置(能夠爲負值) | 必需 |
blur | 模糊距離 | 可選 |
spread | 陰影的大小 | 可選 |
color | 陰影的顏色 | 陰影的顏色 |
inset | 從外層的陰影(開始時)改變陰影內側陰影 | 可選 |
HTML 文檔
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 連接到外部樣式表 --> <link rel="stylesheet" href="mystyle.css"> <title>CSS 樣式(初級)</title> </head> <body> <div id="border1"></div> </body> </html>
CSS 文件
#border1 { width: 60px; height: 35px; /*邊框 普通寫法*/ border-style: solid; border-width: 2.5px; border-color: red; /*邊框圓角*/ border-radius: 8px 3px 12px 20px; box-shadow: 15px -8px 8px black; }
效果
語法
border-image: source slice width outset repeat;
各個屬性的含義
屬性 | 含義 |
---|---|
source | 指定要用於繪製邊框的圖像的位置 |
slice | 圖像邊界向內偏移 |
width | 圖像邊界的寬度 |
outset | 指定在邊框外部繪製 border-image-area 的量 |
repeat | 如何延展和鋪排邊框圖像的邊緣和中間部分 |
repeat 屬性的取值
取值 | 含義 |
---|---|
stretch | 拉伸圖像來填充區域(默認值) |
repeat | 平鋪圖像來填充區域 |
round | 相似 repeat 值。若是沒法完整平鋪全部圖像,則對圖像進行縮放以適應區域 |
space | 相似 repeat 值。若是沒法完整平鋪全部圖像,擴展空間會分佈在圖像周圍 |
initial | 將此屬性設置爲默認值 |
inherit | 從父元素中繼承該屬性 |
HTML 文檔
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 連接到外部樣式表 --> <link rel="stylesheet" href="mystyle.css"> <title>CSS 樣式(初級)</title> </head> <body> <div id="border2"></div> <br> <div id="border3"></div> <br> <div id="border4"></div> </body> </html>
CSS 文件
#border2 { width: 100px; height: 70px; border-width: 30px; border-image: url("border.png") 30 30 round; } #border3 { width: 100px; height: 70px; border-width: 30px; border-image: url("border.png") 30 30; } #border4 { width: 100px; height: 70px; border-width: 30px; border-image: url("border.png") 90 90; }
效果
由以上 Margin、Padding、Border 三個樣式的介紹,你是否發現了某些類似的地方。他們均可以設置不一樣方向上(上下左右,)的屬性值,在未指定特定方向的狀況下,默認按照順時針的方向匹配,且遵循中間對稱原則(即簡寫時,若只有三個值,則中間的那個值表示 左右(或 右上,左下) 兩個邊框的屬性值)。 你是否還發現他們有一些通用的屬性,好比說:width、color;並且還有一些特有屬性,好比說:border-style、border-image、border-radius。但願你對這些屬性逐漸地敏感起來,從而能夠推測出一些 HTML 元素所具備的屬性(儘管你不肯定)。好比說:對於文本(包含文本的 HTML 元素,好比:<p>),都具備 color、font-size、font-family 等屬性。不要問我問什麼,這是常識。 你是否感受到 Margin、Padding、Border 這些樣式實際上是 HTML 元素額外的裝飾品。盒模型的內容纔是真正的 HTML 元素定義的內容。在下一篇博客中,會詳述盒模型的內容,在那裏你會看到更多關於盒模型的思考。 多思考,你會發現不少有趣的事情,好比說:天才和逗比真的能夠是一我的(你的生活中遇到這樣的人了嗎?)。