整合營(yíng)銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          深入理解CSS:探索前端開發(fā)的進(jìn)階技巧

          深入理解CSS:探索前端開發(fā)的進(jìn)階技巧

          ss進(jìn)階

          原文出處>>>

          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í)。


          主站蜘蛛池模板: 国产一区二区三区乱码网站| 无码精品人妻一区二区三区中| 成人免费视频一区二区| 无码人妻精品一区二区三区99仓本| 精品国产一区二区三区麻豆 | 国产精品va无码一区二区| 无码一区二区三区免费视频| 国产亚洲福利精品一区| 高清一区二区三区| 日本高清天码一区在线播放| 中文字幕一区一区三区| 日本亚洲成高清一区二区三区| 色一情一乱一伦一区二区三区| 国产精品久久无码一区二区三区网| 久久久久成人精品一区二区| 国产精品女同一区二区久久| 波多野结衣一区在线| 在线观看一区二区精品视频| 精品欧美一区二区在线观看| 国产成人综合一区精品| 97人妻无码一区二区精品免费| 精品一区二区久久| 日韩内射美女人妻一区二区三区| 亚洲一区二区三区AV无码| 东京热无码一区二区三区av| 乱人伦一区二区三区| 亚洲一区二区三区国产精品| 亚洲欧洲一区二区三区| 在线观看国产区亚洲一区成人| 亚洲一区二区三区无码影院| 一区二区三区影院| 日本道免费精品一区二区| 精品国产一区二区三区免费| 亚洲av不卡一区二区三区| 精品人妻系列无码一区二区三区| 亚洲午夜精品一区二区公牛电影院 | 精品视频一区二区三区免费 | 精品久久久中文字幕一区| 国产精品亚洲一区二区三区在线观看 | 久久一区二区明星换脸| 亚洲av综合av一区|