首頁  >  文章  >  web前端  >  CSS實現等分佈局的4種方式

CSS實現等分佈局的4種方式

巴扎黑
巴扎黑原創
2017-06-28 11:00:132397瀏覽

這篇文章主要為大家詳細介紹了CSS實作等分佈局的4種方式,等分佈局是指子元素平均分配父元素寬度的佈局方式,本文將介紹實現等分佈局的4種方式,有興趣的夥伴們可以參考一下

等分佈局是指子元素平均分配父元素寬度的佈局方式,本文將介紹實現等分佈局的4種方式

#思路一: float

缺點:結構與樣式存在耦合性,IE7-瀏覽器下對寬度百分比取值存在四捨五入的誤差

##【 1】float + padding + background-clip

使用padding來實現子元素之間的間距,使用background-clip使子元素padding部分不顯示背景


CSS Code複製內容到剪貼簿

  1.   

      
  2. #   #  #XML/HTML Code複製內容到剪貼簿

  3. #<p class="parentWrap">

  4. ######################################## # ############    ###<#######p### ###class###=###"parent"### ###style## #=###"###background-color###: lightgrey;"######>###  ############        ###<lt;####        ###<lt;####<lt;### ###p### ###class###=###"child"### ###style###=###"background-color: lightblue;"#######> ;###1######  ############        ####<#####        ####<##### ##p### ###class###=###"child"### ###style###=###"background-color: lightgreen;"######> ###2######  ####
  5.         <p class="child" style=##class#"child" style=##class#=##"child" style="background-color: lightsalmon;"

  6. >
  7. 3

    p>          <p class="child" style=

    #=
  8. "child"
  9.  

    style="background-color: pink;">4

  10. p
  11. >         #   #        #  #    p

  12. >

  13.        

##p>  

#  


#【2】float + margin + calc

  1. 使用margin實作子元素之間的間距,使用calc ()函數計算子元素的寬度

  2. CSS Code

  3. 複製內容到剪貼簿
  4.   ##  

  5. XML/HTML Code複製內容到剪貼簿 <p class

    =
  6. "parentWrap"
  7. >  #    <p class="parent" style="background-color: lightgrey;" >  

    ######        ###<######p### ###class###=###" child"### ###style###=###"background-color: lightblue;"######>###1######  ####
  8.         <p class="child" style=##class#"child" style=##class#=##"child" style="background-color: lightgreen;"

  9. >
  10. 2

    p>          <p class="child" style=

    #=
  11. "child"
  12.  

    style="background-color: lightsalmon;">3p>          <p class

    =
  13. "child"
  14.  

    style#= "background-color: pink;">4

  15. p
  16. >                p

  17. #>

  18.        

##


p

>

      
  1. #  
  2. #【3】float + margin + (fix)

  3. #使用margin實作子元素之間的間距,透過增加結構來實現相容
  4. #CSS Code

  5. 複製內容到剪貼簿
  6.   ####### #######  #########################XML/HTML Code######複製內容到剪貼簿##### ##############<######p### ###class###=###"parentWrap"######>## #  ############    ###<######p### ###class###=###"parent"### ###style# ##=###"background-color: lightgrey;"######>###  #####

  7. ##        

    #p #="child"style#="背景顏色:藍色;">  

  8. #           應

    #p #class ##="in" style="背景顏色:淺藍色;">1p>  

  9. #        
  10. ##p>

  11.         
  12. #p #class="child" 樣式="背景顏色:綠色;">  
  13.             
  14. #p#o##p #class="in" style="背景顏色:淺綠色;"> ;2p>  

    #        
  15. #p#>  

            
  16. p class#= "child" style="背景顏色:橘色;">  

    #            ##"p ##class

    ="in" style="背景顏色:淺鮭魚色;"##>3 p>  ###p

    >#  
  17.         <p 

    #class
  18. =
  19. "child"

     style="背景顏色:紅;"##>              < #class

    =
  20. "in"
  21.  

    style#= "背景顏色:粉紅色;"##>4p>           #p# >                  

  22.     < /## #

    p
  23. >

        

####### ##################思路二:內嵌區塊######

缺點:需要設定垂直對齊方式vertical-align,則需要處理換行符號解析成空格的間隙問題。 IE7-瀏覽器不支援為區塊級元素設定inline-block屬性,相容程式碼是display:inline;zoom:1;

