CSS(Cascading Style Sheet,層疊樣式表)定義瞭如何顯示HTML元素,給HTML設置樣式,讓他更加美觀. 當瀏覽器讀到這個樣式表, 他就會按照這個樣式來對文檔進行格式化(渲染).css
CSS實例html
每一個css樣式由兩個組成部分:選擇器和聲明. 聲明包括屬性和屬性值. 每一個聲明以後用分號結束.git
行內樣式(在標籤尖角號裏面的寫屬性, 不建議大規模使用)github
<p style="color: red">Hello world.</p>
內部樣式(將css樣式集中寫在網頁的<head></head>標籤對裏面 的<style></style>標籤對 中)瀏覽器
<head> <meta charset="UTF-8"> <title>Title</title> <style> p{ background-color: red; } </style> </head>
外部樣式(將css寫在單獨的一個文件中,而後在頁面引入便可.推薦使用)字體
<!--寫在HTML文件的<head>下面--> <link rel="stylesheet" href="練習.css"> # 如今寫的這個 .css文件是和HTML文件在一個目錄下,若是不在一個目錄,須要加上.css這個文件的路徑
而後在css文件中加上HTML文件中想要被渲染元素的效果url
元素選擇器(直接找標籤名)spa
p標籤就寫p{}, div標籤就寫div{}, h標籤就寫h{} (缺點:若是有不少個p標籤,你只想改其中一個,改不了)3d
ID選擇器code
id不能重複 ,想要給多個div標籤同時添加css樣式,使用id 就會很複雜,須要用下面的類選擇器
注意: 類名不要用數字開頭(有的瀏覽器不認)
分組(多個選擇器用逗號分隔)
當多個元素的樣式相同時, 沒有必要重複分別設置, 咱們能夠用逗號隔開設置統同樣式
嵌套
多個選擇器混合使用,好比把c1內部全部的p標籤字體都設置成紅色
.c1 p { color: red; }
能夠根據標籤的不一樣狀態在進一步的區分,好比一個a標籤,點擊前,點擊時,點擊後有三個不一樣的狀態.
/* 未訪問的連接 */ a:link { color: #FF0000 } /* 已訪問的連接 */ a:visited { color: #00FF00 } /* 鼠標移動到連接上 */ 這個用的比較多 a:hover { color: #FF00FF } /* 選定的連接 */ 就是鼠標點下去尚未擡起來的那個瞬間,可讓它變顏色 a:active { color: #0000FF } /*input輸入框獲取焦點時樣式*/ input:focus { #input默認的有個樣式,鼠標點進去的時候,input框會變淺藍色的那麼個感受 #outline: none; background-color: #eee; #框裏面的背景色 }
顏色屬性被用來設置文字的顏色。 顏色是經過CSS最常常的指定: 1.十六進制值 - 如: #FF0000 #前兩位是表示紅,中間兩位表示綠,後面兩位表示藍,F是最高級別,0表示最低級別(無色) 2.一個RGB值 - 如: RGB(255,0,0) #紅綠藍就是RGB的意思,第一個參數是紅,最高255,最低0 3.顏色的名稱 - 如: red 還有rgba(255,0,0,0.3),第四個值爲alpha, 指定了色彩的透明度/不透明度,它的範圍爲0.0到1.0之間。
p { text-align:left; #左對齊 text-align:right; #右對齊 text-align:center; #居中 } a { text-decoration:none; #去掉a標籤默認的下劃線 }
p {
text-indent: 32px; # 首行縮進兩個字符,(一個字在頁面上顯示16px)
}
/*背景顏色*/ background-color: red; /*背景圖片*/ background-image: url('1.jpg'); #url裏面是圖片路徑,若是和你的html文件在一個目錄下,使用這種相對路徑就好了,來個葫蘆娃圖片試一下 background-repeat: no-repeat; /* 背景重複 repeat(默認):背景圖片沿着x軸和y軸重複平鋪,鋪滿整個包裹它的標籤 repeat-x:背景圖片只在水平方向上平鋪 repeat-y:背景圖片只在垂直方向上平鋪 no-repeat:背景圖片不平鋪 */ /*背景位置*/ background-position: right top;
邊框屬性
1. border-width 寬度 2. border-style 樣式 3. border-color 顏色
4. border-radius 參數>=50%就是正圓
border-radius: 50% 就是圓
邊框樣式
none 無邊框 dotted 點狀虛線邊框 dashed 矩形虛線邊框 solid 實線邊框
通用的簡寫方式
.c1 { border: 2px solid red; }
固然還能夠分開寫呈現不一樣的效果
.c1 { border-top-style:dotted; border-top-color: red; border-right-style:solid; border-bottom-style:dotted; border-left-style:none; }
下面玩一個神奇的東西
document.body.contentEditable=true
用於控制HTML元素的顯示效果
常常用的是 display:''inline-block'' 既能像塊級元素那樣設置寬高,也能像行內元素那樣在一行內展現, 塊級標籤本身佔一行,行內標籤能夠好幾個佔一行.
在css裏面,每一個標籤能夠稱爲一個盒子模型.
1. margin(外邊距): 控制元素之間的距離 2. padding(內邊距): 控制內容與邊框之間的距離 3. border(邊框): 圍繞在內邊距和內容外的邊框 4. content(內容): 盒子的內容,顯示文本和圖像
注意: 在建HTML文件的時候如今<head>裏面的<style>裏面寫上body{margin: 0; padding: 0;}
.margin-test { margin: 5px 10px 15px 20px; } # 這是簡寫 分別對應的是 上右下左
注意: left 和 right類寫在了clearfix類裏面
給left 和 c3 添加一些效果, float是爲了讓left 浮起來
上述操做後會出現下面的效果,可是咱們想要的是讓這兩個塊不重疊
要想出現不重疊的效果須要清除浮動
下面這個是清除浮動後的效果
兩個主要,經常使用的屬性
hidden 內容會被修剪,而且其他內容是不可見的. scroll 內容會被修剪可是瀏覽器會顯示滾動條以便查看其他內容
舉個例子:
咱們在一個標籤裏寫大量文字,可是這個標籤很小的時候,文字就會溢出.
結果是這樣
加上overflow:hidden;以後
結果是這樣
設置成overflow:scroll;以後就會出現滾動條.
結果是這樣
圓形頭像設置
<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>圓形的頭像示例</title> <style> * { margin: 0; padding: 0; background-color: #eeeeee; } .header-img { width: 150px; height: 150px; border: 3px solid white; border-radius: 50%; #圓形的邊框 overflow: hidden; #溢出的內容隱藏 } .header-img>img { width: 100%; # 若是圖片尺寸大於標籤尺寸那就按照父級大小,若是小於標籤尺寸,就按照本身的來. } </style> </head> <body> <div class="header-img"> <img src="https://q1mi.github.io/Blog/asset/img/head_img.jpg" alt=""> </div> </body> </html>
relative(相對定位)
相對定位是對於本身的原始位置開始移動,無論移動到什麼位置,都不會出現塌陷效果.
# 寫在要移動的元素裏面
position:relative; left:100px; # 從初使位置移動距離左邊100px bottom:100; # 從初使位置移動距離下面100px
absolute(絕對定位)
# absolute先找父級定位,若是沒有在往上找,都沒有的話就按照body位置移動 position:absolute; right:100px; # 以上級的位置做標準向左移動100px top: -100px # 以上級的位置做標準想上移動100px
fixed(固定) 無論頁面怎麼滾動,都在屏幕的某個位置
# 固定在屏幕的固定位置 position:fixed left:100px # 距離屏幕左邊100px位置 bottom:100px # 距離屏幕底部100px位置
z-index
設置對象的層疊順序,通常用在模態對話框上(就是你點擊註冊的時候會彈出來一個框,這個框在你瀏覽的頁面的上層.)
1. z-index 值表示誰壓着誰,數值大的蓋住數值小的. 2. 只有定位了元素,纔能有z-index,也就是說無論相對定位, 絕對定位,固定定位,均可以使用z-index,可是float不行. 3. z-index值沒有單位,就是一個正整數,默認爲0,若是你們的值都同樣,那麼誰寫在HTML後面,誰壓着誰. 4. 從父現象:父親慫了,兒子再牛逼也沒用.
# z-index:1000;
寫一個導航欄
<!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>li標籤的float示例</title> <style> /*清除瀏覽器默認外邊距和內填充*/ * { margin: 0; padding: 0; } a { text-decoration: none; /*去除a標籤默認的下劃線*/ } .c1 { background-color: black; height: 40px; width: 100%; position: fixed; top: 0; } ul { list-style-type: none; /*刪除列表默認的圓點樣式*/ margin: 0; /*刪除列表默認的外邊距*/ padding: 0; /*刪除列表默認的內填充*/ } /*li元素向左浮動*/ li { float: left; } li > a { display: block; /*讓連接顯示爲塊級標籤*/ padding: 0 15px; /*設置左右各15像素的填充*/ # 寫4個值是上右下左,寫兩個值第一個表明上下,第二個表明左右 color: #b0b0b0; /*設置字體顏色*/ line-height: 40px; /*設置行高*/ # 這個line-height的高度要與導航欄的高同樣才能居中 } /*鼠標移上去顏色變白*/ li > a:hover { color: #fff; } /*清除浮動 解決父級塌陷問題*/ .clearfix:after { content: ""; display: block; clear: both; } </style> </head> <body> <!-- 頂部導航欄 開始 --> <div class="c1"> <ul class="clearfix"> # <ul> 是無序列表 <li><a href="">阿里巴巴</a></li> #<li>是寫在<ul>或者<ol>(有序列表)裏面的 <li><a href="">騰訊</a></li> <li><a href="">百度</a></li> <li><a href="">字節跳動</a></li> <li><a href="">滴滴</a></li> <li><a href="">美團</a></li> </ul> </div> <!-- 頂部導航欄 結束 --> </body> </html>