摘要:其設(shè)計(jì)初衷并不是完備的網(wǎng)格系統(tǒng)。所以禁止將其作為一個(gè)完整的網(wǎng)格系統(tǒng)使用。但貓有四條腿,而人類只有兩條。總而言之,還是很棒的真的很有用。
對(duì)大部分的人來(lái)說(shuō)(如果你寫過(guò)CSS),F(xiàn)lexbox 可以說(shuō)是完美,但它是否適合所有場(chǎng)景呢?
簡(jiǎn)而言之,我會(huì)給出幾種可用的場(chǎng)景,需要你重新思考 Flexbox 模型的使用。
順便說(shuō)一句,本人是 Flexbox 的忠實(shí)粉絲,曾寫過(guò)一篇 Flexbox 詳解 ,可以算得上最全面的文章了。
當(dāng)然,我們應(yīng)該了解該如何使用 Flexbox,哪些情況不應(yīng)該使用,以及用在哪些地方最好。
以下是我選出的最不應(yīng)該是使用 Flexbox 的3種場(chǎng)景,并附帶原因。
1. 把Flexbox當(dāng)作一個(gè)網(wǎng)格系統(tǒng)使用
長(zhǎng)久以來(lái),很多人(包括我自己)都在濫用 CSS 盒模型。
從復(fù)選框點(diǎn)擊 hack 到“純 CSS 圖形”,我們似乎沉浸在各種奇淫巧技中 —— 各種讓人覺(jué)得高大上或精通的技巧。
我并不反對(duì)這樣做,但其實(shí)我們曲解了 CSS 規(guī)范,不是嗎?
我們并沒(méi)有將它們用在應(yīng)該用的地方 —— 主要原因之一是可以做,之二是不得不做。有時(shí)候僅僅是出于興趣(我覺(jué)得我屬于這種)。
也就是說(shuō),如果你選擇在布局中將 Flexbox 模型當(dāng)作網(wǎng)格系統(tǒng)使用,那么就算曲解了規(guī)范。
還能不能開(kāi)心的玩耍了?
你當(dāng)然可以用,但就像濫用 CSS 盒模型。
其設(shè)計(jì)初衷并不是完備的網(wǎng)格系統(tǒng)。盡管你可以任意使用 Flexbox 模型,當(dāng)然本人也曾瞎用,但其初衷不改。
網(wǎng)格布局 —— 在 2017 年火了,因?yàn)樗兄髁鳛g覽器都開(kāi)始支持。
可以在布局中將 Flexbox 作為唯一的網(wǎng)格系統(tǒng)使用嗎?
額!當(dāng)然不可以。
為什么?
如果僅僅是為了一個(gè)怎么復(fù)雜的布局,或簡(jiǎn)單的為了移動(dòng)端而重構(gòu)布局,確實(shí)有這種可能。
其實(shí)你可以擺脫這種想法的,雖然曾經(jīng)我試過(guò)只用 Flexbox 就可以完成復(fù)雜的布局 —— 僅僅是因?yàn)榭梢宰觯⑻剿?Flexbox 的可能性。
有什么注意事項(xiàng)嗎?
有一點(diǎn)你一定要記住。
如果你不得不兼容老版本的 IE 瀏覽器(它們還能支持些什么好功能么?),那會(huì)有一個(gè)大問(wèn)題,因?yàn)橛脩羰裁炊伎床坏?—— 任何東西都不會(huì)顯示。
但是,如果你在這些瀏覽器上使用 Flexbox 模型作為漸進(jìn)增強(qiáng),你的備用方案可能是表格布局,那么老版本 IE 用戶能正常使用。
Flexbox 也支持一些真正的 網(wǎng)格系統(tǒng) 才有的標(biāo)準(zhǔn)特性 —— 那些特性真的很棒。
盡管它還不太“標(biāo)準(zhǔn)”。此處的標(biāo)準(zhǔn)指的是就像圣杯布局那樣的常用。所以禁止將其作為一個(gè)完整的網(wǎng)格系統(tǒng)使用。
后面會(huì)繼續(xù)討論。
2. 完全控制其視覺(jué)位置
能力越大責(zé)任越大 ...然后濫用! (我加的).
網(wǎng)格布局最棒的特點(diǎn)之一就是無(wú)需考慮 html 源碼的順序而可以自由的指定內(nèi)容的顯示位置。
難道 Flexbox 模型沒(méi)有順序?qū)傩悦?
其實(shí)是有的。
但貓有四條腿,而人類只有兩條。PS:此處的意思是,畢竟還是有區(qū)別,不能同等對(duì)待不同的事物,即使外觀類似.
上面的貓星人很帥,但即使套上了西裝,也還不是人類!毫無(wú)疑問(wèn),只有人才能算人類。
這就跟通過(guò)順序?qū)傩詫?shí)現(xiàn)“排序”的 Flexbox 一樣。
僅適用于簡(jiǎn)單的重排場(chǎng)景,如下:
flexbox重排之前
flexbox重排之后
但是,它仍是基于元素的 html 源碼順序的。
所以,其實(shí)還是沒(méi)有脫離“貓人”的本質(zhì)。
其對(duì)源碼順序的處理與 CSS 網(wǎng)格布局完全不同。網(wǎng)格布局是另一個(gè)話題,這里不會(huì)詳細(xì)討論。
3. 多列布局
我覺(jué)得應(yīng)該不會(huì)有很多人會(huì)將 Flexbox 模型用來(lái)干這個(gè),值得一提的是,除了Flexbox之外,CSS3 還提供其他增強(qiáng)布局方式 —— Flexbox 只是恰巧也能用來(lái)完成類似的功能。
如果你想這樣做,那么請(qǐng)考慮優(yōu)先使用 CSS3 已提供的合適的布局方式。
i. 排除特定形狀
如果你需要構(gòu)建復(fù)雜的布局,并想要讓內(nèi)容按自定義區(qū)域排版或要特定幾何形狀來(lái)包裹內(nèi)容,請(qǐng)使用正確的方法。雖然你可以將其包裹在 flex-item(彈性項(xiàng))中,但還是要使用正確的方法處理排除和內(nèi)容包裹。
ii. 實(shí)現(xiàn)多列
多列布局是 Indesign 等傳統(tǒng)桌面排版軟件的核心功能,當(dāng)某列調(diào)整大小或不能包含所有內(nèi)容時(shí),列內(nèi)的文本會(huì)自動(dòng)流入另一列。
如果你需要在你項(xiàng)目中實(shí)現(xiàn)這個(gè)功能,CSS3 多列布局方式可以直接實(shí)現(xiàn)。
所以,啰嗦一句,請(qǐng)使用正確的方式來(lái)實(shí)現(xiàn)此功能。
可以讓多列布局的某列也同時(shí)具有 flex-item(彈性項(xiàng))特性么?我沒(méi)有玩過(guò) —— 不確定。
總而言之,F(xiàn)lexbox 還是很棒的!真的很有用。
非常有必要深入了解它,了解他們應(yīng)該在何時(shí)何處使用。
對(duì)于 Flexbox,其最大的優(yōu)勢(shì)是可在整體頁(yè)面中為獨(dú)立部分的自由布局。
覺(jué)得不錯(cuò)?
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/114464.html
摘要:技術(shù)前端布局推進(jìn)劑間距規(guī)范化利用變量實(shí)現(xiàn)令人震驚的懸浮效果很棒,但有些情況不適用布局說(shuō)可能是最全的圖片版學(xué)習(xí)網(wǎng)格布局使用的九大誤區(qū)圖解布局布局揭秘和中新增功能探索版本迭代論基礎(chǔ)談?wù)雇麑?duì)比探究繪圖中撤銷功能的實(shí)現(xiàn)方式即將更改的生命周期幾道高 技術(shù) CSS 前端布局推進(jìn)劑 - 間距規(guī)范化 利用CSS變量實(shí)現(xiàn)令人震驚的懸浮效果 Flexbox 很棒,但有些情況不適用 CSS布局說(shuō)——可能是最...
摘要:技術(shù)前端布局推進(jìn)劑間距規(guī)范化利用變量實(shí)現(xiàn)令人震驚的懸浮效果很棒,但有些情況不適用布局說(shuō)可能是最全的圖片版學(xué)習(xí)網(wǎng)格布局使用的九大誤區(qū)圖解布局布局揭秘和中新增功能探索版本迭代論基礎(chǔ)談?wù)雇麑?duì)比探究繪圖中撤銷功能的實(shí)現(xiàn)方式即將更改的生命周期幾道高 技術(shù) CSS 前端布局推進(jìn)劑 - 間距規(guī)范化 利用CSS變量實(shí)現(xiàn)令人震驚的懸浮效果 Flexbox 很棒,但有些情況不適用 CSS布局說(shuō)——可能是最...
摘要:第一個(gè)主流的預(yù)處理器是年發(fā)布的,它提供了一個(gè)新的更簡(jiǎn)潔的語(yǔ)法縮進(jìn)代替大括號(hào),沒(méi)有分號(hào)等等,同時(shí)增加了一些缺失的高級(jí)特性,像變量工具方法還有計(jì)算。 showImg(https://segmentfault.com/img/bV5u5I?w=533&h=300); 簡(jiǎn)評(píng):CSS 是一門入門比較簡(jiǎn)單,但真正使用起來(lái)又很困難的語(yǔ)言(有些人認(rèn)為它不應(yīng)該稱為一門語(yǔ)言)。CSS 看起來(lái)凌亂復(fù)雜,其實(shí)...
摘要:第一個(gè)主流的預(yù)處理器是年發(fā)布的,它提供了一個(gè)新的更簡(jiǎn)潔的語(yǔ)法縮進(jìn)代替大括號(hào),沒(méi)有分號(hào)等等,同時(shí)增加了一些缺失的高級(jí)特性,像變量工具方法還有計(jì)算。 英文:https://medium.com/actualize-...編譯:繆斯 showImg(https://segmentfault.com/img/bV3vCJ?w=1129&h=735); CSS一直被web開(kāi)發(fā)者認(rèn)為是最簡(jiǎn)單也是最...
閱讀 2818·2021-10-26 09:48
閱讀 1684·2021-09-22 15:22
閱讀 4062·2021-09-22 15:05
閱讀 621·2021-09-06 15:02
閱讀 2612·2019-08-30 15:52
閱讀 2118·2019-08-29 18:38
閱讀 2763·2019-08-28 18:05
閱讀 2336·2019-08-26 13:55