【1】inline-block + padding + background- clip


CSS Code複製內容到剪貼簿

  1.   

    ######  #########################XML/HTML Code# #####複製內容到剪貼簿##################<######p### ###class###=## #"parentWrap"######>###  #############    ###<######p### ###class###= ###"parent"### ###style###=###"background-color: lightgrey;"######>###  ############ #        ###<######p### ###class###=###"child"### ###style###=###"background-color: lightblue ;"######>###1######  ########################################################################################## ###<######p### ###class###=###"child"### ###style###=###"background-color: lightgreen; 「######>###2######  ############        ######        # ##<######p### ###class###=###"child"### ###style###=###"background-color: lightsalmon;" ######>###3######  ###
  2. ##        

    #p #="child"style#="背景顏色:粉紅色;">4p>                 或    

  3. p

    >#       

    ##
  4. p

    >    


  1. #【2】inline-block + margin + calc
  2. CSS程式碼

    複製內容到剪貼簿
  3.   
  4. body,p{
  5. margin

    : 0;}   .parentWrap{   

  6. #    溢位

    隱藏
  7. ;   
  8. }   
  9. .parent{   
  10.     margin-right: -20px;   

  11.     字體大小:0;   

  12. }   
  13. .child{   

  14.     
  15. 顯示

    ##    顯示#: 

    內嵌
  16. -
  17. 區塊

    ;   ##    vertical-align

  18. top
  19. ;   

    ##    字體大小

    16px
  20. ;   
  21.     
  22. 100px
  23. ;   
  24. ##    
  25. width
: calc(25% - 

20px
);   

    margin-right

20px
    ;   
  1. }   樣式>     

  2. XML/HTML 程式碼 將內容複製到剪貼簿p

     
  3. class
  4. =

    "parentWrap"

  5. >      <p class="父級" 樣式=

    "背景顏色:淺灰色;"######>###  ############        ###<#######<#####        ###<#######<### # ##p### ###class##=###"child"### ###style###=###"背景顏色:淺藍色;"######> ; ###1######  ############        ###<#######p# ## ###class###=###"child"### ###style###=###"背景顏色:淺綠色;"######> ###2# #####  ####
  6. ##        

    <#p #="child"style#=“背景顏色:淺鮭魚色;”>3#p>  

  7.         

    <p class="child" style="背景顏色: 粉紅色;">4p>                   

  8. > ##p>       

  9. ###p>  

      
  10. ##【3】 inline-block + margin + (fix)

##CSS程式碼

#複製內容到剪貼簿

<風格>   

  1. body,p{

    margin
  2. : 0;}   
  3. .parentWrap{   

  4. #    

    溢位
  5. 隱藏

    ;   }   

  6. .parent{   

  7.     

    margin-right
  8. : -
  9. 20px

    ;       

    字體大小
  10. :0;   
  11. }   

  12. .child{   

  13.     

    顯示
  14. ##    顯示#: 內嵌-區塊;   

  15. ##    

    vertical-aligntop;   

  16. ##    
  17. 字體大小

    16px;   

    ##    
  18. 寬度
  19. :25%;   

    }   
  20. .in{   
  21.     
  22. margin-right
  23. 20px;   

        
  24. 100px;   

    }   
  25.   
  26.   


XML/HTML 程式碼

