久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

CSS怎樣實現(xiàn)水平垂直居中的絕對定位居中技術(shù)

本篇文章給大家?guī)砹藥追Ncss實現(xiàn)垂直居中水平居中的絕對定位居中技術(shù)的相關(guān)知識,希望對大家有幫助。

CSS怎樣實現(xiàn)水平垂直居中的絕對定位居中技術(shù)

Ⅰ.絕對定位居中(Absolute Centering)技術(shù)

我們經(jīng)常用margin:0 auto來實現(xiàn)水平居中,而一直認(rèn)為margin:auto不能實現(xiàn)垂直居中……實際上,實現(xiàn)垂直居中僅需要聲明元素高度和下面的CSS:

.Absolute-Center {   margin: auto;   position: absolute;   top: 0; left: 0; bottom: 0; right: 0; }

我不是這種實現(xiàn)方法的第一人,可能這只是非常常見的一種小技術(shù),我斗膽將其命名為絕對居中(Absolute Centering),雖然如此,但是大多數(shù)討論垂直居中的文章卻從來不提這種方法,直到我最近瀏覽《How to Center Anything WithCSS》這篇文章的評論時候才發(fā)現(xiàn)這種用法。在評論列表中Simon和Priit都提及了此方法。

如果你有任何擴展的功能或建議,可以在此跟帖:

CodePen

SmashingMagazine

Twitter @shshaw

優(yōu)點:

1.支持跨瀏覽器,包括IE8-IE10.

2.無需其他特殊標(biāo)記,CSS代碼量少

3.支持百分比%屬性值和min-/max-屬性

4.只用這一個類可實現(xiàn)任何內(nèi)容塊居中

5.不論是否設(shè)置padding都可居中(在不使用box-sizing屬性的前提下)

6.內(nèi)容塊可以被重繪。

7.完美支持圖片居中。

缺點:

1.必須聲明高度(查看可變高度Variable Height)。

2.建議設(shè)置overflow:auto來防止內(nèi)容越界溢出。(查看溢出Overflow)。

3.在Windows Phone設(shè)備上不起作用。

瀏覽器兼容性:

Chrome,Firefox, Safari, Mobile Safari, IE8-10.

絕對定位方法在最新版的Chrome,Firefox, Safari, Mobile Safari, IE8-10.上均測試通過。

對比表格:

絕對居中法并不是唯一的實現(xiàn)方法,實現(xiàn)垂直居中還有些其他的方法,并各有各的優(yōu)勢。采用哪種技術(shù)取決于你的瀏覽器是否支持和你使用的語言標(biāo)記。這個對照表有助于你根據(jù)自己的需求做出正確的選擇。

CSS怎樣實現(xiàn)水平垂直居中的絕對定位居中技術(shù)

解釋

通過以上描述,絕對居中(AbsoluteCentering)的工作機理可以闡述如下:

1、在普通內(nèi)容流(normal content flow)中,margin:auto的效果等同于margin-top:0;margin-bottom:0。

W3C中寫道If 'margin-top', or'margin-bottom' are 'auto', their used value is 0.

2、position:absolute使絕對定位塊跳出了內(nèi)容流,內(nèi)容流中的其余部分渲染時絕對定位部分不進行渲染。

Developer.mozilla.org:…an element that is positioned absolutely is taken out of the flow and thustakes up no space

3、為塊區(qū)域設(shè)置top: 0; left: 0; bottom: 0; right: 0;將給瀏覽器重新分配一個邊界框,此時該塊block將填充其父元素的所有可用空間,父元素一般為body或者聲明為position:relative;的容器。

Developer.mozilla.org:For absolutely positioned elements, the top, right, bottom, and left propertiesspecify offsets from the edge of the element's containing block (what theelement is positioned relative to).

4、 給內(nèi)容塊設(shè)置一個高度height或?qū)挾葁idth,能夠防止內(nèi)容塊占據(jù)所有的可用空間,促使瀏覽器根據(jù)新的邊界框重新計算margin:auto

