摘要:布局方式布局的傳統(tǒng)解決方案,基于盒狀模型,依賴(lài)屬性屬性屬性。它對(duì)于那些特殊布局非常不方便,比如,垂直居中就不容易實(shí)現(xiàn)。關(guān)于布局,當(dāng)然肯定還有更多的更好的方法。
接觸前端開(kāi)發(fā)也有半年了,每當(dāng)需要將一個(gè)空白的紙,”畫(huà)“成一個(gè)頁(yè)面的時(shí)候,總會(huì)出現(xiàn)不知所措的幾秒鐘。除了因?yàn)閷?duì)css中的各種屬性的不熟練之外,更難為人的是怎么簡(jiǎn)練的將這些屬性排列組合起來(lái)。其實(shí)靜下心來(lái),仔細(xì)想一想,無(wú)非就是整體-->局部這么個(gè)思路。所謂整體,就是頁(yè)面的局,局部就是各自的整體到局部,再加上一些展示性的屬性的組合的這么個(gè)過(guò)程。考慮好瀏覽器的兼容性,做一個(gè)盡量完美的布局,是寫(xiě)好頁(yè)面樣式的關(guān)鍵一步。
可是,我總是希望能用盡量少的代碼,來(lái)表現(xiàn)盡量多的內(nèi)容,但是,如果不考慮其他因素,這一點(diǎn)很容易做到。比如 ,我們要分列,flex足矣。但其他因素終歸是必須要顧及的。
布局方式布局的傳統(tǒng)解決方案,基于盒狀模型,依賴(lài) display屬性 + position屬性 + float屬性。它對(duì)于那些特殊布局非常不方便,比如,垂直居中就不容易實(shí)現(xiàn)。
第一 標(biāo)準(zhǔn)流布局
第二 浮動(dòng)布局
第三 定位布局
案例一--水平居中從一個(gè)最簡(jiǎn)單的居中布局說(shuō)起
就可以有好多種實(shí)現(xiàn)方式,
比如第一種inline-block+text-align的常見(jiàn)方式:
.child{display:inline-block;} .parent{text-align:center;}
這種方法兼容性比較好,雖然ie6,7不支持inline-block,但是我們可以通過(guò)
display:block;zoom:1 近似于 inline-block
第二種table+margin的方式,同樣是上例的結(jié)構(gòu):
.child{display:table;margin:0 auto;}
這種方式需要的css代碼很簡(jiǎn)單,對(duì)ie8以上也能很好的支持,但是由于ie6,7對(duì)display:table不認(rèn),但是我們可以將結(jié)構(gòu)改成table的結(jié)構(gòu)也能達(dá)到效果。
第三種方式采用absolute+trasnform的方式
.parent{position:relative;} .child{position:absolute;left:50%;transform:translateX(-50%);}
這種方式關(guān)鍵的一點(diǎn)是利用transform屬性,旋轉(zhuǎn)自身的50%。達(dá)到居中的效果。但是ie6,7,8均不能很好的支持。
第三種方式是通過(guò)flex+justify-content的組合實(shí)現(xiàn)的
.parent{display:flex;justify-content:center;}
這種方同第二種類(lèi)似,css代碼比較簡(jiǎn)單,這里是不需要對(duì)子元素進(jìn)行任何的設(shè)置,這是由于flex的子元素默認(rèn)是flex-item,寬為元素寬。關(guān)于flex的詳細(xì)內(nèi)容,可以參考這個(gè)介紹flex布局
當(dāng)然,這里的
justify-content:center;
也有替代的方法,可以通過(guò)
.child{margin:0 auto;}
實(shí)現(xiàn)相同的效果。
案例二--垂直居中垂直居中,這里總結(jié)三種常見(jiàn)的方式
利用table-cell
.parent{display:table-cell;vertical-align:middle;}
這種方式兼容ie8及以上,對(duì)ie6,7可以通過(guò)前面介紹的,改成table的結(jié)構(gòu)來(lái)兼容。
借助定位和transform屬性
.parent{position:relative;} .child{position:absolute;top:50%;transform:translateY(-50%)}
css3的flex
.parent{display:flex;align-item:center;}案例三--水平垂直居中
水平垂直居中就可以綜合考慮前面的水平居中的一些方法和垂直居中的一下方法了。兼容性當(dāng)然跟前面考慮的原因也類(lèi)似,這里總結(jié)了三種。
基本水平居中方法加table-cell
.parent{text-align:center;display:table-cell;vertical-algin:center;} .child{display:inline-block;}
定位+ transform屬性
.parent{position:relative;} .child{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}
flex
.parent{display:flex;justify-content:center;align-items:center;}
這種情況下,我們也是不需要對(duì).child進(jìn)行特殊的設(shè)置就可以達(dá)到垂直水平居中的效果。
關(guān)于布局,當(dāng)然肯定還有更多的更好的方法。而且,從更宏觀的角度,還有對(duì)于全局的一個(gè)布局,比如top固定,或者一部分定寬,一部分自適應(yīng)等等要求,這里僅僅是總結(jié)了一下常見(jiàn)的,這個(gè)需要不斷的在實(shí)踐中進(jìn)行摸索和改進(jìn),css的學(xué)習(xí)不斷的累積很重要。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/115015.html
摘要:經(jīng)過(guò)半年的打磨,正式發(fā)布,主要是新增了一些常用組件,并使用命名,為接下來(lái)的微信小程序開(kāi)發(fā)做好準(zhǔn)備。這兩種方式實(shí)現(xiàn)的瀑布流式布局均支持首屏和網(wǎng)頁(yè)窗口大小改變時(shí)的列數(shù)自適應(yīng)。主要是對(duì)于標(biāo)準(zhǔn)里的布局方式草案中的布局方式進(jìn)行一些總結(jié)。 一勞永逸的搞定 flex 布局 尋根溯源話布局 一切都始于這樣一個(gè)問(wèn)題:怎樣通過(guò) CSS 簡(jiǎn)單而優(yōu)雅的實(shí)現(xiàn)水平、垂直同時(shí)居中。記得剛開(kāi)始學(xué)習(xí) CSS 的時(shí)候,看...
摘要:高度模型淺識(shí)為的簡(jiǎn)寫(xiě),簡(jiǎn)稱(chēng)為塊級(jí)格式化上下文,為瀏覽器渲染某一區(qū)域的機(jī)制,中只有和中還增加了和。并非所有的布局都會(huì)在開(kāi)發(fā)中使用,但是其中也會(huì)涉及一些知識(shí)點(diǎn)。然而在不同的純制作各種圖形純制作各種圖形多圖預(yù)警 一勞永逸的搞定 flex 布局 尋根溯源話布局 一切都始于這樣一個(gè)問(wèn)題:怎樣通過(guò) CSS 簡(jiǎn)單而優(yōu)雅的實(shí)現(xiàn)水平、垂直同時(shí)居中。記得剛開(kāi)始學(xué)習(xí) CSS 的時(shí)候,看到 float 屬性不...
摘要:常用布局在小程序中的應(yīng)用所有布局的根本都是個(gè)基本概念定位浮動(dòng)外邊距操縱我們其他的布局實(shí)現(xiàn)方式,都是基于正常的文檔流來(lái)進(jìn)行的。具體實(shí)現(xiàn),可以使用微信小程序的單位,以及使用定位浮動(dòng)布局來(lái)實(shí)現(xiàn)。 CSS 常用布局在小程序中的應(yīng)用 所有css布局的根本都是3個(gè)基本概念:定位、浮動(dòng)、外邊距操縱 我們其他的布局實(shí)現(xiàn)方式,都是基于正常的文檔流來(lái)進(jìn)行的。所以我們先來(lái)看看什么是正常的文檔流。 正常文...
摘要:常用布局在小程序中的應(yīng)用所有布局的根本都是個(gè)基本概念定位浮動(dòng)外邊距操縱我們其他的布局實(shí)現(xiàn)方式,都是基于正常的文檔流來(lái)進(jìn)行的。具體實(shí)現(xiàn),可以使用微信小程序的單位,以及使用定位浮動(dòng)布局來(lái)實(shí)現(xiàn)。 CSS 常用布局在小程序中的應(yīng)用 所有css布局的根本都是3個(gè)基本概念:定位、浮動(dòng)、外邊距操縱 我們其他的布局實(shí)現(xiàn)方式,都是基于正常的文檔流來(lái)進(jìn)行的。所以我們先來(lái)看看什么是正常的文檔流。 正常文...
摘要:但是,從字體上來(lái)說(shuō)雪碧圖制作,使用以及相關(guān),圖文。由于采用了編譯,所以能夠保證在瀏覽器不支持標(biāo)準(zhǔn)布局的情況下,回滾到舊版本的,保證移動(dòng)設(shè)備中能呈現(xiàn)出一樣的布局效果。我不想陷入和的紛爭(zhēng),但是有一件事是確定的極大的提升了移動(dòng)端 一勞永逸的搞定 flex 布局 尋根溯源話布局 一切都始于這樣一個(gè)問(wèn)題:怎樣通過(guò) CSS 簡(jiǎn)單而優(yōu)雅的實(shí)現(xiàn)水平、垂直同時(shí)居中。記得剛開(kāi)始學(xué)習(xí) CSS 的時(shí)候,看到 ...
閱讀 2089·2021-09-07 10:14
閱讀 1507·2019-08-30 15:53
閱讀 2293·2019-08-30 12:43
閱讀 2892·2019-08-29 16:37
閱讀 777·2019-08-26 13:29
閱讀 2030·2019-08-26 13:28
閱讀 463·2019-08-23 18:33
閱讀 3562·2019-08-23 16:09