<font id="zqva1"></font>
<rt id="zqva1"></rt>
  • <tt id="zqva1"></tt>
    <cite id="zqva1"></cite>

    <cite id="zqva1"><noscript id="zqva1"></noscript></cite>
      <rp id="zqva1"><meter id="zqva1"></meter></rp>

        <cite id="zqva1"></cite>
          <b id="zqva1"></b>
          <rp id="zqva1"></rp>
          <cite id="zqva1"></cite>

          <rt id="zqva1"></rt>

        1. <rp id="zqva1"></rp>

          css實現自適應正方形的多種方法實現

          時間:?2018-01-03閱讀:?1706標簽:?繪制

          方案一:CSS3 vw 單位

          CSS3 中新增了一組相對于可視區域百分比的長度單位vw、vh、vmin、vmax。其中vw是相對于視口寬度百分比的單位,1vw = 1% viewport width,vh是相對于視口高度百分比的單位,1vh = 1% viewport height;vmin是相對當前視口寬高中較小的一個的百分比單位,同理 vmax是相對當前視口寬高中較大的一個的百分比單位。

          #square{  
              width:30%;  
              height:30vw;  
              background:red;  
          }

          類比:純CSS實現自適應瀏覽器高度的正方形只需要設置width的單位為vh即可。

          優點:簡潔方便。

          缺點:瀏覽器兼容不好。


          方案二:設置垂直方向的padding撐開容器

          由于margin, padding 的百分比數值是相對父元素的寬度計算的,只需將元素垂直方向的一個padding值設定為與width相同的百分比就可以制作出自適應正方形了。

          但要注意,僅僅設置padding-bottom是不夠的,若向容器添加內容,內容會占據一定高度,為了解決這個問題,需要設置height: 0。

          #square{  
              width:30%;  
              height:0;  
              padding-bottom: 30%;  
              background:red;  
          }

          優點:簡潔明了,且兼容性好。

          缺點:會導致在元素上設置的max-width屬性失效(max-height不收縮)。


          方案三:利用偽元素的 margin(padding)-top 撐開容器

          max-width屬性失效的原因是:max-width屬性只限制于width,也就是只會對元素的 content width起作用。

          解決方法是:用一個子元素撐開content部分的高度,從而使max-height屬性生效。

          首先需要設置偽元素,其內容為空,margin-top設置為100%。

          但要注意,若使用垂直方向上的margin撐開父元素,僅僅設置偽元素是不夠的,這涉及到margin collapse外邊距合并的概念,由于容器與偽元素在垂直方向發生了外邊距合并,所以撐開父元素高度并沒有出現,解決方法是在父元素上觸發BFC:設置overflow:hidden。

          #square{    
              width:30%;    
              background:red;  
              overflow:hidden;    
              max-width:200px;  
          }    
          #square:after{    
              content: '';    
              display: block;    
              margin-top:100%;    
          }

          若使用垂直方向上的padding撐開父元素,則不需要觸發BFC。 

          #square{  
              width:30%;  
              background:red;  
              max-width:200px;  
          }  
          #square:after{  
              content: '';  
              display: block;  
              padding-top:100%;  
          }


           來源:http://blog.csdn.net/zhouziyu2011/article/details/70159209


          吐血推薦

          1.站長廣告聯盟: 整理了目前主流的廣告聯盟平臺,如果你有流量,可以作為參考選擇適合你的平臺點擊進入...

          2.休閑娛樂: 直播/交友    優惠券領取   網頁游戲   H5游戲

          鏈接: http://www.modern-decoration.com.cn/article/detial/308

          fly63.com版權所有,內容以共享、參考、研究為目的,不存在任何商業目的。其版權屬原作者所有,如有侵權,請與小編聯系!情況屬實本人將予以刪除!

          文章投稿關于web前端網站點搜索站長推薦網站地圖站長QQ:522607023

          小程序專欄: 土味情話心理測試腦筋急轉彎幽默笑話段子句子語錄成語大全

          国产精品高清视频免费 - 视频 - 在线观看 - 影视资讯 - 唯爱网