Developer.mozilla.org: The margin of the[absolutely positioned] element is then positioned inside these offsets.

5、由于內(nèi)容塊被絕對定位,脫離了正常的內(nèi)容流,瀏覽器會給margin-top,margin-bottom相同的值,使元素塊在先前定義的邊界內(nèi)居中。

W3.org: If none of the three [top, bottom,height] are 'auto': If both 'margin-top' and 'margin-bottom' are 'auto', solvethe equation under the extra constraint that the two margins get equal values.AKA: center the block vertically

這么看來, margin:auto似乎生來就是為絕對居中(Absolute Centering)設(shè)計的,所以絕對居中(Absolute Centering)應(yīng)該都兼容符合標(biāo)準(zhǔn)的現(xiàn)代瀏覽器。

簡而言之(TL;DR):絕對定位元素不在普通內(nèi)容流中渲染,因此margin:auto可以使內(nèi)容在通過top: 0; left: 0; bottom: 0;right: 0;設(shè)置的邊界內(nèi)垂直居中。

居中方式:

一、容器內(nèi)(Within Container)

內(nèi)容塊的父容器設(shè)置為position:relative,使用上述絕對居中方式,可以使內(nèi)容居中顯示于父容器。

.Center-Container {   position: relative; }  .Absolute-Center {   width: 50%;   height: 50%;   overflow: auto;   margin: auto;   position: absolute;   top: 0; left: 0; bottom: 0; right: 0; }

CSS怎樣實現(xiàn)水平垂直居中的絕對定位居中技術(shù)

以下其余的demo默認(rèn)上面的CSS樣式已引用包括進去,在此基礎(chǔ)上只提供額外的類供用戶追加以實現(xiàn)不同的功能。

二、視區(qū)內(nèi)(Within Viewport)

想讓內(nèi)容塊一直停留在可視區(qū)域內(nèi)?將內(nèi)容塊設(shè)置為position:fixed;并設(shè)置一個較大的z-index層疊屬性值。

.Absolute-Center.is-Fixed {   position: fixed;   z-index: 999; }

CSS怎樣實現(xiàn)水平垂直居中的絕對定位居中技術(shù)

注意:對MobileSafari,若內(nèi)容塊不是放在設(shè)置為position:relative;的父容器中,內(nèi)容塊將垂直居中于整個文檔,而不是可視區(qū)域內(nèi)垂直居中。

三、邊欄 (Offsets)

如果你要設(shè)置一個固頂?shù)念^或增加其他的邊欄,只需要在內(nèi)容塊的樣式中加入像這樣的CSS樣式代碼:top:70px;bottom:auto;由于已經(jīng)聲明了margin:auto;,該內(nèi)容塊將會垂直居中于你通過top,left,bottom和right屬性定義的邊界框內(nèi)。

你可以將內(nèi)容塊固定與屏幕的左側(cè)或右側(cè),并且保持內(nèi)容塊垂直居中。使用right:0;left:auto;固定于屏幕右側(cè),使用left:0;right:auto;固定與屏幕左側(cè)。

.Absolute-Center.is-Right {   left: auto; right: 20px;   text-align: right; }  .Absolute-Center.is-Left {   right: auto; left: 20px;   text-align: left; }

CSS怎樣實現(xiàn)水平垂直居中的絕對定位居中技術(shù)

四、響應(yīng)式/自適應(yīng)(Responsive)

絕對居中最大的優(yōu)勢應(yīng)該就是對百分比形式的寬高支持的非常完美。甚至min-width/max-width 和min-height/max-height這些屬性在自適應(yīng)盒子內(nèi)的表現(xiàn)也和預(yù)期很一致。

CSS怎樣實現(xiàn)水平垂直居中的絕對定位居中技術(shù)

.Absolute-Center.is-Responsive {   width: 60%;    height: 60%;   min-width: 200px;   max-width: 400px;   padding: 40px; }

給內(nèi)容塊元素加上padding也不影響內(nèi)容塊元素的絕對居中實現(xiàn)。

