用 CSS 最困難的部分之一是處理CSS的權(quán)重值,它可以決定到底哪條規(guī)則會(huì)最終被應(yīng)用,尤其是如果你想在 Bootstrap 這樣的框架中覆蓋其已有樣式,更加顯得麻煩。不過隨著 CSS 層的引入,這一切都發(fā)生了變化。 這個(gè)新功能允許您創(chuàng)建自己的自定義 CSS 層,這是有史以來第一次確定所有 CSS 代碼權(quán)重的層次結(jié)構(gòu)。 在本文中,我將剖析這對(duì)您意味著什么,它是如何工作的,以及您今天如何開始使用它。
什么是層(Layers)
創(chuàng)建您自己的自定義圖層是 CSS 的新功能,但圖層從一開始就存在于 CSS 中。 CSS 中有 3 個(gè)不同的層來管理所有樣式的工作方式。
瀏覽器(也稱為用戶代理)樣式 - user agent style
用戶樣式 - User Styles
作者樣式 - Author Styles
瀏覽器樣式是應(yīng)用于瀏覽器的默認(rèn)樣式。這就是為什么 Chrome 和 Safari 中的按鈕看起來不同的原因。在瀏覽器層中找到的樣式在瀏覽器之間是不同的,并且給每個(gè)瀏覽器一個(gè)獨(dú)特的外觀。
下一層是用戶樣式,這并不是您真正需要擔(dān)心的事情。這些通常是用戶可以編寫并注入瀏覽器的自定義樣式,但瀏覽器不再真正支持這些樣式。用戶可能會(huì)更改一些瀏覽器設(shè)置,這些設(shè)置會(huì)向該圖層添加樣式,但在大多數(shù)情況下,可以完全忽略該層。
最后,我們來到作者層。這是您最熟悉的層,因?yàn)槟帉懙拿恳欢?CSS 代碼都屬于這一層。
這些層分開的原因是因?yàn)樗梢院苋菀椎馗采w瀏覽器樣式和用戶樣式中定義的代碼,因?yàn)閷佣x了自己的層次結(jié)構(gòu),完全忽略了權(quán)重的影響。
這 3 個(gè) CSS 層是有序的(瀏覽器樣式、用戶樣式、然后是作者樣式),后面層中的每個(gè)樣式都將覆蓋前一層的任何樣式。這意味著即使瀏覽器樣式定義了一個(gè)超級(jí)特定的選擇器,例如#button.btn.super-specific,并且您的作者樣式定義了一個(gè)超級(jí)通用的選擇器,例如按鈕,您的作者樣式仍然會(huì)覆蓋瀏覽器樣式。
這實(shí)際上已經(jīng)是您可能一直在使用而沒有意識(shí)到的東西。
* {
box-sizing: border-box;
}
上面的選擇器沒有權(quán)重,因?yàn)?* 符號(hào)對(duì)權(quán)重沒有貢獻(xiàn)。 這意味著例如使用 p 作為選擇器的 p 標(biāo)簽的瀏覽器樣式在技術(shù)上比 * 選擇器更具體,權(quán)重更高。 但是,這一切并不重要,因?yàn)樽髡邩邮轿挥诒葹g覽器樣式層晚的層中,因此您的代碼將始終覆蓋瀏覽器樣式。
理解這一點(diǎn)至關(guān)重要,因?yàn)槭褂眠@個(gè)新的圖層 API,您可以在作者圖層中創(chuàng)建自己的圖層,從而更輕松地處理特定性。
如何創(chuàng)建你自己的層
下面來看個(gè)例子:
很明顯,這是我們正常理解的CSS, ID設(shè)置的顏色權(quán)重更高,所以按鈕顯示為紅色。讓我們使用@layer給它們加上兩個(gè)層,看看是什么效果:
按鈕變成藍(lán)色。為什么會(huì)這樣?
我們給兩條CSS分別建立了base和utilities層,很明顯,后面創(chuàng)建的層的樣式覆蓋了前面層的樣式,盡管前面層的樣式有更高的權(quán)重。這就是層的默認(rèn)工作原理。當(dāng)然層的順序是可以指定的,
@layer utilities, base;
@layer utilities, base;
您需要做的就是編寫@layer 關(guān)鍵字,后跟以逗號(hào)分隔的層列表。 這將按從左到右的順序定義所有層,其中列出的第一層到最后一層的權(quán)重是依次增加的。 然后,您可以稍后使用普通的@layer 語法向每個(gè)層添加代碼,而不必?fù)?dān)心定義層的順序,因?yàn)樗鼈兌荚谶@一行中定義。 需要注意的是,這行代碼必須在定義任何層之前出現(xiàn),所以我通常將它作為我的 CSS 文件中的第一行。如上圖,通過指定層的順序,我們讓base層應(yīng)用在utilities層之后,所以按鈕又顯示為紅色。
導(dǎo)入層
上面這兩種方式都是導(dǎo)入bootstrap框架的CSS,并且把他們放在framework層中,這樣你如果想要覆蓋它已有的樣式,只需要新建一個(gè)自己的層,放置在framework層后面就行。像下面這樣。
匿名層
匿名層不常用,但它寫在后面可以覆蓋其他層的樣式,像下面可以把按鈕設(shè)為橙色。
不在層里的樣式
不在層里的樣式會(huì)有更高的權(quán)重,下面這個(gè)列表會(huì)讓你看得更清楚覆蓋是怎么發(fā)生的
層還可以重疊設(shè)置,不過很少用。具體的用法可以查閱相關(guān)文檔。
瀏覽器支持
自從IE死了以后,所有主流瀏覽器都已支持這一特性。大家請放心使用。
今天我們一起來了解下HTML,
首先HTmL包含三層結(jié)構(gòu),分別是結(jié)構(gòu)層,表現(xiàn)層,行為層。
結(jié)構(gòu)層:html => 網(wǎng)頁上有什么,比如說文字啊、按鈕啊、圖片啊等等。
表現(xiàn)層:css => 顯示成什么樣子,比如說文字的大小啊,位置啊,顏色啊等等。
行為層:JavaScript => 具體怎么操作,比如說點(diǎn)擊按鈕讓圖片放大縮小等等。
===============================
在了解了html的三層結(jié)構(gòu)之后,我們來學(xué)習(xí)如何寫html。html不是編程語言,它是一套標(biāo)簽。最簡單的html文本是下圖1這個(gè)樣子。我們可以在電腦桌面上新建一個(gè)記事本文件,然后把后綴名改一下(.txt=>.html),把這段標(biāo)簽代碼粘貼到html文件里,這樣一個(gè)空白的網(wǎng)頁就做成了。如果需要在網(wǎng)頁上添加內(nèi)容,我們只需要在第10行的位置添加各種各樣的標(biāo)簽即可。比如我在圖二添加了一個(gè)按鈕標(biāo)簽和一段文字標(biāo)簽,雙擊html文件,頁面上就從左到右,從上到下顯示對(duì)應(yīng)的內(nèi)容。是不是很簡單。我們?nèi)粘g覽的網(wǎng)頁都是這樣一個(gè)標(biāo)簽一個(gè)標(biāo)簽畫上去的。
我給大家總結(jié)了一張圖,基本上覆蓋了工作中常用的知識(shí)點(diǎn)。同時(shí)分享幾個(gè)小技巧。
1.最簡單的網(wǎng)頁寫成什么樣子,也就是html模板不需要記憶,下圖也說了,去百度下載一個(gè)VSCode軟件(類似于記事本,是現(xiàn)在主流的前端代碼編輯器),用它打開我們的html文件,輸入英文嘆號(hào)回車就自動(dòng)生成了,學(xué)編程不要死記硬背。
2.控件的標(biāo)簽不需要記憶,直接百度html XXX標(biāo)簽,例如:百度搜“html按鈕標(biāo)簽”,他就會(huì)告訴我們是<button>,用的時(shí)間長了自然就記住了。是不是省力。
3.標(biāo)簽的屬性很重要,可以不去記他的寫法,因?yàn)閷懣梢园俣?,重要的是你需要記住?biāo)簽有什么屬性,下圖的屬性記住足矣。為什么要記呢,因?yàn)楣ぷ髦校械臅r(shí)候會(huì)遇到這樣一種情況,明明設(shè)置一個(gè)屬性可以完成的功能,我們不知道,花費(fèi)了大力氣用css和js去實(shí)現(xiàn),結(jié)果還存在著特定場合的bug,讓人很無奈。
4.對(duì)于html還有兩個(gè)標(biāo)簽<canvas>和<svg>,他們是用來繪圖的,做特殊效果的。我們可以先跳過,等框架啥的都學(xué)完了,有興趣,學(xué)習(xí)一下。
5.給大家推薦一個(gè)小白學(xué)習(xí)html的網(wǎng)站,w3cschool,圖里不明白的可以去上邊學(xué)學(xué)練練。
6.如果覺得一個(gè)人學(xué)習(xí)前端有難度,我建了一個(gè)小白前端學(xué)習(xí)交流群,可以私聊我,大家在群里多多交流,我會(huì)經(jīng)常給大家答疑,組織大家練習(xí),一起做小項(xiàng)目。有方向,少走彎路。
例題
由 解析器 和 域名服務(wù) 組成
(1)按域名空間層次:根,頂級(jí),權(quán)限,本地
(2)按作用:主 ,輔 ,緩存 ,轉(zhuǎn)發(fā)域名服務(wù)器
資源記錄
域名解析
遞歸與迭代
(1)URL:統(tǒng)一資源標(biāo)識(shí)符 ,由四個(gè)部分組成 ,協(xié)議://主機(jī) 端口/路徑
(2)http:超文本傳輸協(xié)議,負(fù)責(zé)規(guī)定服務(wù)器和瀏覽器如何交流
(3)HTML: 超文本標(biāo)記語言,描述網(wǎng)絡(luò)文檔的一種標(biāo)記語言,
(1)請求報(bào)文:客向服務(wù)
常見請求報(bào)文
(2)響應(yīng)報(bào)文:服務(wù)向客
(1)兼容1.X,同時(shí)提升web的性能,減少了網(wǎng)絡(luò)延遲,減少了前端的優(yōu)化工作,
(2)采用了新的二進(jìn)制格式,解決了多路復(fù)用(即連接共享)問題
(3)可對(duì)header進(jìn)行壓縮,使用較為安全的 HPACK壓縮算法,重置連接表現(xiàn)較好,有一定流量控制功能,可以使用更安全的SSL
(1)簡單郵件傳輸協(xié)議:SMTP ,
主要負(fù)責(zé)底部的郵件系統(tǒng),
工作在TCP25號(hào)端口
(2)郵局協(xié)議:pop ,
目前為pop3 ,
是把郵件從郵件服務(wù)器中傳輸?shù)奖镜赜?jì)算機(jī)的協(xié)議,
工作在TCP110端口
(3)Internet郵件訪問協(xié)議:IMAP ,
目前為IMAP4 ,
是pop3的代替協(xié)議 ,
提供了郵件檢索和郵件處理的新功能 ;
支持在脫機(jī)情況下,記憶用戶在脫機(jī)情況下的操作,再次網(wǎng)絡(luò)連接會(huì)自動(dòng)執(zhí)行,
工作在TCP143端口
工作過程:
主動(dòng)式:
被動(dòng)式:
(1)性能管理:性能檢測 分析管理 控制
(2)配置管理:定義識(shí)別初始化監(jiān)管網(wǎng)絡(luò)中被管的對(duì)象 ,配置信息收集 ,和利用軟件設(shè)置參數(shù)并配置硬件設(shè)備
(3)故障管理:網(wǎng)絡(luò)中被管對(duì)象的檢測定位和排除
(4)安全管理:管理員身份認(rèn)證 ,管理信息加密
(5)計(jì)費(fèi)管理:記錄用戶使用網(wǎng)絡(luò)資源情況并核實(shí)計(jì)費(fèi)
CMIP則是實(shí)現(xiàn)CMIS的協(xié)議
(1)管理站:是位于網(wǎng)絡(luò)系統(tǒng)主干 或者邊緣
(2)代理:又稱為管理代理 ,位于被管理設(shè)備內(nèi)部
(3)管理信息庫:相當(dāng)于虛擬信息庫
(4)網(wǎng)絡(luò)管理協(xié)議:常見有SNMP ,CMIS/CMIP
(1)NMP PDU :規(guī)定了5個(gè)重要的數(shù)據(jù)協(xié)議單元pdu ,也稱為SNMP報(bào)文 ,
常見snmp報(bào)文:
(2)SNMPv2接收報(bào)文和發(fā)送報(bào)文:
步驟:
(3)SNMPv3安全分類:
1):主要安全威脅 ,修改信息和假冒
2):次要 ,修改報(bào)文流 ,和消息泄漏
(4)SNMP輪詢監(jiān)控:一定時(shí)間間隔向代理獲取管理信息 ,有異常時(shí) 發(fā)送trap報(bào)文
優(yōu)點(diǎn):對(duì)代理資源要求不高
缺點(diǎn):管理開銷大
基本功能:網(wǎng)絡(luò)性能監(jiān)控 ,網(wǎng)絡(luò)差錯(cuò)檢測 ,網(wǎng)絡(luò)配置
公式:支持的設(shè)備數(shù)=輪詢周期數(shù)N/單個(gè)設(shè)備輪詢時(shí)間T
所以只有在 MIB 里的對(duì)象才可以被SNMP管理 目前使用的是 MIB-2
常見MIB-2信息:
SNMP MIB中被管對(duì)象的訪問方式:有只讀 ,讀寫 ,只寫 ,和不可訪問四種 ,不包括可執(zhí)行
(1)即MSI ,定義了命名管理對(duì)象和 定義對(duì)象類型 的通用規(guī)則 ,
(2)還定義了對(duì)象和對(duì)象進(jìn)行編碼的規(guī)則
(3)SMI功能:1命名被管理對(duì)象 ;2儲(chǔ)存被管理對(duì)象的數(shù)據(jù)類型 ,編碼管理數(shù)據(jù) ;3 SMI規(guī)定,所有被管對(duì)象必須在對(duì)象命名樹上
對(duì)象命名樹:
優(yōu)點(diǎn):1共享IP地址 ;2緩存功能提高訪問速度 ;3信息轉(zhuǎn)發(fā) ;4過濾和禁止某些通信 ;5提高安全 ,避免病毒入侵 ,提高網(wǎng)絡(luò)訪問速度
突破對(duì)某些網(wǎng)站的訪問
SSH目前比較可靠 ,即 安全外科協(xié)議 ,專為遠(yuǎn)程登錄會(huì)話和其他網(wǎng)絡(luò)安全性的協(xié)議 ,由IETE的網(wǎng)絡(luò)安全小組制定
優(yōu)點(diǎn):1防遠(yuǎn)程登錄的信息泄露 ,也可以對(duì)信息進(jìn)行加密 ;2防止DNS欺騙( 如果可以冒充域名服務(wù)器,然后把查詢的IP地址設(shè)為攻擊者的IP地址,這樣的話,用戶上網(wǎng)就只能看到攻擊者的主頁,并不是黑掉了網(wǎng)頁,只是招搖撞騙罷了)和IP欺騙(偽裝源IP地址) ;3傳輸數(shù)據(jù)是經(jīng)過壓縮的,所以可以加快傳輸速度,
(1)DPI:
(2)PPI:
*請認(rèn)真填寫需求信息,我們會(huì)在24小時(shí)內(nèi)與您取得聯(lián)系。