五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > 彈性流體布局

彈性流體布局

文章來源:365jz.com     點(diǎn)擊數(shù):200    更新時(shí)間:2009-09-13 10:44   參與評(píng)論


 原創(chuàng):冰極峰    轉(zhuǎn)載請(qǐng)注明出處     時(shí)間:2009年5月10日 0:12:03


藍(lán)色論壇討論貼:http://bbs.blueidea.com/thread-2927057-1-1.html

在我的另一篇文章《彈性+固寬布局》中,我介紹了彈性加最小固定寬度的一種布局方案,現(xiàn)在介紹另一種布局方案---彈性流體布局。

那種方案其實(shí)就是這種布局的變通應(yīng)用。彈性布局最大的優(yōu)點(diǎn)就是能充分利用屏幕空間。無論客戶端分辯率多大,都能自動(dòng)適應(yīng)寬度的變化。

圖一

看看上面這幅圖片,這是國(guó)外的一個(gè)網(wǎng)站,它本身是固定寬度布局的,我們的布局就以這幅圖為基礎(chǔ)來講解的。當(dāng)然,我不會(huì)全面介紹如何制作這個(gè)完整頁面,我只針對(duì)重點(diǎn)做一下講解。

其實(shí)做一個(gè)彈性布局,相對(duì)來說是比較簡(jiǎn)單的,但是這種布局雖簡(jiǎn)單,可是對(duì)于細(xì)節(jié)上的把握才是這種布局的精髓。彈性布局雖說有這么好的優(yōu)點(diǎn),可是卻有比較致命的缺陷:

1. 如果不對(duì)這種布局設(shè)置一個(gè)最小寬度,當(dāng)用戶縮小窗口到足夠小時(shí),會(huì)對(duì)布局產(chǎn)生致命的影響。造成嚴(yán)重影響布局錯(cuò)位。

2. 當(dāng)一個(gè)頁面彈性布局時(shí),對(duì)于里面的圖片會(huì)產(chǎn)生巨大的影響。因?yàn)榈侥壳盀橹?,還沒有解決圖片隨百分比縮放的問題。

所以這篇文章對(duì)于布局的講解可能還相對(duì)少些,而更多的是解決上面的兩個(gè)問題,我相信只要解決了上面的兩個(gè)問題,這種布局相對(duì)來說就容易多了。

 

一、解決最小寬度

 

一般彈性布局都是利用百分比來設(shè)置一個(gè)容器的寬度。這樣就能自動(dòng)適應(yīng)屏幕的寬度了。但是寬度值不能完全由用戶自由縮放,我們必須在這個(gè)百分比寬度限制其最小寬度,當(dāng)用戶縮小窗口到一定值,就不讓窗口再縮放了。

熟悉CSS的朋友都知道,有這樣四個(gè)屬性:

Min-width:最小寬度

Max-width:最大寬度

Min-height:最小高度

Max-height:最大高度

這四個(gè)屬性剛好能解決這個(gè)問題,是不是比較欣喜,可是,別忙,雖說它們能解決這個(gè)問題,可是卻有一個(gè)嚴(yán)重的問題,用戶使用最多的瀏覽器IE6卻不支持這幾個(gè)屬性,這是一件非常糟糕的事情。我們總不能丟棄用戶最多的瀏覽器吧!

目前網(wǎng)上比較流行的有四種方法來解決讓IE6支持這四種屬性:

1.     在CSS中expression來設(shè)置最小寬度,比較費(fèi)內(nèi)存。

2.     用嵌套DIV,然后用margin偏移模仿實(shí)現(xiàn),多冗余結(jié)構(gòu)。

3.     用JQ框架實(shí)現(xiàn),為一個(gè)屬性加一個(gè)JS框架,有點(diǎn)不劃算。

4.     用純JS代碼實(shí)現(xiàn)。

前面三種都有劣勢(shì),請(qǐng)各自選擇最合適的方法,我偏重于最后一種,這是國(guó)外的一個(gè)牛人實(shí)現(xiàn)的,相關(guān)例子可以看這兒:http://www.doxdesk.com/software/js/minmax.html

有了這個(gè)JS文件,你只需要在頭部調(diào)用這個(gè)JS文件就可以了。

PS:在演示模型中為了方便,我將這個(gè)JS作為內(nèi)部引用的方式調(diào)用,你們?cè)趯?shí)際應(yīng)用中將這個(gè)JS文件新建為一個(gè)JS外部文件,如下方式調(diào)用:

<script type="text/javascript" src="minmax.js"></script>

我們?cè)跇邮奖碇袑in-width應(yīng)用到#wrapper和#footer這兩個(gè)容器就行了,并分別設(shè)置它們寬度為100%,OK,現(xiàn)在我們解決了最小寬度的問題。

 

二、解決彈性圖片

 

我們看看上面哪張圖片,要做成彈性布局,就要解決頁頭圖片的動(dòng)態(tài)縮放。而這是一張圖片,我們都知道圖片是沒有辦法隨比例縮放的,該怎么辦呢?

我們可以換一個(gè)思維方式,將這張圖片在PS中做一點(diǎn)改動(dòng),我們可以將這張圖片分割成左右兩部分,并將它們合并成一張圖片。如下圖所示:

 

圖二

第一圖片在容器中以背景定位的方式左上定位,而第二張片則右下定位,用兩個(gè)容器分裝兩張圖片,內(nèi)層的圖片級(jí)別比外層圖片級(jí)別高,它會(huì)浮動(dòng)到第一張圖片上蓋住它,當(dāng)然這第二張要做成透明底色的png或gif圖片,因?yàn)閜ng-24位透明圖片在IE6下不受支持,所以我們改成PNG-8位的透明圖片,這樣雖說圖片質(zhì)量上有點(diǎn)影響,但可以保證在IE6中暢通無阻。

所以頁頭的結(jié)構(gòu)層應(yīng)該是如下的樣子:

<div id="header">
    
<div id="inhead">
        
<p>頁頭內(nèi)容</p>
    
</div>
</div>

針對(duì)這樣的結(jié)構(gòu)我們可以寫出如下的樣式:

外層樣式:

#header{
  height
:150px;
  width
:100%;
  background
:#000 url(image/header-bg.png) no-repeat left top;
}

內(nèi)層樣式:

#inhead{
  height
:150px;
  width
:100%;
  background
:url(image/header-bg.png) no-repeat right bottom;
  text-align
:center;
  color
:#fff;
}

經(jīng)過這樣的改進(jìn)后,我們的頁頭就做成彈性的圖片,它在瀏覽器中顯示就應(yīng)該如下:

 

圖三 

這樣,一個(gè)彈性布局就算基本完成了。最終的效果如下圖所示:

圖四

后記:

最后不得不提的是,這種布局是有局限性的,并不是每個(gè)網(wǎng)頁都能適合用這種方式來布局。因?yàn)榱黧w彈性布局本身存在的缺陷。它不能用于設(shè)計(jì)得太過華麗、圖片豐富的頁面,因?yàn)橛行﹫D片是沒有辦法做到象上圖哪樣伸縮的。我想正是因?yàn)檫@個(gè)原因,它限制了這種布局的廣泛流傳。

演示頁面: 

 
因博客園程序中屏蔽了JS功能,如果上面的演示代碼中最小寬度的JS代碼不能用,請(qǐng)下載下面的壓縮包在本機(jī)上觀看!
 
源碼下載:彈性布局源碼打包下載
Tag標(biāo)簽: html,css,js

如對(duì)本文有疑問,請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答!! 點(diǎn)擊進(jìn)入論壇

您可能感興趣的文章:

發(fā)表評(píng)論 (200人查看,0條評(píng)論)
請(qǐng)自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動(dòng)的言論。
昵稱:
最新評(píng)論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時(shí)間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號(hào)