亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

前端開發之CSS原理詳解

2019-11-19 17:11:16
字體:
來源:轉載
供稿:網友

前端開發之CSS原理詳解

 從事Web前端開發的人都與CSS打交道很多,有的人也許不知道CSS是怎么去工作的,寫出來的CSS瀏覽器是怎么樣去解析的呢?當這個成為我們提高CSS水平的一個瓶頸時,是否應該多了解一下呢?

  一、瀏覽器的發展與CSS

  網頁瀏覽器主要通過 HTTP 協議連接網頁服務器而取得網頁, HTTP 容許網頁瀏覽器送交資料到網頁服務器并且獲取網頁。目前最常用的 HTTP 是 HTTP/1.1,這個協議在 RFC2616 中被完整定義。HTTP/1.1 有其一套 Internet Explorer 并不完全支援的標準,然而許多其他當代的網頁瀏覽器則完全支援這些標準。網頁的位置以 URL(統一資源定位符)指示,此乃網頁的地址;以 http: 開首的便是通過 HTTP協議登陸。很多瀏覽器同時支援其他類型的 URL 及協議,例如 ftp: 是 FTP(檔案傳送協議)、gopher: 是 Gopher 及 https: 是 HTTPS(以SSL加密的HTTP)。

  早期的網頁瀏覽器只支援簡易版本的HTML。專屬軟件的瀏覽器的迅速發展導致非標準的 HTML 代碼的產生。但隨著 HTML 的成長,為了滿足設計師的要求,HTML 獲得了很多顯示功能。隨著這些功能的增加外來定義樣式的語言越來越沒有意義了。

  1994年哈坤?利提出了 CSS 的最初建議。伯特?波斯(BertBos)當時正在設計一個叫做 Argo 的瀏覽器,他們決定一起合作設計CSS。

  當時已經有過一些樣式表語言的建議了,但 CSS 是第一個含有“層疊”的主意的。在 CSS 中,一個文件的樣式可以從其他的樣式表中繼承下來。讀者在有些地方可以使用他自己更喜歡的樣式,在其他地方則繼承,或“層疊”作者的樣式,這種層疊的方式使作者和讀者都可以靈活地加入自己的設計,混合各人的愛好。

  1997年初,W3C 內組織了專門管 CSS 的工作組,其負責人是克里斯?里雷。這個工作組開始討論第一版中沒有涉及到的問題,其結果是1998年5月出版的第二版要求。到2007年為止,第三版還未完備。

  二、瀏覽器是如何渲染頁面和加載頁面

  為什么有些網站打開的時候會加載會很慢,而且是整個頁面同時顯示的,而有些網站是從頂到下逐步顯示出來的?要搞懂這個可以先從下面這個常規流程開始:

  1. 瀏覽器下載的順序是從上到下,渲染的順序也是從上到下,下載和渲染是同時進行的。
  2. 在渲染到頁面的某一部分時,其上面的所有部分都已經下載完成(并不是說所有相關聯的元素都已經下載完)。
  3. 如果遇到語義解釋性的標簽嵌入文件(JS腳本,CSS樣式),那么此時IE的下載過程會啟用單獨連接進行下載。
  4. 并且在下載后進行解析,解析過程中,停止頁面所有往下元素的下載。
  5. 樣式表在下載完成后,將和以前下載的所有樣式表一起進行解析,解析完成后,將對此前所有元素(含以前已經渲染的)重新進行渲染。
  6. JS、CSS中如有重定義,后定義函數將覆蓋前定義函數。

  這里關鍵的是第2-5這三點。渲染效率與下面三點有關:

  1. CSS 選擇器的查詢定位效率
  2. 瀏覽器的渲染模式和算法
  3. 要進行渲染內容的大小

  三、什么是 CSS 以及 CSS 的優點

  什么是 CSS?

  1. CSS 是 Cascading Style Sheets(層疊樣式表)的簡稱。
  2. CSS 語言是一種標記語言,它不需要編譯,可以直接由瀏覽器解釋執行(屬于瀏覽器解釋型語言)。
  3. 在標準網頁設計中 CSS 負責網頁內容 (XHTML)的表現。
  4. CSS 文件也可以說是一個文本文件,它包含了一些 CSS 標記,CSS 文件必須使用 css 為文件名后綴。
  5. 可以通過簡單的更改 CSS 文件,改變網頁的整體表現形式,可以減少我們的工作量,所以它是每一個網頁設計人員的必修課。
  6. CSS是由W3C的CSS工作組產生和維護的。

  采用 CSS+DIV 進行網頁重構,相對與傳統的 TABLE 網頁布局而具有以下3個顯著優勢:

  1. 表現和內容相分離。將設計部分剝離出來放在一個獨立樣式文件中,HTML文件中只存放文本信息。這樣的頁面對搜索引擎更加友好。

  2. 提高頁面瀏覽速度。對于同一個頁面視覺效果,采用 CSS+DIV 重構的頁面容量要比 TABLE 編碼的頁面文件容量小得多,前者一般只有后者的1/2大小。瀏覽器就不用去編譯大量冗長的標簽。

  3. 易于維護和改版。你只要簡單的修改幾個 CSS 文件就可以重新設計整個網站的頁面。

  四、瀏覽器對 CSS 的匹配原理

  瀏覽器CSS匹配不是從左到右進行查找,而是從右到左進行查找。比如之前說的 DIV#divBox p span.red{color:red;},瀏覽器的查找順序如下:先查找 html 中所有 class='red' 的 span 元素,找到后,再查找其父輩元素中是否有p元素,再判斷p的父元素中是否有 id 為 divBox 的 div 元素,如果都存在,則 CSS 匹配上。

  瀏覽器從右到左進行查找的好處是為了盡早過濾掉一些無關的樣式規則和元素。Firefox 稱這種查找方式為 keyselector(關鍵字查詢),所謂的關鍵字就是樣式規則中最后(最右邊)的規則,上面的 key 就是 span.red。

  五、優化你的 CSS

  所謂高效的 CSS 就是讓瀏覽器在查找 style 匹配的元素的時候盡量進行少的查找,下面列出一些我們常見的寫 CSS 犯一些低效錯誤:

  1、不要在ID選擇器前使用標簽名

  一般寫法:DIV#divBox

  更好寫法:#divBox

  解釋:因為ID選擇器是唯一的,加上div反而增加不必要的 CSS 匹配。

  2、不要在 class 選擇器前使用標簽名

  一般寫法:span.red

  更好寫法:.red

  解釋:同第一條,但如果你定義了多個.red,而且在不同的元素下是樣式不一樣,則不能去掉,比如你css文件中定義如下:

 p.red{color:red;}  span.red{color:#ff00ff}

  如果是這樣定義的就不要去掉,去掉后就會混淆,不過建議最好不要這樣寫

  3、盡量少使用層級關系

  一般寫法:#divBoxp.red{color:red;}

  更好寫法:.red{..}

  4、使用 class 代替層級關系

  一般寫法:#divBox ul li a{display:block;}

  更好寫法:.block{display:block;}

  5、在 CSS 渲染效率中 id 和 class 的效率是基本相當的

  class 會在第一次載入中被緩存,在層疊中會有更加好的效果,在根部元素采用id會具有更加好(id有微妙的速度優勢)。

       感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产一区二区三区视频在线观看| 国产精品女视频| 伊人久久男人天堂| 国产精品美女在线观看| 亚洲成人免费在线视频| 亚洲午夜未删减在线观看| 亚洲qvod图片区电影| 日韩精品中文字幕在线播放| 亚洲网站在线播放| 北条麻妃一区二区三区中文字幕| 欧美电影免费观看高清| 欧美午夜精品久久久久久人妖| 成人两性免费视频| 久久夜色精品亚洲噜噜国产mv| 欧美黑人狂野猛交老妇| 久久这里有精品视频| 国产精品69av| 91日本视频在线| 欧美日韩国产二区| 色先锋资源久久综合5566| 国产成人综合av| 中文字幕在线国产精品| 亚洲伊人一本大道中文字幕| 欧美午夜精品久久久久久人妖| 北条麻妃一区二区三区中文字幕| 欧美电影免费在线观看| 亚洲综合精品一区二区| 欧美激情在线狂野欧美精品| 欧美乱大交做爰xxxⅹ性3| 一区二区三区无码高清视频| 日韩天堂在线视频| 91成人在线播放| 日韩在线观看精品| 欧美国产日韩一区二区| 大胆欧美人体视频| 国产一区二区欧美日韩| 国产精品久久久久一区二区| 中文字幕精品在线| 韩剧1988在线观看免费完整版| 欧美激情视频在线观看| 欧美激情成人在线视频| 欧美成aaa人片在线观看蜜臀| 久久久久久久久综合| 日韩亚洲欧美中文在线| 欧美日韩精品国产| 欧美性一区二区三区| 2021久久精品国产99国产精品| 狠狠色香婷婷久久亚洲精品| 亚洲一区二区三区四区视频| 欧美亚洲另类视频| 久久久久久国产精品久久| 日韩在线观看电影| 国产97在线|亚洲| 北条麻妃久久精品| 欧美精品videosex牲欧美| 国产91免费看片| 亚洲女人被黑人巨大进入| 久久精品视频va| 国产精品第2页| 日本精品视频在线播放| 色偷偷av一区二区三区| 精品亚洲一区二区三区在线观看| 78m国产成人精品视频| 色综合久久88| 欧美日韩一区免费| 亚洲片av在线| 日韩欧美在线视频| 精品亚洲国产成av人片传媒| 久久久精品视频成人| 久久精品视频在线观看| 久久久精品999| 精品视频在线播放免| 日本中文字幕成人| 亚洲天堂精品在线| 日韩精品中文在线观看| 国产成人高潮免费观看精品| 国产成人小视频在线观看| 亚洲深夜福利在线| 日韩在线观看免费| 91chinesevideo永久地址| 欧美中在线观看| 亚洲欧美自拍一区| 色偷偷噜噜噜亚洲男人的天堂| 国产成人午夜视频网址| 国产精品高潮呻吟久久av野狼| 97超碰蝌蚪网人人做人人爽| 欧美成人午夜激情视频| 亚洲偷熟乱区亚洲香蕉av| 日韩在线www| 久久91亚洲精品中文字幕奶水| 精品国产老师黑色丝袜高跟鞋| 国产成人精彩在线视频九色| 国内精品视频一区| 91久久久久久久一区二区| www高清在线视频日韩欧美| 欧美在线观看www| 欧美极品少妇xxxxⅹ免费视频| 2018中文字幕一区二区三区| 国产精品露脸av在线| 亚洲性生活视频在线观看| 26uuu久久噜噜噜噜| 色av吧综合网| 国产成人福利视频| 亚洲美女中文字幕| 91影院在线免费观看视频| 成人国产精品久久久| 亚洲欧美制服另类日韩| 高清视频欧美一级| 成人在线小视频| 日韩久久精品电影| 亚洲精品白浆高清久久久久久| 欧美一二三视频| 一级做a爰片久久毛片美女图片| 国产精品亚洲网站| 九九精品在线播放| 午夜精品一区二区三区在线视| 麻豆国产精品va在线观看不卡| 成人午夜一级二级三级| 欧美激情精品久久久久久| 久久影视三级福利片| 国产欧美精品在线播放| 精品女同一区二区三区在线播放| 97久久精品人人澡人人爽缅北| 日韩专区在线播放| 久久99热精品这里久久精品| 正在播放亚洲1区| 欧美日韩国产一区二区三区| 欧美视频在线观看免费| 亚洲美女久久久| 亚洲欧美国产精品专区久久| 91精品国产综合久久久久久蜜臀| 日韩美女在线看| 国产99久久久欧美黑人| 亚洲aaaaaa| 日韩欧美在线观看| 亚洲福利小视频| 在线播放精品一区二区三区| 亚洲最大在线视频| 尤物yw午夜国产精品视频明星| 欧美日韩精品二区| 欧美日韩一区二区精品| 精品成人国产在线观看男人呻吟| 国产精品免费久久久久久| 欧美激情精品久久久久久久变态| 日本最新高清不卡中文字幕| 欧美日韩国产精品一区二区三区四区| 深夜福利国产精品| 精品视频偷偷看在线观看| 97精品一区二区三区| 国产欧美在线看| 91香蕉电影院| 国产在线拍偷自揄拍精品| 欧美一区视频在线| 欧美—级a级欧美特级ar全黄| 日韩中文字幕网址| 91精品国产自产在线老师啪| 欧美激情精品久久久久久久变态| 日韩在线中文字幕| 欧美美女18p| 久久精品这里热有精品| 国产亚洲精品久久久久久牛牛| 日韩在线一区二区三区免费视频| 国产精品久久视频| 国产精品高潮呻吟视频|