乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      理解與應(yīng)用css中的display屬性

       instl 2019-06-13

        display屬性是我們在前端開發(fā)中常常使用的一個屬性,其中,最常見的有:

      • none
      • block
      • inline
      • inline-block
      • inherit

        下面,我將按照順序?qū)⑸鲜鰩追N屬性做一個完整的講解。

      第一部分:display:none

        none這個值表示此元素將不被顯示。比如,當我們在瀏覽網(wǎng)頁時,如果看到了某個煩人的廣告遮擋了我們的實現(xiàn),更為可氣的是,它還沒有關(guān)閉的選項,這時(以chrome為例),我們就可以按下F12,打開開發(fā)者工具,點擊element,然后使用左上角的選擇工具選中想要刪除的廣告,可以看到element中會有高亮的一行或幾行代碼,右鍵,點擊Add Attribute,然后輸入:style="display:none",這時就可以發(fā)現(xiàn)廣告不見啦! 當然display:none的用法絕不是專門用于這里的,它還可以用于二級下拉菜單的制作中將二級下拉菜單先設(shè)置位display:none;,當鼠標滑過一級菜單時,再顯示出來(詳見《如何實現(xiàn)導(dǎo)航菜單中的二級下拉菜單》)。還可以用于登陸模態(tài)框的制作等等。

       

      第二部分:display:block

        使用了display:block;之后, 此元素將顯示為塊級元素,此元素前后會帶有換行符。我們先來回顧以下塊級元素是什么,他有什么特點。

        既然要區(qū)分塊級元素和行內(nèi)元素,就得先說說標準文檔流了。標準文檔流:簡稱標準流,指的是在不使用其他的與排列和定位相關(guān)的css規(guī)則時,各種元素的排列規(guī)則。于是,我們將“各種元素”分為塊級元素和行內(nèi)元素。(注:實際上還有空元素,如<br>用于換行,<hr>為一條水平線,這里對空元素不做過多討論)

        塊級元素特點:

      • 總是以一個塊的形式表現(xiàn)出來,占領(lǐng)一整行。若干同級塊元素會從上之下依次排列(使用float屬性除外)。
      • 可以設(shè)置高度、寬度、各個方向外補丁(margin)以及各個方向的內(nèi)補?。╬adding)。
      • 當寬度(width)缺省時,它的寬度時其容器的100%,除非我們給它設(shè)定了固定的寬度。
      • 塊級元素中可以容納其他塊級元素或行內(nèi)元素。
      • 常見的塊級元素由<p><div><h1><li>等等。
      • 塊級元素的display屬性值默認為block。

        行內(nèi)元素特點:

      • 它不會單獨占據(jù)一整行,而是只占領(lǐng)自身的寬度和高度所在的空間。若干同級行內(nèi)元素會從左到右(即某個行內(nèi)元素可以和其他行內(nèi)元素共處一行),從上到下依次排列。
      • 行內(nèi)元素不可以設(shè)置高度、寬度,其高度一般由其字體的大小來決定,其寬度由內(nèi)容的長度控制。
      • 行內(nèi)元素只能設(shè)置左右的margin值和左右的padding值,而不能設(shè)置上下的margin值和上下的padding值。因此我們可以通過設(shè)置左右的padding值來改變行內(nèi)元素的寬度。
      • 常見的行內(nèi)元素由<a><em><img>等等。
      • 行內(nèi)元素一般不可以包含塊級元素。
      • 塊級元素的display屬性值默認為inline。

        ok!簡單回顧了塊級元素和行內(nèi)元素之后,我們就可以進行下一步講解了。

        通過對一個行內(nèi)元素設(shè)置display: block;可以將行內(nèi)元素設(shè)置為塊級元素,進而設(shè)置它的寬高和上下左右的padding和margin。 

      應(yīng)用:

             如果我們經(jīng)常會制作導(dǎo)航欄,這時就要使用ul li 和a組合的方式,但是<a>是行內(nèi)元素,我們無法設(shè)置它的寬和高,這時,就可以在<a>的樣式表中,將之設(shè)置為display:block。這樣就可以設(shè)置它的寬和高,以及上下左右的margin和padding以達到我們想要的效果了。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
          <style>
              *{padding: 0;margin:0;list-style: none;}
              ul li{float: left;}
              a{display:block;width: 30px;height: 30px;background: yellow;margin: 5px; text-decoration: none;text-align: center;line-height: 30px;}
          </style>
      </head>
      <body>
          <ul>
              <li><a href="">1</a></li>
              <li><a href="">2</a></li>
              <li><a href="">3</a></li>
              <li><a href="">4</a></li>
              <li><a href="">5</a></li>
          </ul>
      </body>
      </html>

        效果如下:

       

      第三部分:display:inline

        此元素會被顯示為內(nèi)聯(lián)元素,元素前后沒有換行符。在第二部分中,我們介紹了行內(nèi)元素和塊級元素。顯然,display:inline的作用即可以將一個塊級元素轉(zhuǎn)換成行內(nèi)元素,那么這個塊級元素將不能再設(shè)置寬和高以及上下方向的margin和padding。

        

      第四部分:display:inline-block

        display:inline-block是什么呢?大家對這個屬性一定是不陌生的。根據(jù)名字,實際上我們就可以才出來它是結(jié)合了inline和block的特性于一身。即設(shè)置了inline-block屬性的元素既具有block元素可以設(shè)置width和height屬性的特性,又保持了inline元素不換行的特性。

        舉例說明,我們之前在做橫向?qū)Ш讲藛蔚臅r候,一般是用ul li a組合,然后將li設(shè)置為float,這樣就可以得到橫向的導(dǎo)航標簽了。而現(xiàn)在我們可以通過li和display:inline-block;來實現(xiàn)。

        代碼如下:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
          <style>
              ul,li,a,*{padding:0; margin:0;list-style: none;text-decoration: none;}
              li{display: inline-block;border: thin solid red;}
          </style>
      </head>
      <body>
          <ul>
              <li><a href="">1</a></li>
              <li><a href="">2</a></li>
              <li><a href="">3</a></li>
              <li><a href="">4</a></li>
              <li><a href="">5</a></li>
          </ul>
      </body>
      </html>

        效果圖如下:

         確實實現(xiàn)了橫向的排列,實際上,也可以設(shè)置寬和高,大家可以自己嘗試。但是,很明顯有一個問題---我將padding和margin的值都設(shè)置為0,為什么他們之間還會有距離呢?實際上,這是inline元素自身出現(xiàn)的問題,而inline-block結(jié)合了inline和block屬性,當然也就存在這個問題了。這些空隙是空白符,在瀏覽器中,空白符是不會被瀏覽器忽略的,多個連續(xù)的空白符瀏覽器會自動將其合并成一個。我們編寫代碼時寫的空格,換行都會產(chǎn)生空白符。所以自然而然的兩個元素之間會有空白符,如果將上述例子中的a標簽寫成一行,空白符消失,菜單之間也就緊湊起來了。

        解決方法:我們要明白空白符歸根結(jié)底是一個字符,只要我們將ul中的字符的大小設(shè)置位0,那么空白符也就不會存在了,但是這是a的字體大小也會繼承ul的字體大小,那么就不見了,該怎么辦,只需要將a中再設(shè)置一個字體不為0的大小覆蓋

      即可。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
          <style>
             <strong> ul{font-size: 0;}</strong>
              ul,li,a,*{padding:0; margin:0;list-style: none;text-decoration: none;}
              li{display: inline-block;border: thin solid red;<strong>font-size: 15px;</strong>}
          </style>
      </head>
      <body>
          <ul>
              <li><a href="">1</a></li>
              <li><a href="">2</a></li>
              <li><a href="">3</a></li>
              <li><a href="">4</a></li>
              <li><a href="">5</a></li>
          </ul>
      </body>
      </html>

        最終得到的效果圖如下:

       

        

        我們還可以通過inline-block完成一個常見的三列布局。

        html代碼如下:

      1
      2
      3
      4
      5
      6
      7
      <div id="header">我是header</div>
      <div id="content">
          <div id="left">我是left</div>
          <div id="center">我是center</div>
          <div id="right">我是right</div>
      </div>
      <div id="footer">我是footer</div>

        css代碼如下:

      1
      2
      3
      4
      #header,#footer{height: 50px;width:800px;margin:0 auto;background: #ccc;text-align: center;line-height: 50px;}
      #content{width:800px;height: 500px;margin: 0 auto;background: #aaa;<strong>font-size: 0;</strong>}//解決inline元素產(chǎn)生的空白符問題
      #left,#right{display: inline-block;width: 200px;height: 500px;background: #fadaac;font-size: 30px;}
      #center{display: inline-block;width: 400px;height: 500px;background: #dadada;<strong>font-size: 30px;</strong>}//這里一定要重新設(shè)置font-size。

        最終效果圖如下:

      第五部分:display:inherit

        規(guī)定應(yīng)該從父元素繼承 display 屬性的值。舉例如下:

      html代碼如下:

      1
      2
      3
      4
      <div id="parent">
          <div id="first_son"></div>
          <div id="second_son"></div>
      </div>  

      css代碼如下:

      1
      2
      3
      #parent{ <strong>display: inline-block;</strong> font-size: 0; background: #cadafa;width: 400px;height: 300px;}
      #first_son{<strong>display: inherit;</strong> background: #eaedac;width: 200px;height: 100px;}
      #second_son{<strong>display: inherit;</strong> background: #da5dd8;width: 200px;height: 100px;}

      效果圖如下:

        

        即我們先設(shè)置了id為parent的元素的display屬性值為inline-block,然后將其子元素的display屬性值設(shè)置為inherit(繼承),于是,子div的display屬性值繼承了父元素的display屬性值為inline-block。(注意,我在id為parent的div元素中設(shè)置了font-size:0px;這樣可以有效解決由inline元素帶來的空白符問題。)

       

       

       

       

        

       

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多