<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      css知多少(3)——樣式來源與層疊規則

        上一節《css知多少(2)——學習css的思路》有幾個人留言表示思路很好、繼續期待,而且收到了9個贊,我還是比較欣慰的。沒看過的朋友建議先去看看上一節。

        這一節就開始實踐上一節的思路!

      1. “層疊”的概念

        CSS——層疊樣式表,其中的“層疊”是什么意思呢?層疊就是瀏覽器對多個樣式來源進行疊加,最終確定結果的過程。舉一個簡單的例子:

         

             上圖中有兩個樣式來源,第一個是引用的css1.css,第二個是自己在style中編寫的樣式。“層疊”是個疊加的過程,可通過下圖表示:

         

            

             上面用一個簡單的例子來說明了層疊的過程,形象的體驗一下。

             層疊是CSS的核心機制,理解了它才能以最經濟的方式寫出最容易改動的CSS,讓文檔外觀在達到設計要求的同時,也給用戶留下一些空間,讓他們根據需要更改文檔的顯示效果,例如調整字號。——摘自《CSS設計指南》

      2.樣式來源

             上文中提到,css之所以有“層疊”的概念,是因為有多個樣式來源。其實css的樣式來源有5個,開發人員只能接觸到后面3個。

        

             第一,瀏覽器默認樣式表

             當你不為html設置任何樣式時,顯示在瀏覽器上,b標簽會顯示粗體、p有縱向margin、h1字號比p大一倍……這是為什么呢?

             因為瀏覽器自帶一個默認的樣式,如果html中沒有為標簽設置樣式,則瀏覽器會按照自己的樣式來顯示。但是瀏覽器默認樣式的級別是最低的,一旦有其他地方設置了標簽樣式,瀏覽器默認樣式就會被沖掉。

             注意,不同瀏覽器的默認樣式有些地方是不一樣的。例如,我們在寫css時,都會首先設置 * {margin:0; padding:0;},這是為何?就是因為有瀏覽器兼容性問題。干脆,全部弄成0,這樣各個瀏覽器就都統一了。

             此處先把默認樣式的代碼貼出來 ,我們下一節專門解說默認樣式,有很多值得玩味的地方。

       1 html, address,blockquote,body, dd, div,dl, dt, fieldset, form,frame, frameset,h1, h2, h3, h4,h5, h6, noframes,ol, p, ul, center,dir, hr, menu, pre { display: block }/*以上列表元素默認狀態下一塊狀顯示,未顯示的將以內聯元素顯示,該列表針對HTML4版本,部分元素在XHTML1中將廢棄*/
       2 li { display: list-item }/*默認以列表顯示*/
       3 head { display: none }/*默認不顯示*/
       4 table { display: table }/*默認為表格顯示*/
       5 tr { display: table-row }/*默認為表格行顯示*/
       6 thead { display: table-header-group }/*默認為表格頭部分組顯示*/
       7 tbody { display: table-row-group }/*默認為表格行分組顯示*/
       8 tfoot { display: table-footer-group }/*默認為表格底部分組顯示*/
       9 col { display: table-column }/*默認為表格列顯示*/
      10 colgroup { display: table-column-group }/*默認為表格列分組顯示*/
      11 td, th { display: table-cell; }/*默認為單元格顯示*/
      12 caption { display: table-caption }/*默認為表格標題顯示*/
      13 th { font-weight: bolder; text-align: center }/*默認為表格標題顯示,呈現加粗居中狀態*/
      14 caption { text-align: center }/*默認為表格標題顯示,呈現居中狀態*/
      15 body { margin: 8px; line-height: 1.12 }
      16 h1 { font-size: 2em; margin: .67em 0 }
      17 h2 { font-size: 1.5em; margin: .75em 0 }
      18 h3 { font-size: 1.17em; margin: .83em 0 }
      19 h4, p, blockquote, ul, fieldset, form, ol, dl, dir, menu { margin: 1.12em 0 }
      20 h5 { font-size: .83em; margin: 1.5em 0 }
      21 h6 { font-size: .75em; margin: 1.67em 0 }
      22 h1, h2, h3, h4, h5, h6, b,strong { font-weight: bolder }
      23 blockquote { margin-left: 40px; margin-right: 40px }
      24 i, cite, em,var, address { font-style: italic }
      25 pre, tt, code, kbd, samp { font-family: monospace }
      26 pre { white-space: pre }
      27 button, textarea, input, object, select { display:inline-block; }
      28 big { font-size: 1.17em }
      29 small, sub, sup { font-size: .83em }
      30 sub { vertical-align: sub }/*定義sub元素默認為下標顯示*/
      31 sup { vertical-align: super }/*定義sub元素默認為上標顯示*/
      32 table { border-spacing: 2px; }
      33 thead, tbody, tfoot { vertical-align: middle }/*定義表頭、主體表、表腳元素默認為垂直對齊*/
      34 td, th { vertical-align: inherit }/*定義單元格、列標題默認為垂直對齊默認為繼承*/
      35 s, strike, del { text-decoration: line-through }/*定義這些元素默認為刪除線顯示*/
      36 hr { border: 1px inset }/*定義分割線默認為1px寬的3D凹邊效果*/
      37 ol, ul, dir, menu, dd { margin-left: 40px }
      38 ol { list-style-type: decimal }
      39 ol ul, ul ol, ul ul, ol ol { margin-top: 0; margin-bottom: 0 }
      40 u, ins { text-decoration: underline }
      41 br:before { content: "A" }/*定義換行元素的偽對象內容樣式*/
      42 :before, :after { white-space: pre-line }/*定義偽對象空格字符的默認樣式*/
      43 center { text-align: center }
      44 abbr, acronym { font-variant: small-caps; letter-spacing: 0.1em }
      45 :link, :visited { text-decoration: underline }
      46 :focus { outline: thin dotted invert }
      47  /* Begin bidirectionality settings (do not change) */
      48 BDO[DIR="ltr"] { direction: ltr; unicode-bidi: bidi-override }/*定義BDO元素當其屬性為DIR="ltr"時的默認文本讀寫顯示順序*/
      49 BDO[DIR="rtl"] { direction: rtl; unicode-bidi: bidi-override }/*定義BDO元素當其屬性為DIR="rtl"時的默認文本讀寫顯示順序*/
      50 *[DIR="ltr"] { direction: ltr; unicode-bidi: embed }/*定義任何元素當其屬性為DIR="ltr"時的默認文本讀寫顯示順序*/
      51 *[DIR="rtl"] { direction: rtl; unicode-bidi: embed }/*定義任何元素當其屬性為DIR="rtl"時的默認文本讀寫顯示順序*/
      52 @media print { /*定義標題和列表默認的打印樣式*/
      53     h1 { page-break-before: always }
      54     h1, h2, h3,    h4, h5, h6 { page-break-after: avoid }
      55     ul, ol, dl { page-break-before: avoid }
      56 }
      瀏覽器默認樣式

              第二,用戶樣式表

             在一些新聞網站中,經常看到可以設置字體大小的快捷菜單,例如下圖就是搜狐新聞中的設置。

         

             這些是給一些有視覺障礙的人看的,反正我是沒用過,我也有視覺障礙,不過我是通過近視鏡來解決的。

             其實瀏覽器也有這樣的設置,例如chrome瀏覽器中,我們就可以設置字號和字體。

            

             用戶在這里設置了字體和字號之后,它們會覆蓋掉瀏覽器默認的樣式。

             第三,<link>引用的css文件

             引用css文件,大家應該都比較熟悉了。

             第四,<style>中編寫的樣式代碼

             <style>中編寫樣式也都比較熟悉。

             第五,<a style=’ ’>中編寫的樣式代碼

             標簽style屬性中編寫樣式,也都用過吧。

            

             后面這三種是咱們程序開發中比較常用的,這里就不多說了,不了解的朋友需要去補一補基礎知識了。

      3.層疊的規則

        由于樣式的來源不同,瀏覽器在加載樣式時,需要計算出最終的樣式值,這樣才能顯示出正確的界面效果——瀏覽器會通過疊加和覆蓋這兩種方式來生成最終的樣式值。

             下面是舉例說明:

         

             如上圖,不同來源的兩個樣式,第一個樣式設置了font-weight,第二個沒有,瀏覽器會把它疊加在一起,即瀏覽器會把各個零散的整合成一個整體。第一個樣式color:red,第二個樣式color:blue,瀏覽器會讓后者覆蓋前者,最終結果還是color:blue。

             覆蓋的默認規則是后者覆蓋前者,但是又一個特殊情況——!important

         

             如上圖。雖然color:blue是后來者,但是它沒有居上,因為前者color:red跟著!important。這就像得到一個尚方寶劍,有最高執行權,其他人統統讓路,否則佛擋殺佛。

      4.總結

        本文主要講解了css的5個來源,以及瀏覽器疊加樣式的過程和方法,這是學習css最基礎的知識。下一節將帶領大家一起看看瀏覽器默認樣式到底是什么樣子的,我們又能從其中學到些什么東西?其中有很多好玩的東東,敬請期待!

      ---------------------------------------------------------------

      本系列的目錄頁面:http://www.rzrgm.cn/wangfupeng1988/p/4325007.html

      -------------------------------------------------------------------------------------------------------------

      學習作者教程:《前端JS高級面試》《前端JS基礎面試題》《React.js模擬大眾點評webapp》《zepto設計與源碼分析》《json2.js源碼解讀

      也歡迎關注我的開源項目——wangEditor,簡潔易用的web富文本編輯器

      -------------------------------------------------------------------------------------------------------------

      posted @ 2015-02-06 20:24  王福朋  閱讀(20459)  評論(23)    收藏  舉報
      主站蜘蛛池模板: 亚洲中文字幕一区二区| 又大又粗又硬又爽黄毛少妇| 91亚洲国产成人精品性色| 亚洲一区二区三区久久受| 激情国产一区二区三区四| 国产成人午夜精品福利| 久久99精品久久久久久9| 亚洲婷婷综合色高清在线 | 国产成人精品1024免费下载| 色欲综合久久中文字幕网| 久久久久国色av免费观看性色| 毛片av在线尤物一区二区| 日韩精品 在线 国产 丝袜| 人妻一区二区三区三区| 欧美性猛交xxxx黑人| 国产精品黄色片| 99热久久这里只有精品| 亚洲国产精品午夜福利| 国产精品爽黄69天堂a| av新版天堂在线观看| 国产成人av三级在线观看| 无码人妻一区二区三区免费N鬼沢 亚洲国产精品自产在线播放 | 亚洲色大成网站WWW永久麻豆| 少妇厨房愉情理9仑片视频| 亚洲色大成网站www永久一区| 精品少妇无码一区二区三批| 国产一区二区三区色成人| 亚洲中文字幕成人综合网| 亚东县| 奉节县| 亚洲精品午夜精品| 亚洲精品一区二区妖精| av中文无码乱人伦在线观看| 一区二区三区四区五区自拍| 亚洲第一区二区三区av| 亚洲精品久荜中文字幕| 国产精品视频免费一区二区三区 | 色成年激情久久综合国产| 精品国产一区av天美传媒| 热久在线免费观看视频| 亚洲一级特黄大片在线播放|