運用CSS進行靈活的列布局

2022-07-21 00:42:22 字數 1559 閱讀 7018

一、開篇

在asp.net中,每個頁面重複的部分可以寫在masterpage中去(比如上圖中header、footer以及body的外框)。

那麼body裡面的列布局到底寫到masterpage裡面還是在每個頁面都寫一次呢?

在我看來有三種方式:

1、在masterpage中只寫body的外框,body裡面的列布局由每個頁面自己來寫,這種方法看起來很靈活(每個頁面的寬度都可以隨便定),但是對於以後的修改來說是非常不方便的;

2、把body中的列的布局方式寫到masterpage中去,這樣的話使用這個masterpage的列數以及列寬就已經被定死了。但是使用這個masterpage只能實現一種列布局,**看起來可能會單調;

3、如果要在乙個站點中實現多中列布局,那麼就將每種列寬布局各寫乙個masterpage,頁面想要哪種布局就是用哪個masterpage。但是每種masterpage也有公共的部分,這個可以再巢狀一層masterpage;

似乎剛才分析的最後這一種方法已經很好了,但是我認為這種方法必須得新增很多masterpage(每種列布局都需要乙個),這樣的話,某個頁面我想換一種列布局則會有些不方便;最理想的方法莫過於用乙個masterpage實現多種列布局了!我現在就來介紹一下這個方法。

二、方案

在masterpage的body中放置3個列(div),id分別為sideleft、main、sideright,分別代表左邊的列,中間的列和右邊的列。在這三個列的div內放置contentplaceholder,讓具體頁面來填充。master檔案中這部分的**如下:

在具體頁面裡,如果不想讓這一列顯示,則不要在頁面相應的

中寫內容,如果想讓這一列顯示,則在相應的

中首先新增一層div,而且需要設定此div的class為inner(其他名字也可)。關鍵的地方就在於設定css了,css如下

如果中沒有寫內容,則masterpage中這個列的div實際上為空,所以這一列就自動隱藏起來了。如果在左邊列的

中寫的有

,那麼#leftside .inner則會起作用,使得左邊立刻有了200px的寬度,右邊這一列的原理也一樣。中間這一列是在任何布局的情況下都必須有的(所以只需要一列布局的時候,就選這一列了),而且總是佔據了除了左邊列和右邊列(如果有的話)剩下的寬度。

注:#main中的高度如果不設定為1%,那麼在ie下就不能正確顯示。

這種方法的布局也有不足的地方,比如說布局的列最多只能有

3列;在某些情況下看來,

class

為inner

的這個div

似乎有些

多餘。但是總的來說,這種方法基本可以滿足乙個站點的所有列布局需求,還是值得在實際中使用的。

CSS 多列布局 三列布局

下面的 演示了3列布局的用法。html head title 三列布局 styletype text css body column1of3,column2of3,column3of3 body h1style color 706fd3 軟體開發,成就夢想 h2 ahref 學程式設計,上利永貞網 ...

css進行布局

在head元素內,link後面新增以下 盒狀模型是指,盒子是有元素內容 padding border margin構成的,將元素與周圍的元素隔開。預設情況下,css的width指的是元素的內容區域,而瀏覽器顯示的寬度則是內容寬度 padding border的寬度之和。將box sizing bor...

CSS兩列布局

在布局中,我們常常需要出現兩列的情況,其中左邊一列固定寬度,右邊一列隨著瀏覽器寬度變化而變化。如何實現呢?傳統的方法是利用float將左部分浮動起來,再通過margin將右部分右移,得到所需效果,如下 css 如下 color blue color yellow background color b...