五、 溢出情況(Overflow)

內(nèi)容高度大于塊元素或容器(視區(qū)viewport或設(shè)為position:relative的父容器)會溢出,這時內(nèi)容可能會顯示到塊與容器的外面,或者被截斷出現(xiàn)顯示不全(分別對應(yīng)內(nèi)容塊overflow屬性設(shè)置為visible和hidden的表現(xiàn))。

加上overflow: auto會在內(nèi)容高度超過容器高度的情況下給內(nèi)容塊顯示滾動條而不越界。

.Absolute-Center.is-Overflow {   overflow: auto; }

CSS怎樣實現(xiàn)水平垂直居中的絕對定位居中技術(shù)

如果內(nèi)容塊自身不設(shè)置任何padding的話,可以設(shè)置max-height: 100%;來保證內(nèi)容高度不超越容器高度。

六、重繪(Resizing)

你可以使用其他class類或javascript代碼來重繪內(nèi)容塊同時保證居中,無須手動重新計算中心尺寸。當(dāng)然,你也可以添加resize屬性來讓用戶拖拽實現(xiàn)內(nèi)容塊的重繪。

絕對居中(Absolute Centering)可以保證內(nèi)容塊始終居中,無論內(nèi)容塊是否重繪。可以通過設(shè)置min-/max-來根據(jù)自己需要限制內(nèi)容塊的大小,并防止內(nèi)容溢出窗口/容器。

.Absolute-Center.is-Resizable {   min-width: 20%;   max-width: 80%;   min-height: 20%;   max-height: 80%;   resize: both;   overflow: auto; }

CSS怎樣實現(xiàn)水平垂直居中的絕對定位居中技術(shù)

如果不使用resize:both屬性,可以使用CSS3動畫屬性transition來實現(xiàn)重繪的窗口之間平滑的過渡。一定要設(shè)置overflow:auto;以防重繪的內(nèi)容塊尺寸小于內(nèi)容的實際尺寸這種情況出現(xiàn)。

絕對居中(AbsoluteCentering)是唯一支持resize:both屬性實現(xiàn)垂直居中的技術(shù)。

注意:

  • 要設(shè)置max-width/max-height屬性來彌補內(nèi)容塊padding,否則可能溢出。

  • 手機瀏覽器和IE8-IE10瀏覽器不支持resize屬性,所以如果對你來說,這部分用戶體驗很必要,務(wù)必保證對resizing你的用戶有可行的退路。

  • 聯(lián)合使用resize 和 transition屬性會在用戶重繪時,產(chǎn)生一個transition動畫延遲時間。

七、圖片(Images)

絕對居中(AbsoluteCentering)也適用于圖片。對圖片自身應(yīng)用class類或CSS樣式,并給圖片添加height:auto樣式,圖片會自適應(yīng)居中顯示,如果外層容器可以resize則隨著容器的重繪,圖片也相應(yīng)重繪,始終保持居中。

需要注意的是height:auto雖然對圖片居中有用,但如果是在圖片外層的內(nèi)容塊上應(yīng)用了height:auto則會產(chǎn)生一些問題:規(guī)則的內(nèi)容塊會被拉伸填充整個容器。這時,我們可以使用可變高度(Variable Height)方式解決這個問題。問題的原因可能是渲染圖片時要計算圖片高度,這就如同你自己定義了圖片高度一樣,瀏覽器得到了圖片高度就不會像其他情況一樣去解析margin:auto垂直居中了。所以我們最好對圖片自身應(yīng)用這些樣式而不是父元素。

CSS怎樣實現(xiàn)水平垂直居中的絕對定位居中技術(shù)

HTML:

<img src="http://placekitten.com/g/500/200" class="Absolute-Center is-Image" alt="" />

CSS:

.Absolute-Center.is-Image {   height: auto; }  .Absolute-Center.is-Image img {    width: 100%;   height: auto; }

最好是對圖片自身應(yīng)用此方法,效果如下圖:

CSS怎樣實現(xiàn)水平垂直居中的絕對定位居中技術(shù)

