亚洲第一成年免费网站,亚洲日韩在线观看,亚洲美日韩Av中文字幕无码久久久妻妇http://www.tkk7.com/goodlyts/category/32550.htmlzh-cnFri, 17 Apr 2009 16:38:44 GMTFri, 17 Apr 2009 16:38:44 GMT60CSS實現完美垂直居中 http://www.tkk7.com/goodlyts/archive/2009/04/17/266217.html流腥魚流腥魚Fri, 17 Apr 2009 11:59:00 GMThttp://www.tkk7.com/goodlyts/archive/2009/04/17/266217.htmlhttp://www.tkk7.com/goodlyts/comments/266217.htmlhttp://www.tkk7.com/goodlyts/archive/2009/04/17/266217.html#Feedback0http://www.tkk7.com/goodlyts/comments/commentRss/266217.htmlhttp://www.tkk7.com/goodlyts/services/trackbacks/266217.html之前看到很多人一直都問這個問題,不過當時我沒當一回事,因為在 CSS 中要垂直居中,多數是在有高度的情況下,或者容器高度不定的情況下才用,看上去比較舒服,而且實現的方法也不少,不一定要拘泥于和 table 布局一樣。不過最近有人問了幾個例子,看來對此的需求還不少。現在就把我經驗拿出來分享一下,希望大家鼓鼓掌。

首先,要有一個概念:凡是 table 布局可以實現的,CSS 一定可以實現。CSS 可以實現的,table 未必能做到。

現在來幾個例子:

一、單行內容的居中
只考慮單行是最簡單的,無論是否給容器固定高度,只要給容器設置 line-heightheight,并使兩值相等,再加上 over-flow: hidden 就可以了

.middle-demo-1{
height: 4em;
line-height: 4em;
overflow: hidden;
}

優點:
1. 同時支持塊級和內聯極元素
2. 支持所有瀏覽器
缺點:
1. 只能顯示一行
2. IE中不支持<img>等的居中
要注意的是:
1. 使用相對高度定義你的 height 和 line-height
2. 不想毀了你的布局的話,overflow: hidden 一定要
為什么?
請比較以下兩個例子:


[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]

上一個高度是用的絕對單位px,并且沒有隱藏溢出,下一個高度用的單位是相對單位em,并且隱藏了溢出。如果你的瀏覽器支持放大字體,那么盡情地放大字體,看看會出現什么效果。

二、多行內容居中,且容器高度可變
也很簡單,給出一致的 padding-bottom 和 padding-top 就行

.middle-demo-2{
padding-top: 24px;
padding-bottom: 24px;
}

優點:
1. 同時支持塊級和內聯極元素
2. 支持非文本內容
3. 支持所有瀏覽器
缺點:
容器不能固定高度

三、把容器當作表格單元
CSS 提供一系列diplay屬性值,包括 display: table, display: table-row, display: table-cell 等,能把元素當作表格單元來顯示。這是再加上 vertical-align: middle, 就和表格中的 valign="middle" 一樣了。

.middle-demo-3{
display: table-cell;
height: 300px;
vertical-align: middle;
}

可惜IE不支持這些屬性,不過在其他瀏覽器上顯示效果非常完美。
要注意的是:和一個合法的<td>元素必須在<table>里一樣,display: table-cell 元素必須作為 display: table 的元素的子孫出現。

優點:
不用說了吧,就是表格,效果和表格一模一樣
缺點:
IE下無效

四、以毒攻毒!用 IE 的 bug 解決 IE 中的絕對居中
先不得不說一句,IE 真的是個很爛的瀏覽器,CSS1中的定義都不支持,害得要我們轉個大圈子來造居中。不過就像我說的,凡是 table 布局可以實現的,CSS 一定可以實現,即使在 IE 里也不例外。我研究 IE layout 模式多年,還是找出了一個可以在 IE 中絕對居中的方法。這個方法就是基于 IE layout 的 bug,也可以算以毒攻毒。至于原理,不要問我,這是獨門秘學,何況三言兩語也講不清楚,只要好用就行

.middle-demo-4{
height: 300px;
position: relative;
}
.middle-demo-4 div{
position: absolute;
top: 50%;
left: 0;
}
.middle-demo-4 div div{
position: relative;
top: -50%;
left: 0;
}

五、整合三和四,寫出支持所有瀏覽器的垂直居中容器!
思路是利用 IE 和 非IE 瀏覽器的 CSS hack, 整合三和四的CSS,寫出兼容主流瀏覽器的垂直居中容器。具體代碼就不給出了,大家權當作練習練習。例子可以在下面的附錄中找到。
最終實測支持的瀏覽器:IE6+, Mozilla 1.7, Netscape Navigator 8, Opera 8.0+, Firefox 1.0+ 和 Safari 1.0+IE5 下需要加上對合適模型的補正。
推測支持的瀏覽器:Mozilla 1.5+, Netscape Navigator 7+, Opera 7+
未測試瀏覽器:Konqueror

最后附上自己寫的,所有居中布局的范例網頁,大家不明白可以參考。


[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]


流腥魚 2009-04-17 19:59 發表評論
]]>
主站蜘蛛池模板: 亚洲福利电影一区二区?| 亚洲精品国产字幕久久不卡| 亚洲大香人伊一本线| 久久午夜无码免费| 久热综合在线亚洲精品| 久久青草精品38国产免费| 国产v亚洲v天堂无码网站| 中文字幕的电影免费网站| 亚洲成a人片在线观看无码专区| 九九久久国产精品免费热6| 国产亚洲人成A在线V网站| 成人无码视频97免费| 久久精品夜色国产亚洲av| 四虎国产精品永久免费网址 | 免费人成视频x8x8入口| 精品亚洲福利一区二区| 免费播放春色aⅴ视频| 在线视频网址免费播放| 亚洲av成人无码久久精品| 91精品成人免费国产片| 中国亚洲呦女专区| 亚洲Av无码乱码在线znlu| 久久国产福利免费| 亚洲精品在线免费观看| 免费看AV毛片一区二区三区| 免费无遮挡无码视频在线观看| 亚洲人成网站在线观看播放| 99re在线免费视频| 国产精品亚洲精品日韩动图| 精品亚洲一区二区三区在线观看| 青青青国产手机频在线免费观看 | 亚洲成av人片天堂网无码】| 波多野结衣中文一区二区免费| 二个人看的www免费视频| 亚洲黄色在线播放| 免费人成在线观看播放国产 | 亚洲精品国产成人专区| 四虎影院免费视频| a级毛片在线免费看| 亚洲久悠悠色悠在线播放| 国产亚洲无线码一区二区|