原文出處>>>
https://blog.csdn.net/u014158743/article/details/136240947
01-復(fù)合選擇器
定義:由兩個(gè)或多個(gè)基礎(chǔ)選擇器,通過不同的方式組合而成。
作用:更準(zhǔn)確、更高效的選擇目標(biāo)元素(標(biāo)簽)。
后代選擇器
后代選擇器:選中某元素的后代元素。
選擇器寫法:父選擇器 子選擇器 { CSS 屬性},父子選擇器之間用空格隔開。
<style>
div span {
color: red;
}
</style>
<span> span 標(biāo)簽</span>
<div>
<span>這是 div 的兒子 span</span >
</div>
子代選擇器
子代選擇器:選中某元素的子代元素(最近的子級(jí))。
選擇器寫法:父選擇器 > 子選擇器 { CSS 屬性},父子選擇器之間用 > 隔開。
<style>
div > span {
color: red;
}
</style>
<div>
<span>這是 div 里面的 span</span>
<p>
<span>這是 div 里面的 p 里面的 span</span>
</p>
</div>
并集選擇器
并集選擇器:選中多組標(biāo)簽設(shè)置相同的樣式。
選擇器寫法:選擇器1, 選擇器2, …, 選擇器N { CSS 屬性},選擇器之間用 , 隔開。
<style>
div,
p,
span {
color: red;
}
</style>
<div> div 標(biāo)簽</div>
<p>p 標(biāo)簽</p>
<span>span 標(biāo)簽</span>
交集選擇器
交集選擇器:選中同時(shí)滿足多個(gè)條件的元素。
選擇器寫法:選擇器1選擇器2 { CSS 屬性},選擇器之間連寫,沒有任何符號(hào)。
<style>
p.box {
color: red;
}
</style>
<p class="box">p 標(biāo)簽,使用了類選擇器 box</p>
<p>p 標(biāo)簽</p>
<div class="box">div 標(biāo)簽,使用了類選擇器 box</div>
注意:如果交集選擇器中有標(biāo)簽選擇器,標(biāo)簽選擇器必須書寫在最前面。
偽類選擇器
偽類選擇器:偽類表示元素狀態(tài),選中元素的某個(gè)狀態(tài)設(shè)置樣式。
鼠標(biāo)懸停狀態(tài):選擇器:hover { CSS 屬性 }
<style>
a:hover {
color: red;
}
.box:hover {
color: green;
}
</style>
<a href="#">a 標(biāo)簽</a>
<div class="box">div 標(biāo)簽</div>
超鏈接偽類
選擇器作用:link選擇尚未被訪問的超鏈接。:visited選擇已被訪問過的超鏈接。:hover鼠標(biāo)懸停在超鏈接上時(shí)應(yīng)用的樣式。:active超鏈接被點(diǎn)擊時(shí)應(yīng)用的樣式,通常用于短暫的樣式變化,以示被點(diǎn)擊。:focus超鏈接獲取焦點(diǎn)時(shí)應(yīng)用的樣式,通常用于鍵盤導(dǎo)航時(shí)給予用戶視覺反饋。
提示:如果要給超鏈接設(shè)置以上四個(gè)狀態(tài),需要按 LVHA 的順序書寫。
經(jīng)驗(yàn):工作中,一個(gè) a 標(biāo)簽選擇器設(shè)置超鏈接的樣式, hover狀態(tài)特殊設(shè)置
a {
color: red;
}
a:hover {
color: green;
}
02-CSS特性
CSS特性:化簡(jiǎn)代碼 / 定位問題,并解決問題
繼承性
層疊性
優(yōu)先級(jí)
繼承性
繼承性:子級(jí)默認(rèn)繼承父級(jí)的文字控制屬性。
描述屬性效果設(shè)置文字大小font-size控制文字的大小。設(shè)置文字樣式font-style控制文字的樣式,如斜體(italic)或正常(normal)。設(shè)置行高line-height控制行與行之間的距離,實(shí)現(xiàn)單行文字的垂直居中。設(shè)置字體族font-family指定用于顯示文本的字體系列,可以是單個(gè)字體名稱或一系列備選字體。設(shè)置文字對(duì)齊方式text-align控制文本在盒子中的水平對(duì)齊方式,如左對(duì)齊、右對(duì)齊、居中等。設(shè)置文本縮進(jìn)text-indent控制段落的首行縮進(jìn)。設(shè)置文本修飾線text-decoration添加文本的修飾線,如下劃線、刪除線等。設(shè)置文字顏色color控制文本的顏色。
層疊性
特點(diǎn):
相同的屬性會(huì)覆蓋:后面的 CSS 屬性覆蓋前面的 CSS 屬性
不同的屬性會(huì)疊加:不同的 CSS 屬性都生效
<style>
div {
color: red;
font-weight: 700;
}
div {
color: green;
font-size: 30px;
}
</style>
<div>div 標(biāo)簽</div>
注意:選擇器類型相同則遵循層疊性,否則按選擇器優(yōu)先級(jí)判斷。
嘗試一下>>>
優(yōu)先級(jí)
優(yōu)先級(jí):也叫權(quán)重,當(dāng)一個(gè)標(biāo)簽使用了多種選擇器時(shí),基于不同種類的選擇器的匹配規(guī)則。
<style>
div {
color: red;
}
.box {
color: green;
}
</style>
<div class="box">div 標(biāo)簽</div>
基礎(chǔ)選擇器
規(guī)則:選擇器優(yōu)先級(jí)高的樣式生效。
公式:通配符選擇器 < 標(biāo)簽選擇器 < 類選擇器 < id選擇器 < 行內(nèi)樣式 < !important
(選中標(biāo)簽的范圍越大,優(yōu)先級(jí)越低)
復(fù)合選擇器-疊加
疊加計(jì)算:如果是復(fù)合選擇器,則需要權(quán)重疊加計(jì)算。
公式:(每一級(jí)之間不存在進(jìn)位)
(行內(nèi)樣式,id選擇器個(gè)數(shù),類選擇器個(gè)數(shù),標(biāo)簽選擇器個(gè)數(shù))
規(guī)則:
從左向右依次比較選個(gè)數(shù),同一級(jí)個(gè)數(shù)多的優(yōu)先級(jí)高,如果個(gè)數(shù)相同,則向后比較
!important 權(quán)重最高
繼承權(quán)重最低
練習(xí):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>權(quán)重疊加鞏固練習(xí)</title>
<style>
/* (0, 0, 2, 1) */
.c1 .c2 div {
color: blue;
}
/* (0, 1, 0, 1) */
div #box3 {
color:green;
}
/* (0, 1, 1, 0) */
#box1 .c3 {
color:orange;
}
</style>
</head>
<body>
<div id="box1" class="c1">
<div id="box2" class="c2">
<div id="box3" class="c3">
這行文本是什么顏色的?
</div>
</div>
</div>
</body>
</html>
嘗試一下>>>
03-Emmet 寫法
Emmet寫法:代碼的簡(jiǎn)寫方式,輸入縮寫 VS Code 會(huì)自動(dòng)生成對(duì)應(yīng)的代碼。
以下是關(guān)于HTML標(biāo)簽的Emmet寫法的表格:
說明標(biāo)簽結(jié)構(gòu)Emmet寫法創(chuàng)建一個(gè)div標(biāo)簽<div></div>div創(chuàng)建一個(gè)帶有class的div標(biāo)簽<div></div>div.classname創(chuàng)建一個(gè)帶有id的div標(biāo)簽<div id="idname"></div>div#idname創(chuàng)建一個(gè)段落標(biāo)簽<p></p>p創(chuàng)建一個(gè)帶有文本內(nèi)容的段落標(biāo)簽<p>Text</p>p{Text}創(chuàng)建一個(gè)帶有鏈接的標(biāo)簽<a href="#"></a>a[href="#"]創(chuàng)建一個(gè)列表項(xiàng)標(biāo)簽<li></li>li創(chuàng)建一個(gè)無(wú)序列表標(biāo)簽<ul></ul>ul創(chuàng)建一個(gè)有序列表標(biāo)簽<ol></ol>ol創(chuàng)建一個(gè)圖片標(biāo)簽<img src="" alt="">img[src=""][alt=""]
這些Emmet寫法可以幫助快速生成HTML標(biāo)簽結(jié)構(gòu)。
以下是關(guān)于CSS的Emmet寫法的表格:
說明CSS結(jié)構(gòu)Emmet寫法創(chuàng)建一個(gè)帶有class的樣式表<link rel="stylesheet" href="style.css">link:css創(chuàng)建一個(gè)內(nèi)聯(lián)樣式表<style></style>style創(chuàng)建一個(gè)選擇器為.classname的樣式規(guī)則.classname {}.classname創(chuàng)建一個(gè)選擇器為#idname的樣式規(guī)則#idname {}#idname創(chuàng)建一個(gè)選擇器為tagname的樣式規(guī)則tagname {}tagname向選擇器為.classname的樣式規(guī)則中添加屬性.classname { property: value; }.classname { property: value; }向選擇器為#idname的樣式規(guī)則中添加屬性#idname { property: value; }#idname { property: value; }向選擇器為tagname的樣式規(guī)則中添加屬性tagname { property: value; }tagname { property: value; }
這些Emmet寫法可以幫助快速編寫CSS樣式規(guī)則。
04-背景屬性
背景圖
網(wǎng)頁(yè)中,使用背景圖實(shí)現(xiàn)裝飾性的圖片效果。
屬性名:background-image(bgi)
屬性值:url(背景圖 URL)
div {
width: 400px;
height: 400px;
background-image: url(./images/1.png);
}
提示:背景圖默認(rèn)有平鋪(復(fù)制)效果。
平鋪方式
屬性名:background-repeat(bgr)
屬性值效果repeat默認(rèn)值,背景圖像在水平和垂直方向上重復(fù)。repeat-x背景圖像在水平方向上重復(fù),垂直方向不重復(fù)。repeat-y背景圖像在垂直方向上重復(fù),水平方向不重復(fù)。no-repeat背景圖像不重復(fù),僅在盒子內(nèi)顯示一次。space背景圖像沿著盒子的邊緣平鋪,且圖像之間有空白間隔,使得圖片不會(huì)重疊。round背景圖像沿著盒子的邊緣平鋪,且圖像會(huì)被縮放以適應(yīng)整數(shù)倍的尺寸。
div {
width: 400px;
height: 400px;
background-color: pink;
background-image: url(./images/1.png);
background-repeat: no-repeat;
}
背景圖位置
屬性名:background-position(bgp)
屬性值:水平方向位置 垂直方向位置
關(guān)鍵字
以下是關(guān)于背景圖位置的關(guān)鍵字的表格:
關(guān)鍵字位置top圖片頂部對(duì)齊bottom圖片底部對(duì)齊left圖片左側(cè)對(duì)齊right圖片右側(cè)對(duì)齊center圖片居中對(duì)齊top left圖片左上角對(duì)齊top right圖片右上角對(duì)齊bottom left圖片左下角對(duì)齊bottom right圖片右下角對(duì)齊
這些關(guān)鍵字可以幫助你控制背景圖在元素中的位置。
坐標(biāo)
水平:正數(shù)向右;負(fù)數(shù)向左
垂直:正數(shù)向下;負(fù)數(shù)向上
div {
width: 400px;
height: 400px;
background-color: pink;
background-image: url(./images/1.png);
background-repeat: no-repeat;
background-position: center bottom;
background-position: 50px -100px;
background-position: 50px center;
}
提示:
關(guān)鍵字取值方式寫法,可以顛倒取值順序
可以只寫一個(gè)關(guān)鍵字,另一個(gè)方向默認(rèn)為居中;數(shù)字只寫一個(gè)值表示水平方向,垂直方向?yàn)榫又?/span>
背景圖縮放
作用:設(shè)置背景圖大小
屬性名:background-size(bgz)
常用屬性值:
關(guān)鍵字
cover:等比例縮放背景圖片以完全覆蓋背景區(qū),可能背景圖片部分看不見
contain:等比例縮放背景圖片以完全裝入背景區(qū),可能背景區(qū)部分空白
百分比:根據(jù)盒子尺寸計(jì)算圖片大小
數(shù)字 + 單位(例如:px)
div {
width: 500px;
height: 400px;
background-color: pink;
background-image: url(./images/1.png);
background-repeat: no-repeat;
background-size: cover;
background-size: contain;
}
提示:工作中,圖片比例與盒子比例相同,使用 cover 或 contain 縮放背景圖效果相同。
背景圖固定
作用:背景不會(huì)隨著元素的內(nèi)容滾動(dòng)。
屬性名:background-attachment(bga)
屬性值:fixed
body {
background-image: url(./images/bg.jpg);
background-repeat: no-repeat;
background-attachment: fixed;
}
背景復(fù)合屬性
屬性名:background(bg)
屬性值:背景色 背景圖 背景圖平鋪方式 背景圖位置/背景圖縮放 背景圖固定(空格隔開各個(gè)屬性值,不區(qū)分順序)
div {
width: 400px;
height: 400px;
background: pink url(./images/1.png) no-repeat right center/cover;
}
嘗試一下>>>
05-顯示模式
顯示模式:標(biāo)簽(元素)的顯示方式。
作用:布局網(wǎng)頁(yè)的時(shí)候,根據(jù)標(biāo)簽的顯示模式選擇合適的標(biāo)簽擺放內(nèi)容。
塊級(jí)元素
特點(diǎn):
獨(dú)占一行
寬度默認(rèn)是父級(jí)的100%
添加寬高屬性生效
行內(nèi)元素
特點(diǎn):
一行可以顯示多個(gè)
設(shè)置寬高屬性不生效
寬高尺寸由內(nèi)容撐開
行內(nèi)塊元素
特點(diǎn):
一行可以顯示多個(gè)
設(shè)置寬高屬性生效
寬高尺寸也可以由內(nèi)容撐開
轉(zhuǎn)換顯示模式
屬性:display
以下是關(guān)于轉(zhuǎn)換顯示模式的表格:
屬性值效果block將元素顯示為塊級(jí)元素,使元素呈現(xiàn)為一個(gè)塊,獨(dú)占一行,可以設(shè)置寬度和高度,可容納其他元素。inline將元素顯示為內(nèi)聯(lián)元素,使元素呈現(xiàn)為行內(nèi)元素,不獨(dú)占一行,只占據(jù)內(nèi)容所需的空間,不可設(shè)置寬高。inline-block將元素顯示為內(nèi)聯(lián)塊元素,元素呈現(xiàn)為行內(nèi)元素但可以設(shè)置寬度和高度,與其他行內(nèi)元素在一行顯示。none隱藏元素,使元素不可見且不占據(jù)空間。flex將元素設(shè)置為彈性容器,使其子元素成為彈性項(xiàng)目,可利用彈性布局方式控制元素的排列和對(duì)齊方式。grid將元素設(shè)置為網(wǎng)格容器,使其子元素成為網(wǎng)格項(xiàng)目,可利用網(wǎng)格布局方式控制元素的排列和對(duì)齊方式。inline-flex將元素設(shè)置為內(nèi)聯(lián)彈性容器,使其子元素成為彈性項(xiàng)目,可利用彈性布局方式控制元素的排列和對(duì)齊方式。inline-grid將元素設(shè)置為內(nèi)聯(lián)網(wǎng)格容器,使其子元素成為網(wǎng)格項(xiàng)目,可利用網(wǎng)格布局方式控制元素的排列和對(duì)齊方式。
這些屬性值可用于控制元素的顯示模式,從而實(shí)現(xiàn)不同的布局效果。
前端開發(fā)的都知道HTML標(biāo)簽很多,但常用的也就那么幾個(gè)。個(gè)人覺得在標(biāo)簽上面小程序做得很好,只有26個(gè)標(biāo)簽,而且是我們常用到的。文章介紹一些常用的HTML標(biāo)簽,以及一些非常有用的HTML屬性。
本次不詳細(xì)討論標(biāo)簽的使用,有興趣的朋友可以關(guān)注我下篇關(guān)于常用標(biāo)簽的使用注意事項(xiàng)的文章。
以下是小編最常用的標(biāo)簽,可以說幾乎開發(fā)網(wǎng)頁(yè)就用到這么22個(gè)標(biāo)簽。
22個(gè)最常用的標(biāo)簽
1.點(diǎn)擊“下載” 鏈接,下載圖片或文件而不是預(yù)覽,直接添加一個(gè)download屬性就可以
<a href="large.jpg" download>下載</a>
2.disable="disable"禁止點(diǎn)擊屬性,要去除時(shí),請(qǐng)用js刪除該屬性。
3.<button type="button"></button>必須指明類型type="button",否則默認(rèn)為submit,造成頁(yè)面刷新。
4.input type="file" accept="image,excel,word” 上傳控件的accept屬性
默認(rèn)是可以上傳所有文件。
accept:表示可以選擇的文件MIME類型,多個(gè)MIME類型用英文逗號(hào)分開。
5.favicon.ico圖標(biāo)是網(wǎng)站的縮略標(biāo)志,可以顯示在瀏覽器標(biāo)簽、地址欄左邊和收藏夾,是展示網(wǎng)站個(gè) 性的縮略logo標(biāo)志
<head>
<link rel="shortcut icon" href="/favicon.ico"/>
<link rel="bookmark" href="/favicon.ico"/>
</head>
6.圖片加載慢時(shí)用logo圖片代替,onerror當(dāng)圖片不存或加載不出來(lái)才生效。
7.HTML使用標(biāo)簽的refresh功能來(lái)刷新或跳轉(zhuǎn)頁(yè)面
<meta http-equiv="refresh" content="3" />表示頁(yè)面每隔3秒鐘刷新一次。
<meta http-equiv="refresh" content="3; url=<#ZC_BLOG_HOST#>" />表示頁(yè)面3秒后跳轉(zhuǎn)到 <#ZC_BLOG_HOST#>頁(yè)面。
說明:若果我們網(wǎng)站的首頁(yè)是一個(gè)index.asp頁(yè)面,當(dāng)它遭到CC攻擊是,我們把index.asp頁(yè)面打開的內(nèi)容保存到index.html(新建文本并保存)中。然后清空index.asp的內(nèi)容(清空之前注意備份),將上面的refresh語(yǔ)句復(fù)制進(jìn)來(lái)。這樣就可以有效的防止CC攻擊。
每一個(gè)特定或者特殊的日子里,幾乎所有的網(wǎng)站都變成了灰色,那么這種效果是怎么實(shí)現(xiàn)的呢?
今天就來(lái)簡(jiǎn)單的實(shí)現(xiàn)一下這樣的效果。
添加以下全局CSS樣式,可以實(shí)現(xiàn)此效果:
代碼一:
html {
-webkit-filter: grayscale(100%);filter:progid:DXImageTransform.Microsoft.BasicImage(graysale=1);
}
<!-- 可以是整個(gè)網(wǎng)站變成灰色的 -->
實(shí)現(xiàn)網(wǎng)頁(yè)顏色變灰這個(gè)效果,非常簡(jiǎn)單:
filter: grayscale(100%);
這樣一段代碼即可實(shí)現(xiàn),放在html和body的css屬性里即可實(shí)現(xiàn)。
意思是修改所有的顏色為黑白 (100% 灰度):
灰色網(wǎng)站會(huì)加入這段代碼,你可以按F12,把這段源碼刪除,即可變成彩色
代碼二:
html {
filter:progidXImageTransform.Microsoft.BasicImage(grayscale=1);
}
使用方法:這段代碼可以變網(wǎng)頁(yè)為黑白,將代碼加到CSS最頂端就可以實(shí)現(xiàn)素裝。建議全國(guó)站長(zhǎng)動(dòng)起來(lái)。為在地震中遇難的同胞哀悼。
如果網(wǎng)站沒有使用CSS,可以在網(wǎng)頁(yè)/模板的HTML代碼<head>和</head> 之間插入:
<style>
html{
filter:progidXImageTransform.Microsoft.BasicImage(grayscale=1);
}
</style>
有一些站長(zhǎng)的網(wǎng)站可能使用這個(gè)css 不能生效,是因?yàn)榫W(wǎng)站沒有使用最新的網(wǎng)頁(yè)標(biāo)準(zhǔn)協(xié)議:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
請(qǐng)將網(wǎng)頁(yè)最頭部的<html>替換為以上代碼。
有一些網(wǎng)站FLASH動(dòng)畫的顏色不能被CSS濾鏡控制,可以在FLASH代碼的<object …>和</object>之間插入:
<param value="false" name="menu"/>
<param value="opaque" name="wmode"/>
最簡(jiǎn)單的把頁(yè)面變成灰色的代碼是在head 之間加
<style type="text/css">
html {
FILTER: gray
}
</style>
html{
filter: grayscale(100%);
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: url("data:image/svg+xml;utf8,#grayscale");
filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
-webkit-filter: grayscale(1);
}
總結(jié):
以上幾種代碼(方法),都是通過CSS的濾鏡來(lái)控制頁(yè)面的顯示而已,唯一不同的就CSS代碼及調(diào)用的方式。在css的修飾時(shí)還有權(quán)重問題,所以有時(shí)候css代碼不生效的時(shí)候可以考慮一下代碼的權(quán)重問題。
歡迎關(guān)注第一山,今后將有更多前端開發(fā)技術(shù)與大家共同交流學(xué)習(xí)。
*請(qǐng)認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。