八、可變高度(Variable Height)

這種情況下實現(xiàn)絕對居中(AbsoluteCentering)必須要聲明一個高度,不管你是基于百分比的高度還是通過max-height控制的高度,還有,別忘了設(shè)置合適的overflow屬性。對自適應(yīng)/響應(yīng)式情景,這種方法很不錯。

與聲明高度效果相同的另一種方法是設(shè)置display:table;這樣無論實際內(nèi)容有多高,內(nèi)容塊都會保持居中。這種方法在一些瀏覽器(如IE/FireFox)上會有問題,我的搭檔Kalley

在ELL Creative(訪問ellcreative.com )上寫了一個基于Modernizr插件的檢測函數(shù),用來檢測瀏覽器是否支持這種居中方法,進一步增強用戶體驗。

Javascript:

/* Modernizr Test for Variable Height Content */ Modernizr.testStyles('#modernizr { display: table; height: 50px; width: 50px; margin: auto; position: absolute; top: 0; left: 0; bottom: 0; right: 0; }', function(elem, rule) {   Modernizr.addTest('absolutecentercontent', Math.round(window.innerHeight / 2 - 25) === elem.offsetTop); });

CSS:

.absolutecentercontent .Absolute-Center.is-Variable {   display: table;   height: auto; }

CSS怎樣實現(xiàn)水平垂直居中的絕對定位居中技術(shù)

缺點:

瀏覽器兼容性不太好,若Modernizr不能滿足你的需求,你需要尋找其他方法解決。

1.與上述重繪(Resizing)情況的方法不兼容

2.Firefox/IE8:使用display:table會使內(nèi)容塊垂直居上,不過水平還是居中的。

3.IE9/10: 使用display:table會使內(nèi)容塊顯示在容器左上角。

4.Mobile Safari:內(nèi)容塊垂直居中;若使用百分比寬度,水平方向居中會稍微偏離中心位置。

Ⅱ.其他居中實現(xiàn)技術(shù)