將內容複製到剪貼簿板

    <
  1. p class="parentWrap"

  2. # #>
  3.   

        <pclass#="父級" 樣式="背景顏色:淺灰色;"

    ###>###  ############        ####<######        ####<### ###p### ###class##=###"child"### ###style###=###"背景顏色:藍色;"######> ; ###  ####
  4. ##            

    <p class="in" #="in" #= 「背景顏色:淺藍;」>

    1
  5. p>  

            #

    p>  ##p ## class="child" style=

    "背景顏色:綠色;"
  6. >

                  <p class#"in" ##stylestyle#class#"in"##style#class

    #"in"
  7. ##style
  8. #class"in"##style#class

    "in"
  9. ##style
  10. ##class"in"##style#class"in"##style##class"in"##style

    #class
  11. 'in"

    "背景顏色:淺綠色;">2#p >          p>  

  12. #      ##p class="child" style

    =
  13. "背景顏色: 橘色;"
  14. >              

  15. p class= "in"

    # class
  16. =

    #="背景顏色:淺鮭魚色;"##>3#p>          #p>

  17.         ##p

     class#="child" style=

    "背景顏色:紅色;"
  18. >

                  

    p
  19.  
  20. class

    ="in" class=

    ##=
  21. "背景顏色:粉紅色;"
  22. >

    4
  23. p

    >

    #  

            p

    >

                 

    p######>###       ##### ################p#######>## #  ############  ####### ################想法三:表格########缺點:元素設定為表格後,內容撐開寬度。 #######【1】table + margin負值## #################

    CSS Code複製內容到剪貼簿

    1. #   

        

      1. ##XML/HTML Code複製內容到剪貼簿##<

        p
      2.  
      3. class

        ="parentWrap">      < p class=

        "parent"
      4.  
      5. style

        ="background-color: lightgrey;"#> ;          <p #class="child" 

      6. #'' #style="background-color: blue;">              <p class

        =
      7. "in"
      8.  

        style="background-color: lightblue;">1p>           

        #> #p
      9. >;

                   #"child" 

        style
      10. =
      11. "background-color: green;"

        >        ##<p class="in" style

        =###"background-color: lightgreen;" ######>###2######  ###########        ## ####  ############        ####<#######p###     #####<####### ##class###=###"child"### ###style###=###"background-color: orange;"######>###  ###

      12.             <p class##"in"#stylestyle ##"background-color: lightsalmon;">3p>  

      13.         
      14. p>  
      15.    |
      16. ##p

         class="child" style="background-color: red;" #>              

        <
      17. p

         class="in" style="background-color: pink;">4#p >          

      18. p

        #>         p

      19. #>
      20.        

        #

      21. < #p>  

      22.   



      1. #【2】table + 兄弟選擇器
      2. #CSS Code

        ##複製內容到剪貼簿
      3.     

        ###################################################################################### #####XML/HTML Code######複製內容到剪貼簿##################<######p### ###class###=###"parent"### ###style###=###"background-color: lightgrey;"######>###  ### #########    ###<######p### ###class###=###"child"### ###style###=# ##"background-color: blue;"######>###  ####
      4. ##        

        class="in" style#= 「背景顏色:淺藍;」>1p>  

      5.     

        p>  

      6.     

        p class="child" style="背景顏色:綠色;">  

      7. ##        

        #p #="in"style="背景顏色:淺綠色;">2p >  

      8.     

        p#>  

      9.     

        ##     pclass="child" style=

        "背景顏色: 橘色;"
      10. >

        #        ##p #class= "in" styleclass##= "in" style="背景顏色:淺鮭魚色;"

        ##>
      11. 3
      12. #p>  

      13.     
      14. p#>     #p class=

        "child"
      15.  
      16. style

        ="背景顏色:紅色;">          p class="in" style##="in"

        #=
      17. "背景顏色:粉紅色;"
      18. >4p>

        ##  
      19. #    p>

                         
      20. p

        >
      21.        

        


      1. #思路四:flex

      2. #CSS程式碼
      3. 複製內容到剪貼簿

      4. #   

      5. body,p{

        margin
      6. : 0;}   
      7. .parent{   

      8. #    
      9. 顯示

        :伸縮;   

      10. }   

        #########.child{   ############    flex:1;   ############    ###高###:###100px###;   ############}   ############.child + .child{   #######################################################.
      11. ##    

        margin-left20px;   

      12. }   

      13. 樣式>   

      14.   


      XML/HTML 程式碼 將內容複製到剪貼簿

      1. p class="parent" style="背景顏色:淺灰色;">  

      2.     

        #p  class="child" style="背景顏色:淺藍色;"> 1p>  

      3.     

        ## p class="child" style="背景顏色:淺綠色;">2p>  

      4. #    

        ##p  class="child" style="背景顏色:淺鮭魚色;"> 3 p>  

      5.     
      6. p ##class="child" style="背景顏色:粉紅色;">4 p >                   
      7. #

        #  

      8. # # 以上就是本文的全部內容,希望對大家的學習有所幫助。 #本文連結:http://www.cnblogs.com/xiaohuochai/p/5456695.html

      以上是CSS實現等分佈局的4種方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn