中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 網(wǎng)頁制作 > 尋找圣杯
IE 下 href 的 BUG 回到列表 網(wǎng)頁柵格系統(tǒng)研究:技術(shù)實(shí)現(xiàn)
 尋找圣杯

作者:abdvl 時間: 2008-11-06 文檔類型:翻譯 來自:Alipay UED

第 1 頁 尋找圣杯 [1]
第 2 頁 尋找圣杯 [2]
第 3 頁 尋找圣杯 [3]
第 4 頁 尋找圣杯 [4]
第 5 頁 尋找圣杯 [5]

第五步:補(bǔ)充設(shè)計(jì)

如果瀏覽器重新調(diào)整大小,中間的容器小于左邊欄的時候,整個布局都會被破壞掉,所以要設(shè)置一個min-width來保持我們的布局不被片破壞,雖然在IE6上這個屬性是不起作用的,但是沒關(guān)系。

body {
  min-width: 550px;  /* 2x LC width + RC width */
}

沒有任何一個布局是不要對IE增加一些額外的工作就能完成的。(-_-!) 在IE6中負(fù)邊距會使左邊欄離的太遠(yuǎn)(在全寬瀏覽下),我們要用右邊欄的寬大把他向右拉回來。并且用* html來屏蔽其他瀏覽器執(zhí)行他.

* html #left {
  left: 150px;  /* RC width */
}

至于為什么要用右邊欄的寬度,要牽涉到一些算法。當(dāng)然我不會用去解釋這些,我們只要知道這樣是起作用的,我們甚至可以認(rèn)為這個是IE的眾多”魔法”之一。

Padding, please

我不是設(shè)計(jì)師,但是上面的布局實(shí)在是觸犯了我的審美觀。沒有邊距的欄目是很分辨和閱讀的,我們需要空隙!

使用One True Layout這樣百分比布局的的弊端之一就是會造成中間層的padding困難,百分比的padding在某些分辨率下會變的很難看?梢杂霉潭▽挾鹊膒adding,但是需要給每一欄內(nèi)部嵌套一個div。

用這個布局padding不是問題,他可以直接給左、右邊欄添加padding,只需響應(yīng)的調(diào)整即可。例如我們要給上面的例子添加10px的padding,并且保持他(width+padding)還是200px,只需要小小的改動

#left {
  width: 180px;        /* LC fullwidth - padding */
  padding: 0 10px;
  right: 200px;        /* LC fullwidth */
  margin-left: -100%;
}

要給中心層加padding需要一個技巧,但是不需要額外的結(jié)構(gòu),只需額外的一小段css。加的100%的寬度導(dǎo)致中心層和外部的的padding以外(non-padded width)的寬度一樣寬。為了達(dá)到我們想要的效果,我們需要增加右邊的margin,使其等于padding值的總和,這樣就保證了他會是我們想要的大小。

我們改變了中間層的改變成現(xiàn)在這樣后,左邊欄需要移動更多的距離才能在正確的位置上,這也是技巧所在。我們需要給右邊框的抵消值(上面的right值)增加上中間層的padding值。

為了更具體的說明,我繼續(xù)以上面的例子為例,現(xiàn)在給每一個邊框增加10px的padding值(合計(jì)20px),中間層增加20px的padding值(合計(jì)40px),新的樣式如下:

body {
  min-width: 630px;      /* 2x (LC fullwidth +
                            CC padding) + RC fullwidth */
}
#container {
  padding-left: 200px;   /* LC fullwidth */
  padding-right: 190px;  /* RC fullwidth + CC padding */
}
#container .column {
  position: relative;
  float: left;
}
#center {
  padding: 10px 20px;    /* CC padding */
  width: 100%;
}
#left {
  width: 180px;          /* LC width */
  padding: 0 10px;       /* LC padding */
  right: 240px;          /* LC fullwidth + CC padding */
  margin-left: -100%;
}
#right {
  width: 130px;          /* RC width */
  padding: 0 10px;       /* RC padding */
  margin-right: -190px;  /* RC fullwidth + CC padding */
}
#footer {
  clear: both;
}
 
/*** IE Fix ***/
* html #left {
  left: 150px;           /* RC fullwidth */
}

當(dāng)然上下的padding值能很方便的添加,具體請參看nicely padded version 中的例子
這個布局也能在em下很好的工作,但是不能在混合em和px的時候工作,選什么你來定,但是要選的正確。
等高欄
這個布局能保證所有的欄目都是等高的,實(shí)現(xiàn)方式是來著與One True Layout的adapted wholesale。所以我不詳細(xì)解釋,增加和修改代碼如下

#container {
  overflow: hidden;
}
#container .column {
  padding-bottom: 20010px;  /* X + padding-bottom */
  margin-bottom: -20000px;  /* X */
}
#footer {
  position: relative;
}

我特別在下面留了10個像素

附加的說明,請注意在Opera上存在一個bug,即overflow:hidden會讓你所有的欄目都變大,在One True Layout上有詳細(xì)的解決辦法。你可以使用這個方法或是等Opera 9(被修復(fù)了這個bug)來測試。

另一個問題是,在IE中如果內(nèi)容的高度沒有背景圖片的高度高,背景不會被剪掉,他會超出footer。如果你沒有獨(dú)立的footer或是內(nèi)容比背景高,這也不是個問題。如果你仍然需要一個footer,不要怕還是有解決的辦法的。用一個DIV把footer封裝一下就可以。

<div id="footer-wrapper">
  <div id="footer"></div>
</div>

現(xiàn)在依然用上面我們使用到的讓各個欄目對齊的技巧來讓footer超過封裝的DIV,來顯示我們想要顯示的內(nèi)容

* html body {
  overflow: hidden;
}
* html #footer-wrapper {
  float: left;
  position: relative;
  width: 100%;
  padding-bottom: 10010px;
  margin-bottom: -10000px;
  background: #fff;         /* Same as body 
                               background */
}

現(xiàn)在解決了所有的問題,得到了我們想要的結(jié)果和很少量冗余的代碼。

哦,還需要說明的

完美主義者有可能是想知道是否有一個更好的方式來做到這一點(diǎn)?我之前聲明過,我引用了一個非語義化的包含容器(DIV),確實(shí),我們不應(yīng)該包含一個額外的結(jié)構(gòu)來打亂我們完美的結(jié)構(gòu).

如果你像我一樣,象知道這樣怎么去實(shí)現(xiàn),不需要更多的結(jié)構(gòu),我向你介紹“wrapper-free Holy Grail (沒有包含的圣杯)”,其最抽象的特殊之處在于,用一個DIV實(shí)現(xiàn)了各部分 — 不多也不少,語義化,不愧于”圣杯”的美名.其原理是相似的.主體直接應(yīng)用padding不需要多余的容器,而用負(fù)邊距來延伸header和footer 使其剛好達(dá)到想要的寬度.

這種布局能在所有的瀏覽器上正常工作,甚至(令人震驚)是在IE上,但是不是等高的.而且在非常小的窗口中是會”破掉”的,使用他的時候一定要謹(jǐn)慎.

最后
雖然文中提到的例子很具體,但是這項(xiàng)技術(shù)的使用范圍確實(shí)很大.為什么不能有兩個活動的中心層,為什么不調(diào)換層的順序.這些引用都超出了本文的表述范圍,但是要實(shí)現(xiàn)他們只需要很小的改動即可.使用圣杯是明智的.他可以成為你使用CSS的技巧之一.

本文鏈接:http://www.95time.cn/tech/web/2008/6273.asp 

出處:Alipay UED
責(zé)任編輯:moby

上一頁 尋找圣杯 [4] 下一頁

◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論

相關(guān)文章 更多相關(guān)鏈接
標(biāo)記語言——CSS布局
根本不存在DIV+CSS布局這回事
css基礎(chǔ)教程布局篇之一
簡單的通過CSS控制垂直居中
十步學(xué)會用css建站(全)
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大!熬•自然”設(shè)計(jì)大賽開啟
國際體驗(yàn)設(shè)計(jì)大會7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機(jī)制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:5/51個記錄/頁 轉(zhuǎn)到 頁 共5個記錄

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計(jì)作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯誤,請用報(bào)告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報(bào)告管理員,以利管理員及時刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報(bào)告錯誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2