css調適型配置之“聖杯雙飛翼”,css自適應聖杯飛翼

來源:互聯網
上載者:User

css調適型配置之“聖杯雙飛翼”,css自適應聖杯飛翼

  首先,這個這麼扯淡又裝逼的名字不知道是誰起的,大意就是說:中間的內容隨著瀏覽器寬度的不同,進行寬度自適應操作,而兩邊的內容固定寬度。

  來,上個代碼示範一下:

  

 1     <style> 2             *{ 3                 margin: 0; 4                 padding: 0; 5             } 6             .wrap { 7                 background-color: #FBD570; 8                 overflow: hidden; 9             }10             .left {11                 float: left;12                 width: 100px;13                 background: #00f;14                 height: 180px;15             }16             .right {17                 float: right;18                 width: 150px;19                 background: #0f0;20                 height: 200px;21             }22             .center {23                 background: #B373DA;24                 height: 150px;25                 margin-left: 100px;26                 margin-right: 150px;27             }28         </style>29     </head>30     <body>31         <div class="wrap">32             <div class="center">center,可以自適應瀏覽器寬度,高度可固定也可以由內容撐開。</div>33             <div class="left">left,寬度固定,高度可固定也可以由內容撐開</div>34             <div class="right">right,寬度固定,高度可固定也可以由內容撐開</div>35         </div>36     </body>

  然後出來的效果是這樣的:

  

  這個大塊頭的中間部分確實可以隨著瀏覽視窗寬度的改變而改變:

  

  但是,臥槽,很獵奇啊有木有?!中間的主體叉在兩側內容上方是什麼鬼?我們預期的是讓它們在一個水平線上。將代碼改為如下這樣:

  

 1 <style> 2             *{ 3                 margin: 0; 4                 padding: 0; 5             } 6             .wrap { 7                 background-color: #FBD570; 8                 padding: 0 150px 0 100px; 9                 overflow: hidden;10             }11             .left {12                 float: left;13                 width: 100px;14                 background: #00f;15                 height: 180px;16                   margin-left: -100%;17                   position: relative;18                   left:-100px;19             }20             .right {21                 float: right;22                 width: 150px;23                 background: #0f0;24                 height: 200px;25                 margin-left: -150px;26                 position: relative;27                   right:-150px;28             }29             .center {30                 background: #B373DA;31                 height: 150px;32                 float: left;33                 width: 100%;34             }35         </style>36     </head>37     <body>38         <div class="wrap">39             <div class="center">center,可以自適應瀏覽器寬度,高度可固定也可以由內容撐開。</div>40             <div class="left">left,寬度固定,高度可固定也可以由內容撐開</div>41             <div class="right">right,寬度固定,高度可固定也可以由內容撐開</div>42         </div>43     </body>

  思路如下:.讓左邊的盒子上去,需要設定其左邊距為負的中間盒子的寬度,也就是.left {margin-left:-100%;}。這樣左盒子才可以往最左邊移動。而讓右邊的盒子上去

需要設定其左邊距為負的自己的寬度,也就是.right {margin-left:-150px;}。這樣右盒子才可以在一行的最右邊顯示出自己。

  

  你是不是以為搞定了?其實並沒有,因為中間主體部分的“center,可以”這幾個字被擋住了,也就是說新來的這兩個所謂“飛翼”把主體的內容擋住了。所以我們還需要把這兩個小破翼給挪出去,但是又不能挪到螢幕外邊,因為這樣我們就看不到了。

  所以呢,我們做如下操作,利用父級元素設定左右內邊距的值,把父級的三個子盒子往中間擠。即.wrap{ padding: 0 150px 0 100px;}。這樣就給這兩個小破翼騰出了一點空間。

  

  最後,把左右兩個小破翼分別“抽出來”,即

  

.left{ position: relative; left: -100px;}.right{position: relative;right: -150px;}

  

  這樣,這個什麼什麼雙飛茶杯布局就完成了。

  最後說一下,這個名字真的太裝逼了,有點受不了,不知道是誰想出來的 。

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.