絕對居中(Absolute Centering)是一種非常不錯的技術(shù),除此之外還有一些方法可以滿足

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
韩日一区二区三区| 99精品在线| 国产一区清纯| 久久久国产精品入口麻豆| 日韩精品久久理论片| 中文字幕中文字幕精品| 日本一区中文字幕| 91精品国产一区二区在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 视频一区日韩| 国产精品乱战久久久| 久久av综合| 日韩久久一区二区三区| 亚洲网站视频| 免费成人性网站| 91av一区| 国产中文字幕一区二区三区| 福利视频一区| 久久电影tv| 久久精品99久久无色码中文字幕| 亚洲福利精品| 天堂成人免费av电影一区| 日韩欧美高清一区二区三区| 老司机免费视频一区二区三区| 国产精选在线| 免费精品视频| 久久99精品久久久野外观看| av资源中文在线天堂| 精品在线99| 日本亚洲欧洲无免费码在线| 精品久久不卡| 激情五月综合网| 日本在线不卡视频| 国产白浆在线免费观看| 久久97视频| 欧美日韩一区自拍| 美美哒免费高清在线观看视频一区二区| 婷婷中文字幕一区| 国产极品模特精品一二| 国产精品网在线观看| 视频一区欧美日韩| 91精品韩国| 久久亚洲精精品中文字幕| 国产欧美日韩精品高清二区综合区 | 久久精品二区三区| 午夜一级久久| 国产毛片精品久久| 免费在线小视频| 蜜桃视频一区二区| 国产+成+人+亚洲欧洲在线| 红桃视频欧美| 国产精品久久久久9999高清| 欧美一级精品| 国产亚洲一卡2卡3卡4卡新区| 久久久精品五月天| 日韩综合一区二区| 精品99在线| 男人的天堂亚洲一区| 欧美激情一区| 夜夜精品视频| 97精品国产| 日韩在线视频一区二区三区| 成人午夜精品| 国产精品一在线观看| 狠狠爱成人网| 精品入口麻豆88视频| 久久午夜精品| 亚洲va中文在线播放免费| 日韩精品一区二区三区中文字幕| 日韩国产激情| 国产精品欧美一区二区三区不卡 | 中文在线免费视频| 日本午夜精品一区二区三区电影| 日韩成人亚洲| 国产精品99久久免费| 蜜臀av性久久久久蜜臀aⅴ流畅| 日韩av专区| 91p九色成人| 蜜臀av一区二区在线免费观看| 99精品视频在线观看免费播放| 国产精品天堂蜜av在线播放| 玖玖精品视频| 国产精品97| 97国产成人高清在线观看| 中文字幕一区二区精品区| 99精品综合| 91综合网人人| 欧美一区成人| 亚洲久草在线| 亚洲综合日韩| 日韩精品免费一区二区在线观看 | 91精品尤物| 午夜亚洲精品| 天堂资源在线亚洲| 日韩精品诱惑一区?区三区| 日韩精品一区二区三区免费视频| 婷婷精品进入| 久久在线免费| 老鸭窝一区二区久久精品| 日韩av一区二区三区| 一区在线视频观看| 亚洲成人一区在线观看| 国产一区二区三区黄网站| 欧美日韩亚洲一区在线观看| 午夜久久av | 国产精品免费大片| 日韩三级视频| 久久国产88| 午夜欧美视频| 亚洲va在线| 日韩激情一区| 成人三级高清视频在线看| 久久99偷拍| 久久99精品久久久野外观看| 91精品国产一区二区在线观看| 视频一区在线视频| 亚洲一区二区三区四区五区午夜| 婷婷精品视频| 精精国产xxxx视频在线野外| 高清一区二区| 你懂的国产精品| 91嫩草精品| 国产精品久久久一区二区| 国产日韩欧美一区二区三区在线观看| 日韩福利在线观看| 97久久中文字幕| 久久国产生活片100| 欧美精品中文字幕亚洲专区| 日韩av一区二| 国产欧美日韩亚洲一区二区三区| 国产欧美69| 精品中国亚洲| 成人精品久久| 色吊丝一区二区| 91精品啪在线观看国产18| 国产一区二区精品久| 国产在线观看91一区二区三区| 伊人网在线播放| 日韩中文影院| 精品一区三区| 三级在线观看一区二区| 综合欧美亚洲| 国产伦精品一区二区三区在线播放 | 久久av日韩| 国产一区二区亚洲| 欧洲一级精品| 欧洲精品一区二区三区| 在线日韩视频| 久久国产精品99国产| 日韩精品免费视频人成| 欧美亚洲三级| 精品免费视频| 色88888久久久久久影院| 日韩视频一区| 久久中文在线| 久久精品观看| 亚洲91在线| 美女久久99| 国产综合婷婷| 少妇高潮一区二区三区99| 国产精品嫩模av在线| 高潮久久久久久久久久久久久久| 欧美日韩免费看片| 亚洲一区二区日韩| 国产精品欧美三级在线观看| 激情综合五月| 婷婷中文字幕一区| 欧美另类中文字幕| 亚洲国产成人二区| 亚洲视频综合| 日韩精品视频在线看| 精品香蕉视频| 99精品国产一区二区三区| 免费精品视频| 精品一区二区三区免费看| 久久精品欧美一区| 宅男噜噜噜66国产日韩在线观看| 日本亚州欧洲精品不卡| 国产美女高潮在线| 另类国产ts人妖高潮视频| 久久精品97| 久久久久久美女精品| 日本综合精品一区| 中文字幕高清在线播放| 免费成人av在线播放| 精品亚洲精品| 亚洲精品麻豆| 欧美好骚综合网| 亚洲三级国产| av日韩中文| 日本欧美一区二区| 久久精品毛片| 国产精品7m凸凹视频分类| 欧美亚洲tv| 精品一区欧美| 久久久久九九精品影院| 中国女人久久久| 国产一区二区三区四区五区传媒| 蜜臀国产一区二区三区在线播放 | 国产日韩三级|