CSS,通常稱為CSS樣式表或?qū)盈B樣式表(級(jí)聯(lián)樣式表)。主要用于設(shè)置HTML頁(yè)面中的文本內(nèi)容(字體、大小、對(duì)齊方式等)、圖形的外形(寬高、邊框樣式、邊距等)以及版面布局和外觀顯示樣式。
稱行內(nèi)樣式、行間樣式. 是通過(guò)標(biāo)簽的style屬性來(lái)設(shè)置元素的樣式
基本語(yǔ)法如下:
<標(biāo)簽名 style="屬性1:屬性值1;屬性2:屬性值2;屬性3:屬性值3">內(nèi)容</標(biāo)簽名>
任何擁有HTML標(biāo)簽都擁有style屬性,用來(lái)設(shè)置行內(nèi)式。
注意:
style其實(shí)就是標(biāo)簽的屬性
樣式屬性和值之間是 ':'
多組屬性之間用 ';'隔開。
只能控制當(dāng)前標(biāo)簽及嵌套在其中的標(biāo)簽
稱內(nèi)嵌式 是將CSS代碼集中卸載HTML文檔的head頭部標(biāo)簽中,并且用style標(biāo)簽定義。
語(yǔ)法基本語(yǔ)法格式如下:
<head> <style type="text/css"> 選擇器(選擇的標(biāo)簽) { 屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; } </style> </head>
style標(biāo)簽一般位于head標(biāo)簽中,當(dāng)然理論上他可以放在HTML文檔的任何地方。
type="text/css" 在html5中可以省略。
只能控制當(dāng)前的頁(yè)面
注意:
稱鏈入式 是將所有的樣式放在一個(gè)或多個(gè)以上.css為擴(kuò)展名的外部樣式表文件中,通過(guò)link標(biāo)簽將外部樣式表文件鏈接到HTML文檔中。
其基本語(yǔ)法格式如下:
<head> <link rel="stylesheet" type="text/css" href="css文件路徑" </head>
注意 :
屬性 | 作用 |
---|---|
rel | 定義當(dāng)前文檔與被鏈接文檔之間的關(guān)系,在這里需要指定為“stylesheet”,表示被鏈接的文檔是一個(gè)樣式表文件。 |
type | 定義所鏈接文檔的類型,在這里需要指定為“text/CSS”,表示鏈接的外部文件為CSS樣式表。我們都可以省略 |
href | 定義所鏈接外部樣式表文件的URL,可以是相對(duì)路徑,也可以是絕對(duì)路徑。 |
link 是個(gè)單標(biāo)簽
link標(biāo)簽需要放在head頭部標(biāo)簽中,并且指定link標(biāo)簽的三個(gè)屬性。
樣式表 | 優(yōu)點(diǎn) | 缺點(diǎn) | 使用情況 | 控制范圍 |
---|---|---|---|---|
行內(nèi)樣式表 | 書寫方便,權(quán)重高 | 沒(méi)有實(shí)現(xiàn)樣式和結(jié)構(gòu)相分離 | 較少 | 控制一個(gè)標(biāo)簽(少) |
內(nèi)部樣式表 | 部分結(jié)構(gòu)和樣式相分離 | 沒(méi)有徹底分離 | 較多 | 控制一個(gè)頁(yè)面(中) |
外部樣式表 | 完全實(shí)現(xiàn)結(jié)構(gòu)和樣式相分離 | 需要引入 | 最多 | 控制多個(gè)站點(diǎn)(多) |
選擇器能找到特定的HTNL頁(yè)面元素
標(biāo)簽選擇器(元素選擇器)是指用HTNL標(biāo)簽名稱作為選擇器,按標(biāo)簽名稱分類,為頁(yè)面中某一類標(biāo)簽指定同意的CSS樣式。
語(yǔ)法:
標(biāo)簽名{ 屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; }
作用:
標(biāo)簽選擇器 可以把某一類標(biāo)簽全部選擇出來(lái) 比如所有的div標(biāo)簽 和 所有的 是span標(biāo)簽
類選擇器使用"."進(jìn)行標(biāo)識(shí), 后面緊跟類名。
語(yǔ)法:
類選擇器使用“.”(英文點(diǎn)號(hào))進(jìn)行標(biāo)識(shí),后面緊跟類名(自定義,我們自己命名的)
長(zhǎng)名稱或詞組可以使用中橫線來(lái)為選擇器命名。
不要純數(shù)字、中文等命名, 盡量使用英文字母來(lái)表示。
類型選擇器
.類名 { 屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; }
標(biāo)簽
<p class='類名'></p>
注意
類選擇器特殊用法-多類名
可以給標(biāo)簽指定多個(gè)類名, 從而達(dá)到跟過(guò)的選擇目的。
<div class="pink fontWeight font20">文字</div>
注意: 多個(gè)類名中間用空格隔開
id選擇器使用 # 進(jìn)行標(biāo)識(shí), 后面緊跟id名。
基本語(yǔ)法
元素的id值是唯一的,只能對(duì)應(yīng)于文檔中某一個(gè)具體的元素。
用法基本和類選擇器相同。
id選擇器
#id名 {屬性1:屬性值1;屬性2:屬性值2; 屬性3:屬性值3; }
標(biāo)簽
<p id="id名"></p>
注意:
id選擇器和類選擇器區(qū)別
W3C標(biāo)準(zhǔn)規(guī)定, 在同一個(gè)頁(yè)面內(nèi),不允許有相同名字的id對(duì)象出現(xiàn),但是允許相同名字的class。
通配符選擇器用 * 號(hào)表示, * 就是 選擇所有的標(biāo)簽 他是所有選擇器中做喲個(gè)范圍最廣的,能匹配頁(yè)面中所有的元素。
基本語(yǔ)法:
* { 屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; }
例(清除所有HTML標(biāo)記的默認(rèn)邊距):
* { margin: 0;/* 定義外邊距 */ padding: 0;/* 定義內(nèi)邊距 */ }
選擇器 | 作用 | 缺點(diǎn) | 使用情況 | 用法 |
---|---|---|---|---|
標(biāo)簽選擇器 | 可以選出所有相同的標(biāo)簽,比如p | 不能差異化選擇 | 較多 | p { color:red;} |
類選擇器 | 可以選出1個(gè)或者多個(gè)標(biāo)簽 | 可以根據(jù)需求選擇 | 非常多 | .nav { color: red; } |
id選擇器 | 一次只能選擇器1個(gè)標(biāo)簽 | 只能使用一次 | 不推薦使用 | #nav {color: red;} |
通配符選擇器 | 選擇所有的標(biāo)簽 | 選擇的太多,有部分不需要 | 不推薦使用 | * {color: red;} |
后代選擇器又稱為包含選擇器。其寫法就是把外層標(biāo)簽寫在前面,內(nèi)層標(biāo)簽寫在后面,中間用空格分隔,先寫父親爺爺,在寫兒子孫子。
父級(jí) 子級(jí) { 屬性: 屬性值; 屬性: 屬性值; }
.class h3 { color: red; font-size: 16px; }
當(dāng)標(biāo)簽發(fā)生嵌套時(shí),內(nèi)層標(biāo)簽就成為外層標(biāo)簽的后代。
子孫后代都可以這么選擇。 或者說(shuō),它能選擇任何包含在內(nèi) 的標(biāo)簽。
子元素選擇器只能選擇作為某元素子元素的元素。
.class>h3 { color:red; font-size:14px; }
交集選擇器由兩個(gè)選擇器構(gòu)成,找到的標(biāo)簽必須滿足:既有標(biāo)簽一的特點(diǎn),也有標(biāo)簽二的特點(diǎn)。
h3.class { color: red; font-size: 25px; }
其中第一個(gè)為標(biāo)簽選擇器,第二個(gè)為class選擇器,兩個(gè)選擇器之間不能有空格,如h3.sp。
如果某些選擇器定義的相同樣式,就可以利用并集選擇器,可以讓代碼更簡(jiǎn)潔。
.class, h3 { color: red; font-size: 25px; }
任何形式的選擇器(包括標(biāo)簽選擇器、class類選擇器id選擇器等),都可以作為并集選擇器的一部分。
用于向某些選擇器添加特殊的效果。比如給鏈接添加特殊效果, 比如可以選擇 第1個(gè),第n個(gè)元素。
- a:link /* 未訪問(wèn)的鏈接 */ - a:visited /* 已訪問(wèn)的鏈接 */ - a:hover /* 鼠標(biāo)移動(dòng)到鏈接上 */ - a:active /* 選定的鏈接 */
寫的時(shí)候,他們的順序盡量不要顛倒 按照 lvha 的順序。否則可能引起錯(cuò)誤。
選擇器 | 作用 | 特征 | 使用情況 | 隔開符號(hào)及用法 |
---|---|---|---|---|
后代選擇器 | 用來(lái)選擇元素后代 | 是選擇所有的子孫后代 | 較多 | 符號(hào)是空格 .nav a |
子代選擇器 | 選擇 最近一級(jí)元素 | 只選親兒子 | 較少 | 符號(hào)是> .nav>p |
交集選擇器 | 選擇兩個(gè)標(biāo)簽交集的部分 | 既是 又是 | 較少 | 沒(méi)有符號(hào) p.one |
并集選擇器 | 選擇某些相同樣式的選擇器 | 可以用于集體聲明 | 較多 | 符號(hào)是逗號(hào) .nav, .header |
鏈接偽類選擇器 | 給鏈接更改狀態(tài) | 較多 | 重點(diǎn)記住 a{} 和 a:hover 實(shí)際開發(fā)的寫法 |
font-size 屬性用于設(shè)置字號(hào)
p { font-size: 20px; }
單位:
可以使用相對(duì)長(zhǎng)隊(duì)單位,也可以使用絕對(duì)長(zhǎng)度單位。
相對(duì)長(zhǎng)度單位比較常用,推薦使用像素單位px, 絕對(duì)長(zhǎng)度單位使用較少。
相對(duì)長(zhǎng)度單位 | 說(shuō)明 |
---|---|
em | 相對(duì)于當(dāng)前對(duì)象內(nèi)文字的字體尺寸 |
px | 像素, 最常用 |
絕對(duì)長(zhǎng)度單位 | 說(shuō)明 |
in | 英寸 |
cm | 厘米 |
mm | 毫米 |
pt | 點(diǎn) |
注意:
谷歌瀏覽器默認(rèn)的文字大小為16px
不用瀏覽器默認(rèn)顯示的字號(hào)大小不一致,我們盡量給一個(gè)明確值大小, 不要默認(rèn)大小。一般給body指定整個(gè)頁(yè)面字體大小。
font-family 屬性用于設(shè)置哪種字體
p { font-family:"微軟雅黑"; }
網(wǎng)頁(yè)中常用的字體有宋體、微軟雅黑、黑體等,例如將網(wǎng)頁(yè)中所有段落文本字體設(shè)置為微軟雅黑。
可以同時(shí)指定多個(gè)字體,中間以逗號(hào)隔開, 表示如果瀏覽器不支持第一個(gè)字體,則會(huì)嘗試下一個(gè),直到找到合適的字體,如果都沒(méi)有,則以電腦默認(rèn)的字體為準(zhǔn)。
p { font-family: Arial, "Microsoft yahei", "微軟雅黑" }
各種字體之間必須使用英文狀態(tài)下的逗號(hào)隔開。
注意:
中文字體需要加英文狀態(tài)下的引號(hào),英文字體一般不需要加引號(hào)。當(dāng)需要設(shè)置英文字體時(shí),英文字體名必須位于中文字體名之前。
如果字體名中包含空格、#、$等符號(hào),則該字體必須加英文狀態(tài)下的單引號(hào)或雙引號(hào),例如font-family: "Times New Roman";。
盡量使用系統(tǒng)默認(rèn)字體,保證在任何用戶的瀏覽器中都能正確顯示。
CSS Unicode字體
在 CSS 中設(shè)置字體名稱,直接寫中文是可以的。但是在文件編碼(GB2312、UTF-8 等)不匹配時(shí)會(huì)產(chǎn)生亂碼的錯(cuò)誤。
解決方案
在 CSS 直接使用 Unicode 編碼來(lái)寫字體名稱可以避免這些錯(cuò)誤。使用 Unicode 寫中文字體名稱,瀏覽器是可以正確的解析的。
font-family: "\5FAE\8F6F\96C5\9ED1"; /*表示設(shè)置字體為“微軟雅黑”。*/
字體名稱 | 英文名稱 | Unicode 編碼 |
---|---|---|
宋體 | SimSun | \5B8B\4F53 |
新宋體 | NSimSun | \65B0\5B8B\4F53 |
黑體 | SimHei | \9ED1\4F53 |
微軟雅黑 | Microsoft YaHei | \5FAE\8F6F\96C5\9ED1 |
楷體_GB2312 | KaiTi_GB2312 | \6977\4F53_GB2312 |
隸書 | LiSu | \96B6\4E66 |
幼園 | YouYuan | \5E7C\5706 |
華文細(xì)黑 | STXihei | \534E\6587\7EC6\9ED1 |
細(xì)明體 | MingLiU | \7EC6\660E\4F53 |
新細(xì)明體 | PMingLiU | \65B0\7EC6\660E\4F53 |
在html中設(shè)置加粗可以用標(biāo)簽來(lái)實(shí)現(xiàn),
可以使用CSS來(lái)實(shí)現(xiàn),但是CSS是沒(méi)有語(yǔ)義的。
屬性值 | 描述 |
---|---|
normal | 默認(rèn)值(不加粗的) |
bold | 定義粗體(加粗的) |
100~900 | 400 等同于 normal,而 700 等同于 bold 我們重點(diǎn)記住這句話 |
在html中設(shè)置斜體可以用標(biāo)簽來(lái)實(shí)現(xiàn),
可以使用CSS來(lái)實(shí)現(xiàn),但是CSS是沒(méi)有語(yǔ)義的。
屬性 | 作用 |
---|---|
normal | 默認(rèn)值,瀏覽器會(huì)顯示標(biāo)準(zhǔn)的字體樣式 font-style: normal; |
italic | 瀏覽器會(huì)顯示斜體的字體樣式。 |
基本語(yǔ)法:
選擇器 { font: font-style font-weight font-size/line-height font-family; }
注意
使用font屬性時(shí),必須按上面的語(yǔ)法格式中的順序書寫,不能更換順序, 各個(gè)屬性以空格隔開。
其中不需要設(shè)置的屬性可以省略(取默認(rèn)值), 但必須保留fint-size和font-family屬性, 否則font屬性將不起作用。
屬性 | 表示 | 注意點(diǎn) |
---|---|---|
font-size | 字號(hào) | 我們通常用的單位是px 像素,一定要跟上單位 |
font-family | 字體 | 實(shí)際工作中按照?qǐng)F(tuán)隊(duì)約定來(lái)寫字體 |
font-weight | 字體粗細(xì) | 記住加粗是 700 或者 bold 不加粗 是 normal 或者 400 記住數(shù)字不要跟單位 |
font-style | 字體樣式 | 記住傾斜是 italic 不傾斜 是 normal 工作中我們最常用 normal |
font | 字體連寫 | 1. 字體連寫是有順序的 不能隨意換位置 2. 其中字號(hào) 和 字體 必須同時(shí)出現(xiàn) |
color屬性用于定義文本的顏色
取值方式:
表示表示 | 屬性值 |
---|---|
預(yù)定義的顏色值 | red,green,blue等 |
十六進(jìn)制 | #FF0000,#FF6600,#29D794 |
RGB代碼 | rgb(255,0,0)或rgb(100%,0%,0%) |
十六進(jìn)制顏色可以簡(jiǎn)寫。
作用:
text-align屬性用于設(shè)置文本內(nèi)容的水平對(duì)齊, 相當(dāng)于HTML中的align對(duì)齊屬性
其可用屬性值:
屬性 | 解釋 |
---|---|
left | 左對(duì)齊(默認(rèn)值) |
right | 右對(duì)齊 |
center | 居中對(duì)齊 |
是讓盒子內(nèi)的內(nèi)容水平居中, 而不是讓盒子居中對(duì)齊。
作用
line-height屬性用與設(shè)置行間距, 就是行與行之間的距離,即字符的垂直間距, 一般稱為行高
單位
ine-height常用的屬性值單位有三種,分別為像素px,相對(duì)值em和百分比%
一般情況下,行距比字號(hào)大7.8像素左右就可以了。
line-height: 24px;
作用:
text-indent屬性用于設(shè)置首行文本的縮進(jìn)
屬性值
1em就是一個(gè)字的寬度 如果是漢字的段落,1 em 就是一個(gè)漢字的寬度
p { /*行間距*/ line-height: 25px; /*首行縮進(jìn)2個(gè)字節(jié)*/ text-indent: 2em; }
其屬性值可為不同單位的數(shù)值、em字符寬度的倍數(shù)、或相對(duì)于瀏覽器窗口寬度的百分比%,允許使用負(fù)值,
建議使用em作為設(shè)置單位。
text-decoration 通常我們用于給鏈接修改裝飾效果
值 | 描述 |
---|---|
none | 默認(rèn)。定義標(biāo)準(zhǔn)的文本。 取消下劃線(最常用) |
underline | 定義文本下的一條線。下劃線 也是我們鏈接自帶的(常用) |
overline | 定義文本上的一條線。(不用) |
line-through | 定義穿過(guò)文本下的一條線。(不常用) |
屬性 | 表示 | 注意點(diǎn) |
---|---|---|
color | 顏色 | 我們通常用 十六進(jìn)制 比如 而且是簡(jiǎn)寫形式 #fff |
line-height | 行高 | 控制行與行之間的距離 |
text-align | 水平對(duì)齊 | 可以設(shè)定文字水平的對(duì)齊方式 |
text-indent | 首行縮進(jìn) | 通常我們用于段落首行縮進(jìn)2個(gè)字的距離 text-indent: 2em; |
text-decoration | 文本修飾 | 記住 添加 下劃線 underline 取消下劃線 none |
HTML標(biāo)簽一般分為塊標(biāo)簽和行內(nèi)標(biāo)簽兩種類型,它們也稱塊元素和行內(nèi)元素。
常見的塊元素有<h1>~<h6>、<p>、<div>、<ul>、<ol>、<li>等,其中<div>標(biāo)簽是最典型的塊元素。
塊級(jí)元素的特點(diǎn)
獨(dú)占一行。
高度, 寬度,外邊距以及內(nèi)邊距都可以控制。
寬度默認(rèn)是容器的100%。
是一個(gè)容器,里面可以放行內(nèi)或塊級(jí)元素。
注意
只有文字才能組成段落, 因此 p 內(nèi)不能放塊級(jí)元素, 特別是 p 不能放 div
同理h1-h6,dt, 它們都是文字類塊級(jí)標(biāo)簽, 里面不能放其它塊級(jí)元素
常見的行內(nèi)元素有<a>、<strong>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>、<span>等,其中<span>標(biāo)簽最典型的行內(nèi)元素。有的地方也成內(nèi)聯(lián)元素
行內(nèi)元素的特點(diǎn):
相鄰行內(nèi)元素在一行上,一行可以顯示多個(gè)。
高、款直接設(shè)置是無(wú)效的。
默認(rèn)寬度就是它本身內(nèi)容的寬度。
行內(nèi)元素只能容納文本或其它行內(nèi)元素。
注意:
鏈接內(nèi)不能再放鏈接
特殊情況a里面可以放塊級(jí)元素, 但是給a轉(zhuǎn)換一下塊級(jí)模式最安全。
在行內(nèi)元素中有幾個(gè)特殊的標(biāo)簽——<img />、<input />、<td>,可以對(duì)它們?cè)O(shè)置寬高和對(duì)齊屬性,有些資料可能會(huì)稱它們?yōu)樾袃?nèi)塊元素。
特點(diǎn):
和相鄰行內(nèi)元素(行內(nèi)塊) 在一行上, 但是之間會(huì)有空白縫隙。一行可以顯示多個(gè)。
默認(rèn)寬度就是它本身內(nèi)容的寬度。
高度, 行高, 外邊距以及內(nèi)邊距都可以控制。
元素模式 | 元素排列 | 設(shè)置樣式 | 默認(rèn)寬度 | 包含 |
---|---|---|---|---|
塊級(jí)元素 | 一行只能放一個(gè)塊級(jí)元素 | 可以設(shè)置寬度高度 | 容器的100% | 容器級(jí)可以包含任何標(biāo)簽 |
行內(nèi)元素 | 一行可以放多個(gè)行內(nèi)元素 | 不可以直接設(shè)置寬度高度 | 它本身內(nèi)容的寬度 | 容納文本或則其他行內(nèi)元素 |
行內(nèi)塊元素 | 一行放多個(gè)行內(nèi)塊元素 | 可以設(shè)置寬度和高度 | 它本身內(nèi)容的寬度 |
塊轉(zhuǎn)行內(nèi): display: inline;
行內(nèi)轉(zhuǎn)塊: display: block;
塊、行內(nèi)元素轉(zhuǎn)換為行內(nèi)塊:diaplay: inline-block;
英文和漢字 內(nèi)有 頂線, 中線, 基線, 底線。 行高測(cè)量: 為兩行中基線與基線的距離為行高。
單行文字垂直居中
文字的行高等于盒子的高度。
行高 = 上距離 + 內(nèi)容高度 + 下距離
行高和高度的三種關(guān)系
如果 行高 等 高度 文字會(huì) 垂直居中
如果行高 大于 高度 文字會(huì) 偏下
如果行高小于高度 文字會(huì) 偏上
background-color: 顏色值; /* 默認(rèn)的值是 transparent 透明的 */
background-image: none | url( url )
參數(shù) | 作用 |
---|---|
none | 無(wú)背景圖(默認(rèn)的) |
url | 使用絕對(duì)或相對(duì)地址指定背景圖像 |
background-image: url(images/demo.png);
background-repect: repeat | no-repeat | repeat-x | repeat-y
參數(shù) | 作用 |
---|---|
repeat | 背景圖像在縱向和橫向上平鋪(默認(rèn)的) |
no-repeat | 背景圖像不平鋪 |
repeat-x | 背景圖像在橫向上平鋪 |
repeat-y | 背景圖像在縱向平鋪 |
background-position : length || length background-position : position || position
參數(shù) | 值 |
---|---|
length | 百分?jǐn)?shù) | 由浮點(diǎn)數(shù)字和單位標(biāo)識(shí)符組成的長(zhǎng)度值 |
position | top | center | bottom | left | center | right 方位名詞 |
注意:
必須先指定background-image屬性
position 后面是x坐標(biāo)和y坐標(biāo)。 可以使用方位名詞或者 精確單位。
如果指定兩個(gè)值,兩個(gè)值都是方位名字,則兩個(gè)值前后順序無(wú)關(guān),比如left top和top left效果一致
如果只指定了一個(gè)方位名詞,另一個(gè)值默認(rèn)居中對(duì)齊。
如果position 后面是精確坐標(biāo), 那么第一個(gè),肯定是 x 第二的一定是y
如果只指定一個(gè)數(shù)值,那該數(shù)值一定是x坐標(biāo),另一個(gè)默認(rèn)垂直居中
如果指定的兩個(gè)值是 精確單位和方位名字混合使用,則第一個(gè)值是x坐標(biāo),第二個(gè)值是y坐標(biāo)
背景附著就是解釋背景是滾動(dòng)的還是固定的
background-attachment: scroll | fixed
參數(shù) | 作用 |
---|---|
scroll | 背景圖像是隨對(duì)象內(nèi)容滾動(dòng) |
fixed | 背景圖像固定 |
background:屬性的值的書寫順序官方并沒(méi)有強(qiáng)制標(biāo)準(zhǔn)的。為了可讀性,建議大家如下寫:
background: 背景顏色 背景圖片地址 背景平鋪 背景滾動(dòng) 背景位置;
background: transparent url(image.jpg) repeat-y scroll center top ;
background: rgba(0,0,0,.3);
最后一個(gè)參數(shù)是alpha 透明度 取值范圍 0~1之間
我們習(xí)慣把0.3 的 0 省略掉 這樣寫 background: rgba(0, 0, 0, .3);
注意: 背景半透明是指盒子背景半透明, 盒子里面的內(nèi)容不受影響
因?yàn)槭荂SS3 ,所以 低于 ie9 的版本是不支持的。
屬性 | 作用 | 值 |
---|---|---|
background-color | 背景顏色 | 預(yù)定義的顏色值/十六進(jìn)制/RGB代碼 |
background-image | 背景圖片 | url(圖片路徑) |
background-repeat | 是否平鋪 | repeat/no-repeat/repeat-x/repeat-y |
background-position | 背景位置 | length/position 分別是x 和 y坐標(biāo), 切記 如果有 精確數(shù)值單位,則必須按照先X 后Y 的寫法 |
background-attachment | 背景固定還是滾動(dòng) | scroll/fixed |
背景簡(jiǎn)寫 | 更簡(jiǎn)單 | 背景顏色 背景圖片地址 背景平鋪 背景滾動(dòng) 背景位置; 他們沒(méi)有順序 |
背景透明 | 讓盒子半透明 | background: rgba(0,0,0,0.3); 后面必須是 4個(gè)值 |
所謂層疊性是指多種CSS樣式的疊加。
是瀏覽器處理沖突的一個(gè)能力,如果一個(gè)屬性通過(guò)兩個(gè)相同選擇器設(shè)置到同一個(gè)元素上,那么這個(gè)時(shí)候一個(gè)屬性就會(huì)將另一個(gè)屬性層疊掉
樣式?jīng)_突,遵循的原則是就近原則。 那個(gè)樣式離著結(jié)構(gòu)近,就執(zhí)行那個(gè)樣式。
樣式不沖突,不會(huì)層疊
子標(biāo)簽會(huì)繼承父標(biāo)簽的某些樣式,如文本顏色和字號(hào)。
想要設(shè)置一個(gè)可繼承的屬性,只需將它應(yīng)用于父元素即可。
注意:
恰當(dāng)?shù)厥褂美^承可以簡(jiǎn)化代碼,降低CSS樣式的復(fù)雜性。比如有很多子級(jí)孩子都需要某個(gè)樣式,可以給父級(jí)指定一個(gè),這些孩子繼承過(guò)來(lái)就好了。
子元素可以繼承父元素的樣式(text-,font-,line-這些元素開頭的可以繼承,以及color屬性)
定義CSS樣式時(shí),經(jīng)常出現(xiàn)兩個(gè)或更多規(guī)則應(yīng)用在同一元素上,此時(shí),
選擇器相同,則執(zhí)行層疊性
選擇器不同,就會(huì)出現(xiàn)優(yōu)先級(jí)的問(wèn)題。
關(guān)于CSS權(quán)重,我們需要一套計(jì)算公式來(lái)去計(jì)算,這個(gè)就是 CSS Specificity(特殊性)
標(biāo)簽選擇器 | 計(jì)算權(quán)重公式 |
---|---|
繼承或者 * | 0,0,0,0 |
每個(gè)元素(標(biāo)簽選擇器) | 0,0,0,1 |
每個(gè)類,偽類 | 0,0,1,0 |
每個(gè)ID | 0,1,0,0 |
每個(gè)行內(nèi)樣式 style="" | 1,0,0,0 |
每個(gè)!important 重要的 | ∞ 無(wú)窮大 |
值從左到右,左面的最大,一級(jí)大于一級(jí),數(shù)位之間沒(méi)有進(jìn)制,級(jí)別之間不可超越。
div { color: pink!important; }
我們經(jīng)常用交集選擇器,后代選擇器等,是有多個(gè)基礎(chǔ)選擇器組合而成,那么此時(shí),就會(huì)出現(xiàn)權(quán)重疊加。
例如:
div ul li ------> 0,0,0,3
.nav ul li ------> 0,0,1,2
a:hover -----—> 0,0,1,1
.nav a ------> 0,0,1,1
注意:
數(shù)位之間沒(méi)有進(jìn)制 比如說(shuō): 0,0,0,5 + 0,0,0,5 =0,0,0,10 而不是 0,0, 1, 0, 所以不會(huì)存在10個(gè)div能趕上一個(gè)類選擇器的情況。
我們修改樣式,一定要看該標(biāo)簽有沒(méi)有被選中。
如果選中了,那么以上面的公式來(lái)計(jì)權(quán)重。誰(shuí)大聽誰(shuí)的。
如果沒(méi)有選中,那么權(quán)重是0,因?yàn)槔^承的權(quán)重為0.
所謂盒子模型:
就是把HTML頁(yè)面中的布局元素看作是一個(gè)矩形的盒子,也就是一個(gè)盛裝內(nèi)容的容器。
盒子模型有元素的內(nèi)容、邊框(border)、內(nèi)邊距(padding)、和外邊距(margin)組成。
盒子里面的文字和圖片等元素是 內(nèi)容區(qū)域
盒子的厚度 我們成為 盒子的邊框
盒子內(nèi)容與邊框的距離是內(nèi)邊距(類似單元格的 cellpadding)
盒子與盒子之間的距離是外邊距(類似單元格的 cellspacing)
border: border-width || border-style || border-color
屬性 | 作用 |
---|---|
border-width | 定義邊框粗細(xì),單位是px |
border-style | 邊框的樣式 |
border-color | 邊框顏色 |
邊框的樣式:
none: 沒(méi)有比那狂即忽略所有邊框的寬度(默認(rèn)值)
solid: 邊框?yàn)閱螌?shí)線(常用)
dashed: 邊框?yàn)樘摼€
dotted: 邊框?yàn)辄c(diǎn)線
border: border-width || border-style || border-color /* 例如 */ border: 1px solid red; /* 沒(méi)有順序 */
上邊框 | 下邊框 | 左邊框 | 右邊框 |
---|---|---|---|
border-top-style:樣式; | border-bottom-style:樣式; | border-left-style:樣式; | border-right-style:樣式; |
border-top-width:寬度; | border- bottom-width:寬度; | border-left-width:寬度; | border-right-width:寬度; |
border-top-color:顏色; | border- bottom-color:顏色; | border-left-color:顏色; | border-right-color:顏色; |
border-top:寬度 樣式 顏色; | border-bottom:寬度 樣式 顏色; | border-left:寬度 樣式 顏色; | border-right:寬度 樣式 顏色; |
通過(guò)表格的 cellspaceing="0", 將單元格與單元格之間的距離設(shè)置為0
但是兩個(gè)單元格之間的邊框會(huì)出現(xiàn)重疊, 從而使邊框變粗
通過(guò)css屬性設(shè)置:
table { border-collapse: collapse; }
<style> table { width: 500px; height: 300px; border: 1px solid red; } td { border: 1px solid red; text-align: center; } table, td { border-collapse: collapse; /*合并相鄰邊框*/ } </style>
collapse 為合并的意思
border-collapse: collapse; 表示相鄰邊框合并在一起。
padding屬性用于設(shè)置內(nèi)邊距。是指 邊框與內(nèi)容之間的距離。
屬性 | 作用 |
---|---|
padding-left | 左內(nèi)邊距 |
padding-right | 右內(nèi)邊距 |
padding-top | 上內(nèi)邊距 |
padding-bottom | 下內(nèi)邊距 |
當(dāng)我們給盒子指定padding值之后, 發(fā)生了2件事:
內(nèi)容和邊框 有了距離, 添加了內(nèi)邊距。
盒子會(huì)變大了。
注意
如果沒(méi)有給一個(gè)盒子指定寬度, 此時(shí),如果給這個(gè)盒子指定padding, 則不會(huì)撐開盒子。
值的個(gè)數(shù) | 表達(dá)意思 |
---|---|
1個(gè)值 | padding:上下左右內(nèi)邊距; |
2個(gè)值 | padding: 上下內(nèi)邊距 左右內(nèi)邊距 ; |
3個(gè)值 | padding:上內(nèi)邊距 左右內(nèi)邊距 下內(nèi)邊距; |
4個(gè)值 | padding: 上內(nèi)邊距 右內(nèi)邊距 下內(nèi)邊距 左內(nèi)邊距 ; |
寬度
Element Height = content height + padding + border (Height為內(nèi)容高度)
高度
Element Width = content width + padding + border (Width為內(nèi)容寬度)
盒子的實(shí)際的大小 = 內(nèi)容的寬度和高度 + 內(nèi)邊距 + 邊框
margin屬性用于設(shè)置外邊距。 margin就是控制盒子與盒子之間的距離
屬性 | 作用 |
---|---|
margin-left | 左外邊距 |
margin-right | 右外邊距 |
margin-top | 上外邊距 |
margin-bottom | 下外邊距 |
margin值的簡(jiǎn)寫 (復(fù)合寫法)代表意思 跟 padding 完全相同。
可以讓一個(gè)塊級(jí)盒子實(shí)現(xiàn)水平居中:
盒子必須指定了寬度(width)。
然后就給1左右的外邊距都設(shè)置為auto。
例如:
.header { width: 960px; margin: 0 auto; }
常見的寫法
* margin-left: auto; margin-right: auto; * margin: auto; * margin: 0 auto;
盒子內(nèi)的文字水平居中是 text-align: center, 而且還可以讓 行內(nèi)元素和行內(nèi)塊居中對(duì)齊
塊級(jí)盒子水平居中 左右margin 改為 auto
text-align: center; /* 文字 行內(nèi)元素 行內(nèi)塊元素水平居中 */ margin: 10px auto; /* 塊級(jí)盒子水平居中 左右margin 改為 auto 就闊以了 上下margin都可以 */
插入圖片 我們用的最多 比如產(chǎn)品展示類 移動(dòng)位置只能靠盒模型 padding margin
背景圖片我們一般用于小圖標(biāo)背景 或者 超大背景圖片 背景圖片 只能通過(guò) background-position
img { width: 200px;/* 插入圖片更改大小 width 和 height */ height: 210px; margin-top: 30px; /* 插入圖片更改位置 可以用margin 或padding 盒模型 */ margin-left: 50px; /* 插入當(dāng)圖片也是一個(gè)盒子 */ } div { width: 400px; height: 400px; border: 1px solid purple; background: #fff url(images/sun.jpg) no-repeat; background-position: 30px 50px; /* 背景圖片更改位置 我用 background-position */ }
為了更靈活方便地控制網(wǎng)頁(yè)中的元素,制作網(wǎng)頁(yè)時(shí),我們需要將元素的默認(rèn)內(nèi)外邊距清除
* { padding: 0; margin: 0; }
注意:
行內(nèi)元素為了照顧兼容性, 盡量只設(shè)置左右內(nèi)外邊距, 不要設(shè)置上下內(nèi)外邊距。
使用margin定義塊元素的垂直外邊距時(shí), 可能出現(xiàn)外邊距的合并。
相鄰塊元素垂直外邊距的合并
當(dāng)上下相鄰的兩個(gè)塊元素相遇時(shí), 如果上面的元素有下外邊距margin-bottom
下面的元素有上邊距margin-top, 則它們之間的垂直間距不是margin-bottom與margin-top之和
取兩個(gè)值中的較大者這種現(xiàn)象被稱為相鄰塊元素垂直外邊距的合并(也成為外邊距塌陷)
嵌套塊元素垂直外邊距的合并(塌陷)
對(duì)于兩個(gè)嵌套關(guān)系的塊元素, 如果發(fā)元素沒(méi)有上內(nèi)邊距及邊框
父元素的上外邊距會(huì)與子元素的上外邊距發(fā)生合并
合并后的外邊距為兩者中的較大者
按照 優(yōu)先使用 寬度 (width) 其次 使用內(nèi)邊距(padding) 再次 外邊距(margin)。
width > padding > margin
原因:
margin 會(huì)有外邊距合并 還有IE6一下margin 加倍的bug 最后使用。
padding 會(huì)影響盒子大小, 需要進(jìn)行加減計(jì)算 其次使用。
width 沒(méi)有問(wèn)題 我們經(jīng)常使用寬度剩余法 高度剩余法來(lái)做。
無(wú)序和有序列表前面默認(rèn)的列表樣式, 在不同瀏覽器顯示效果不同, 所以一般會(huì)去掉這些列表樣式。
li { list-style: none; }
border-radius: length;
其中每一個(gè)值可以為 數(shù)值或百分比的形式。
可以讓一個(gè)正方形 變成圓圈
border-radius:50%;
如果為矩形的圓角, 就不要用百分比了, 因?yàn)榘俜直葧?huì)是表示高度和寬度的一般。
這里矩形就只用高度的一半就號(hào)。 精確單位。
box-shadow: 水平陰影 垂直陰影 模糊距離(虛實(shí)) 陰影尺寸(影子大小) 陰影顏色 內(nèi)/外陰影
值 | 描述 |
---|---|
h-shadow | 必需。水平陰影的位置。允許負(fù)值。 |
v-shadow | 必需。垂直陰影的位置。允許負(fù)值。 |
blur | 可選。模糊距離。 |
spread | 可選。陰影的尺寸。 |
color | 可選。陰影的顏色。 |
inset | 可選。將外部陰影(outset)改為內(nèi)部陰影。 |
前面兩個(gè)屬性是必須寫的。其余的可以省略。
外陰影(outset)是默認(rèn)的 但是不能寫 outset 想要內(nèi)陰影可以寫 inset
div { width: 200px; height: 200px; border: 10px soild red; /* box-shadow: 5px 5px 3px 4px rgba(0,0,0,.4); */ /* box-shadow: 水平位置 垂直位置 模糊距離 陰影尺寸(影子大小) 陰影顏色 內(nèi)/外陰影; */ box-shadow: 0 15px 30px rgba(0,0,0,.4); }
網(wǎng)頁(yè)布局的核心---就是用CSS來(lái)擺放盒子。
CSS 提供了 3 種機(jī)制來(lái)設(shè)置盒子的擺放位置,分別是普通流(標(biāo)準(zhǔn)流)、浮動(dòng)和定位,其中:
普通流(標(biāo)準(zhǔn)流)
常用元素:span、a、i、em等
常用元素:div、hr、p、h1~h6、ul、ol、dl、form、table
塊級(jí)元素會(huì)獨(dú)占一行,從上向下順序排列;
行內(nèi)元素會(huì)按照順序,從左到右順序排列,碰到父元素邊緣則自動(dòng)換行;
浮動(dòng)
讓盒子從普通流中浮起來(lái),主要作用讓多個(gè)塊級(jí)盒子一行顯示。
定位
將盒子定在瀏覽器的某一個(gè)位置——CSS 離不開定位,特別是后面的 js 特效。
概念:元素的浮動(dòng)是指設(shè)置了浮動(dòng)屬性的元素會(huì)
脫離標(biāo)準(zhǔn)普通流的控制
移動(dòng)到指定位置。
作用
讓多個(gè)盒子(div)水平排列成一行,使得浮動(dòng)成為布局的重要手段。
可以實(shí)現(xiàn)盒子的左右對(duì)齊等等..
浮動(dòng)最早是用來(lái)控制圖片,實(shí)現(xiàn)文字環(huán)繞圖片的效果。
選擇器 { float: 屬性值; }
屬性值 | 描述 |
---|---|
none | 元素不浮動(dòng)(默認(rèn)值) |
left | 元素向左浮動(dòng) |
right | 元素向右浮動(dòng) |
float
屬性會(huì)讓盒子漂浮在標(biāo)準(zhǔn)流的上面,所以第二個(gè)標(biāo)準(zhǔn)流的盒子跑到浮動(dòng)盒子的底下了。
float屬性會(huì)改變?cè)豥isplay屬性。
浮動(dòng)的元素互相貼靠一起的,但是如果父級(jí)寬度裝不下這些浮動(dòng)的盒子, 多出的盒子會(huì)另起一行對(duì)齊。
浮動(dòng)元素會(huì)改變display屬性, 類似轉(zhuǎn)換為了行內(nèi)塊,但是元素之間沒(méi)有空白縫隙
子盒子的浮動(dòng)參照父盒子對(duì)齊
不會(huì)與父盒子的邊框重疊, 也不會(huì)超過(guò)父盒子的內(nèi)邊距。
在一個(gè)父級(jí)盒子中, 如果前一個(gè)兄弟盒子是:
浮動(dòng)的, 那么當(dāng)前盒子會(huì)與前一個(gè)盒子的頂部對(duì)齊。
普通流, 那么當(dāng)前盒子會(huì)顯示在前一個(gè)兄弟盒子的下方。
浮動(dòng)只會(huì)影響當(dāng)前的或者是后面的標(biāo)準(zhǔn)流盒子,不會(huì)影響前面的標(biāo)準(zhǔn)流。
由于浮動(dòng)元素不再占用原文檔流的位置,所以它會(huì)對(duì)后面的元素排版產(chǎn)生影響
準(zhǔn)確地說(shuō),并不是清除浮動(dòng),而是清除浮動(dòng)后造成的影響
清除浮動(dòng)主要為了解決父級(jí)元素因?yàn)樽蛹?jí)浮動(dòng)引起內(nèi)部高度為0 的問(wèn)題。清除浮動(dòng)之后, 父級(jí)就會(huì)根據(jù)浮動(dòng)的子盒子自動(dòng)檢測(cè)高度。父級(jí)有了高度,就不會(huì)影響下面的標(biāo)準(zhǔn)流了
在CSS中, clear屬性用于清除浮動(dòng)。
語(yǔ)法一:
選擇器 { clear: 屬性值; /* clear 清除 */ }
屬性值 | 描述 |
---|---|
left | 不允許左側(cè)有浮動(dòng)元素(清除左側(cè)浮動(dòng)的影響) |
right | 不允許右側(cè)有浮動(dòng)元素(清除右側(cè)浮動(dòng)的影響) |
both | 同時(shí)清除左右兩側(cè)浮動(dòng)的影響 |
語(yǔ)法二(額外標(biāo)簽法):
是W3C推薦的做法是通過(guò)在浮動(dòng)元素末尾添加一個(gè)空的標(biāo)簽例如 <div style=”clear:both”></div>,或則其他標(biāo)簽br等亦可。
語(yǔ)法三(父級(jí)添加overflow屬性方法):
可以給父級(jí)添加: overflow: hidden | auto | scroll都可以實(shí)現(xiàn)。
語(yǔ)法四(使用after偽元素清除浮動(dòng)):
:after 方式為空元素額外標(biāo)簽法的升級(jí)版
.clearfix:after { content: ""; display: block; height: 0; clear: both; visibility:hidden; } .clearfix { *zoom: 1; /* IE6、7 專有*/ }
語(yǔ)法五(使用雙偽元素清除浮動(dòng)):
.clearfix:before, .clearfix:after { content:""; display: table; } .clearfix:after { clear: both; } .clearfix { *zoom: 1; }
用途:
父級(jí)沒(méi)有高度。
子盒子浮動(dòng)。
影響下面布局。
清除浮動(dòng)的方式 | 優(yōu)點(diǎn) | 缺點(diǎn) |
---|---|---|
額外標(biāo)簽法(隔墻法) | 通俗易懂,書寫方便 | 添加許多無(wú)意義的標(biāo)簽,結(jié)構(gòu)化較差。 |
父級(jí)overflow:hidden; | 書寫簡(jiǎn)單 | 溢出隱藏 |
父級(jí)after偽元素 | 結(jié)構(gòu)語(yǔ)義化正確 | 由于IE6-7不支持:after,兼容性問(wèn)題 |
父級(jí)雙偽元素 | 結(jié)構(gòu)語(yǔ)義化正確 | 由于IE6-7不支持:after,兼容性問(wèn)題 |
將盒子定在某一個(gè)位置 自由的漂浮在其他盒子(包括標(biāo)準(zhǔn)流和浮動(dòng))的上面
定位 = 定位模式 + 邊偏移
在 CSS 中,通過(guò) top
、bottom
、left
和 right
屬性定義元素的邊偏移:(方位名詞)
邊偏移屬性 | 示例 | 描述 |
---|---|---|
top | top: 80px | 頂端偏移量,定義元素相對(duì)于其父元素上邊線的距離。 |
bottom | bottom: 80px | 底部偏移量,定義元素相對(duì)于其父元素下邊線的距離。 |
left | left: 80px | 左側(cè)偏移量,定義元素相對(duì)于其父元素左邊線的距離。 |
right | right: 80px | 右側(cè)偏移量,定義元素相對(duì)于其父元素右邊線的距離 |
在 CSS 中,通過(guò) position
屬性定義元素的定位模式,語(yǔ)法如下:
選擇器 { position: 屬性值; }
定位模式是有不同分類的,在不同情況下,我們用到不同的定位模式。
值 | 語(yǔ)義 |
---|---|
static | 靜態(tài)定位 |
relative | 相對(duì)定位 |
absolute | 絕對(duì)定位 |
fixed | 固定定位 |
靜態(tài)定位是元素的默認(rèn)定位方式,無(wú)定位的意思。它相當(dāng)于 border 里面的none, 不要定位的時(shí)候用。
靜態(tài)定位 按照標(biāo)準(zhǔn)流特性擺放位置,它沒(méi)有邊偏移。
靜態(tài)定位在布局時(shí)我們幾乎不用的
相對(duì)于 自己原來(lái)在標(biāo)準(zhǔn)流中位置來(lái)移動(dòng)的
原來(lái)在標(biāo)準(zhǔn)流的區(qū)域繼續(xù)占有,后面的盒子仍然以標(biāo)準(zhǔn)流的方式對(duì)待它。
絕對(duì)定位是元素以帶有定位的父級(jí)元素來(lái)移動(dòng)位置
完全脫標(biāo) ---- 不占位置。
父元素沒(méi)有定位, 則以瀏覽器為準(zhǔn)定位(Document文檔)
父元素需要有定位。將元素依據(jù)最近的已經(jīng)定位(絕對(duì)、固定或相對(duì)定位)的父元素(祖先)進(jìn)行定位。
子級(jí)是絕對(duì)定位,父級(jí)要用相對(duì)定位。
完全脫標(biāo) —— 完全不占位置;
只認(rèn)瀏覽器的可視窗口 —— 瀏覽器可視窗口 + 邊偏移屬性
來(lái)設(shè)置元素的位置;
跟父元素沒(méi)有任何關(guān)系;單獨(dú)使用的
不隨滾動(dòng)條滾動(dòng)。
提示:IE 6 等低版本瀏覽器不支持固定定位。
注意:絕對(duì)定位/固定定位的盒子不能通過(guò)設(shè)置
margin: auto
設(shè)置水平居中。
left: 50%;:/*讓盒子的左側(cè)移動(dòng)到父級(jí)元素的水平中心位置。*/ margin-left: -100px;:/*讓盒子向左移動(dòng)自身寬度的一半。*/
在使用定位布局時(shí),可能會(huì)出現(xiàn)盒子重疊的情況。
加了定位的盒子,默認(rèn)后來(lái)者居上, 后面的盒子會(huì)壓住前面的盒子。
應(yīng)用 z-index
層疊等級(jí)屬性可以調(diào)整盒子的堆疊順序。
z-index
的特性如下:
屬性值:正整數(shù)、負(fù)整數(shù)或 0,默認(rèn)值是 0,數(shù)值越大,盒子越靠上;
如果屬性值相同,則按照書寫順序,后來(lái)居上;
數(shù)字后面不能加單位。
注意:z-index
只能應(yīng)用于相對(duì)定位、絕對(duì)定位和固定定位的元素,其他標(biāo)準(zhǔn)流、浮動(dòng)和靜態(tài)定位無(wú)效。
display 是顯示模式, 可以改變顯示模式有以下方式:
可以用inline-block 轉(zhuǎn)換為行內(nèi)塊
可以用浮動(dòng) float 默認(rèn)轉(zhuǎn)換為行內(nèi)塊(類似,并不完全一樣,因?yàn)楦?dòng)是脫標(biāo)的)
絕對(duì)定位和固定定位也和浮動(dòng)類似, 默認(rèn)轉(zhuǎn)換的特性 轉(zhuǎn)換為行內(nèi)塊。
注意
浮動(dòng)元素、絕對(duì)定位(固定定位)元素的都不會(huì)觸發(fā)外邊距合并的問(wèn)題。 (我們以前是用padding border overflow解決的)
定位模式 | 是否脫標(biāo)占有位置 | 移動(dòng)位置基準(zhǔn) | 模式轉(zhuǎn)換(行內(nèi)塊) | 使用情況 |
---|---|---|---|---|
靜態(tài)static | 不脫標(biāo),正常模式 | 正常模式 | 不能 | 幾乎不用 |
相對(duì)定位relative | 不脫標(biāo),占有位置 | 相對(duì)自身位置移動(dòng) | 不能 | 基本單獨(dú)使用 |
絕對(duì)定位absolute | 完全脫標(biāo),不占有位置 | 相對(duì)于定位父級(jí)移動(dòng)位置 | 能 | 要和定位父級(jí)元素搭配使用 |
固定定位fixed | 完全脫標(biāo),不占有位置 | 相對(duì)于瀏覽器移動(dòng)位置 | 能 | 單獨(dú)使用,不需要父級(jí) |
注意:
邊偏移需要和定位模式聯(lián)合使用,單獨(dú)使用無(wú)效;
top
和 bottom
不要同時(shí)使用;
left
和 right
不要同時(shí)使用。
display設(shè)置或檢索對(duì)象是否及如何顯示。
display: none; /* 隱藏對(duì)象 */ display: block /* 除了轉(zhuǎn)換為塊級(jí)元素之外,同時(shí)還有顯示元素的意思。 */
特點(diǎn): 隱藏之后,不再保留位置。
設(shè)置或檢索是否顯示對(duì)象。
visibility: visible; /* 對(duì)象可見 */ visibility: hidden; /* 對(duì)象隱藏 */
特點(diǎn): 隱藏之后,繼續(xù)保留原有位置。
檢索或設(shè)置當(dāng)對(duì)象的內(nèi)容超過(guò)其指定高度及寬度時(shí)如何管理內(nèi)容。
屬性值 | 描述 |
---|---|
visible | 不剪切內(nèi)容也不添加滾動(dòng)條 |
hidden | 不顯示超過(guò)對(duì)象尺寸的內(nèi)容,超出的部分隱藏掉 |
scroll | 不管超出內(nèi)容否,總是顯示滾動(dòng)條 |
auto | 超出自動(dòng)顯示滾動(dòng)條,不超出不顯示滾動(dòng)條 |
屬性 | 區(qū)別 | 用途 |
---|---|---|
display | 隱藏對(duì)象,不保留位置 | 配合后面js做特效,比如下拉菜單,原先沒(méi)有,鼠標(biāo)經(jīng)過(guò),顯示下拉菜單, 應(yīng)用極為廣泛 |
visibility | 隱藏對(duì)象,保留位置 | 使用較少 |
overflow | 只是隱藏超出大小的部分 | 1. 可以清除浮動(dòng) 2. 保證盒子里面的內(nèi)容不會(huì)超出該盒子范圍 |
設(shè)置或檢索在對(duì)象上移的鼠標(biāo)指針采用何種系統(tǒng)預(yù)定義的光標(biāo)形狀
屬性值 | 描述 |
---|---|
default | 小白 默認(rèn) |
pointer | 小手 |
move | 移動(dòng) |
text | 文本 |
not-allowed | 禁止 |
例如
<ul> <li style="cursor:default">我是小白</li> <li style="cursor:pointer">我是小手</li> <li style="cursor:move">我是移動(dòng)</li> <li style="cursor:text">我是文本</li> <li style="cursor:not-allowed">我是文本</li> </ul>
是繪制于元素周圍的一條線,位于邊框邊緣的外圍,可起到突出元素的作用。
outline: outline-color || outline-style || outline-width /* 去除 */ outline: 0; 或者 outline: none;
<textarea style="resize: none;"></textarea>
屬性 | 用途 | 用途 |
---|---|---|
鼠標(biāo)樣式 | 更改鼠標(biāo)樣式cursor | 樣式很多,重點(diǎn)記住 pointer |
輪廓線 | 表單默認(rèn)outline | outline 輪廓線,我們一般直接去掉,border是邊框,我們會(huì)經(jīng)常用 |
防止拖拽 | 主要針對(duì)文本域resize | 防止用戶隨意拖拽文本域,造成頁(yè)面布局混亂,我們r(jià)esize:none |
vertical-align 垂直對(duì)齊,它只針對(duì)于行內(nèi)元素或者行內(nèi)塊元素,
vertical-align : baseline |top |middle |bottom
注意:
vertical-align 不影響塊級(jí)元素中的內(nèi)容對(duì)齊,它只針對(duì)于行內(nèi)元素或者行內(nèi)塊元素,
特別是行內(nèi)塊元素, 通常用來(lái)控制圖片/表單與文字的對(duì)齊。
通過(guò)vertical-align 控制圖片和文字的垂直關(guān)系了。 默認(rèn)的圖片會(huì)和文字基線對(duì)齊。
圖片或者表單等行內(nèi)塊元素,他的底線會(huì)和父級(jí)盒子的基線對(duì)齊。就是圖片底側(cè)會(huì)有一個(gè)空白縫隙。
解決:
給img vertical-align:middle | top| bottom等等。 讓圖片不要和基線對(duì)齊。
給img 添加 display:block; 轉(zhuǎn)換為塊級(jí)元素就不會(huì)存在問(wèn)題了。
white-space設(shè)置或檢索對(duì)象內(nèi)文本顯示方式。通常我們使用于強(qiáng)制一行顯示內(nèi)容
white-space:normal ; /* 默認(rèn)處理方式 */ white-space:nowrap ; /* 強(qiáng)制在同一行內(nèi)顯示所有文本,直到文本結(jié)束或者遭遇br標(biāo)簽對(duì)象才換行。 */
設(shè)置或檢索是否使用一個(gè)省略標(biāo)記(...)標(biāo)示對(duì)象內(nèi)文本的溢出
text-overflow : clip ; /* 不顯示省略標(biāo)記(...),而是簡(jiǎn)單的裁切 */ text-overflow:ellipsis ; /* 當(dāng)對(duì)象內(nèi)文本溢出時(shí)顯示省略標(biāo)記(...)*/
/*1. 先強(qiáng)制一行內(nèi)顯示文本*/ white-space: nowrap; /*2. 超出的部分隱藏*/ overflow: hidden; /*3. 文字用省略號(hào)替代超出的部分*/ text-overflow: ellipsis;
為了有效地減少服務(wù)器接受和發(fā)送請(qǐng)求的次數(shù),提高頁(yè)面的加載速度。
CSS 精靈其實(shí)是將網(wǎng)頁(yè)中的一些背景圖像整合到一張大圖中(精靈圖),然而,各個(gè)網(wǎng)頁(yè)元素通常只需要精靈圖中不同位置的某個(gè)小圖,要想精確定位到精靈圖中的某個(gè)小圖。
首先我們知道,css精靈技術(shù)主要針對(duì)于背景圖片,插入的圖片img 是不需要這個(gè)技術(shù)的。
我們需要使用CSS的
background-image、
background-repeat
background-position屬性進(jìn)行背景定位,
其中最關(guān)鍵的是使用background-position 屬性精確地定位。
精確測(cè)量,每個(gè)小背景圖片的大小和 位置。
給盒子指定小背景圖片時(shí), 背景定位基本都是 負(fù)值。
為了使各種特殊形狀的背景能夠自適應(yīng)元素中文本內(nèi)容的多少,出現(xiàn)了CSS滑動(dòng)門技術(shù)。它從新的角度構(gòu)建頁(yè)面,使各種特殊形狀的背景能夠自由拉伸滑動(dòng),以適應(yīng)元素內(nèi)部的文本內(nèi)容,可用性更強(qiáng)。 最常見于各種導(dǎo)航欄的滑動(dòng)門。
核心技術(shù)就是利用CSS精靈(主要是背景位置)和 盒子padding撐開寬度, 以便能適應(yīng)不同字?jǐn)?shù)的導(dǎo)航欄。
<li> <a href="#"> <span>導(dǎo)航欄內(nèi)容</span> </a> </li>
* { padding:0; margin:0; } body{ background: url(images/wx.jpg) repeat-x; } .father { padding-top:20px; } li { padding-left: 16px; height: 33px; float: left; line-height: 33px; margin:0 10px; background: url(./images/to.png) no-repeat left ; } a { padding-right: 16px; height: 33px; display: inline-block; color:#fff; background: url(./images/to.png) no-repeat right ; text-decoration: none; } li:hover, li:hover a { background-image:url(./images/ao.png); }
總結(jié):
a 設(shè)置 背景左側(cè),padding撐開合適寬度。
span 設(shè)置背景右側(cè), padding撐開合適寬度 剩下由文字繼續(xù)撐開寬度。
之所以a包含span就是因?yàn)?整個(gè)導(dǎo)航都是可以點(diǎn)擊的。
聯(lián)系客服