CSSS實現右側定寬左側自適應

2021-07-06 07:31:40 字數 1460 閱讀 1674

csss實現右側固定寬度,左側自適應,或者左惻固定寬度右側自適應

首先,html結構如下:

注意,html中必須使用div標籤,不要妄圖使用p標籤來達到目的。

因為div有個預設屬性,即如果不設定寬度,那他會自動填滿他的父標籤的寬度。

.clearfix :after

.container

/* content在left之上,left浮動,content不浮動*/

.left

.content

這裡left設定了寬度並浮動,content沒有設定寬度。假如content

預設的寬度為100%,那麼它設定了margin後,它的寬度就變成了100%-300,此時content發現自己的寬度可以與left擠在同一行了,於是他就上來了。而寬度100%是相對於他的父標籤來的,如果我們改變了他父標籤的寬度,那content的寬度也會隨著改變。比如我們把瀏覽器視窗縮小,那container的寬度就會變小,而content的寬度也就變小,但他的實際寬度100%-310始終是不會變的。

這個方法實現起來是相當不錯的,只要我們清除浮動,那永遠不會造成底下的footer錯位。

但是這個方法有乙個限制,html中left必須在content之前!如果將left放在content之後,那麼left便會跑到下面去。

那如果某種情況下要求left在content之後呢?有下面的兩種方法。

.left 

.content

但是這種情況下left變成了絕對主義分子,它是脫離文件流的。如果它的高度高於父元素的高度,那它並不能撐開父元素的高度,也就是說會下下面的footer元素錯位。

自適應寬度

以下是右側定寬,左側自適應。

.left

.content

.contentb

給content設定了100%,同時向左偏移300px,這樣一來,content裡的內容也跟著偏移了300px,導致被遮住了,所以要把它重新擠出來。所以需要用乙個額外的div將內容包裹起來。同時給其乙個寬度,設定,margin-left:300px;這時,真正的'content'就變成了contentb,它的寬度跟以前的content一樣。不過這裡要注意給container設定overflow:hidden.

將container設為  display:table 並指定寬度 100%,然後把content 和left設定為display:table-cell;然後給left指定乙個寬度,這時content便為自適應的了。

但是ie7不支援該方法。

如果不考慮ie7可以使用第4種方法,如果不在意content和left的順序,則使用第一種方法,否則使用第3種方法。

html css實現左側定寬,右側自適應的布局

實現一側定寬,一側自適應的布局的方法a b a 利用左側元素浮動,或者絕對定位的方式使其脫離常規文件流 1 利用float和margin來實現 csshtml 張藝興,努力,努力,再努力!努力,努力,再努力!不知道幹什麼,我先乾好自己現在手頭的工作!瀏覽器 591 x 806 效果圖 2 利用flo...

css頁面布局之左側定寬,右側自適應

二列布局的特徵是側欄固定寬度,主欄自適應寬度。三列布局的特徵是兩側兩列固定寬度,中間列自適應寬度。之所以將二列布局和三列布局寫在一起,是因為二列布局可以看做去掉乙個側欄的三列布局,其布局的思想有異曲同工之妙。對於傳統的實現方法,主要討論上圖中前三種布局,經典的帶有側欄的二欄布局以及帶有左右側欄的三欄...

左側固定 右側自適應

左側浮動,右側margin left值為左側寬即可。由於左側浮動,左側盒子脫標,右側仍在標準文件流,右側盒子寬度是剩下的寬度,效果為右側自適應。右側內容可居中,常規用法即可。需注意的是左側浮動,右側不能繼續浮動。如果兩邊盒子都浮動,由於右側盒子寬度不固定,預設為內容撐開寬度。若浮動,極有可能在第二排...