CSS - 布局 - 支持舊版瀏覽器

你想使用的特性的支持如何橡疼?

在 MDN 上乔妈,我們?cè)诒M力讓這個(gè)流程變得容易——在每個(gè)詳述 CSS 屬性的頁(yè)面上提供瀏覽器的兼容性信息妻顶。

另一個(gè)流行的查明一個(gè)特性有多受到支持的方式是Can I Use網(wǎng)站魔策。

支持不意味著“看起來(lái)一樣”

一個(gè)網(wǎng)站可能不會(huì)在所有瀏覽器上看起來(lái)都一樣匈子,因?yàn)槟愕囊恍┯脩魧?huì)是在一部手機(jī)上,而另一些用戶是在桌面大屏幕上瀏覽你的網(wǎng)站闯袒;類似地虎敦,你的一些用戶會(huì)是使用舊版瀏覽器的,而另外一些是最新版政敢;你的一些用戶可能是在聆聽(tīng)由屏幕閱讀器朗讀的你的內(nèi)容其徙,或者已經(jīng)放大了頁(yè)面來(lái)讀到內(nèi)容。支持所有人意味著提供保守設(shè)計(jì)版本的你的內(nèi)容喷户,這樣在現(xiàn)代瀏覽器上唾那,它會(huì)看起來(lái)很棒,而對(duì)于舊瀏覽器用戶而言仍然以最低限度可用褪尝。

在 CSS 中構(gòu)建回滾

示例:

* {box-sizing: border-box;}

.wrapper {
  background-color: rgb(79,185,227);
  padding: 10px;
  max-width: 400px;
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
}

.item {
  float: left;
  border-radius: 5px;
  background-color: rgb(207,232,220);
  padding: 1em;
}

代碼解析:
我們已經(jīng)浮動(dòng)了三個(gè)<div>闹获,所以它們顯示在了一行中。任何使用不支持 CSS 網(wǎng)格布局的瀏覽器的人將會(huì)看到以浮動(dòng)布局實(shí)現(xiàn)的一列盒子恼五。一個(gè)成為了網(wǎng)格物件的浮動(dòng)物件失去了浮動(dòng)的動(dòng)作昌罩,就是說(shuō)通過(guò)把 wrapper 變成網(wǎng)格容器,浮動(dòng)物件變成了網(wǎng)格物件灾馒。如果瀏覽器器支持網(wǎng)格布局茎用,它會(huì)顯示網(wǎng)格視圖,否則它會(huì)忽略display: grid相關(guān)的屬性睬罗,使用浮動(dòng)布局轨功。
clear屬性也在被清除的物件變?yōu)榫W(wǎng)格物件的時(shí)候失效,所以你應(yīng)該在一個(gè)會(huì)變成網(wǎng)格布局的布局上容达,加上被清除的尾部古涧。

回滾方式

  • floatclear
    如上所示花盐,如果浮動(dòng)和清除的物件變成了彈性或網(wǎng)格物件羡滑,浮動(dòng)和清除屬性不再影響布局菇爪。

  • display: inline-block
    這種方式能被用來(lái)建立列布局,如果一個(gè)物件被設(shè)為display: inline-block柒昏,但是之后變成了彈性或者網(wǎng)格物件凳宙,inline-block 行為將會(huì)被忽略。

  • display: table
    建立 CSS 表格時(shí)可以被用作回滾职祷。被設(shè)為 CSS 表格布局的物件將會(huì)在它們變?yōu)閺椥曰蛘呔W(wǎng)格物件的時(shí)候不再表現(xiàn)出這種行為氏涩。重要的是,被建立起來(lái)用于修復(fù)表格結(jié)構(gòu)的匿名盒子沒(méi)有被建立起來(lái)有梆。

  • 多列布局 Multiple-column Layout
    對(duì)于某些布局是尖,你能用multi-col作為回滾。如果你的容器有任何一個(gè)column-*屬性被定義泥耀,之后變成了網(wǎng)格容器饺汹,那么多列行為不會(huì)實(shí)現(xiàn)。

  • 作為網(wǎng)格的回滾的彈性盒
    彈性盒由于受到了 IE10 和 IE11 的支持爆袍,比網(wǎng)格有著更好的瀏覽器支持首繁。不過(guò),在這節(jié)課的稍后部分陨囊,你一定要看下舊瀏覽器對(duì)彈性盒相當(dāng)參差不齊而且令人困惑的支持的相關(guān)信息。如果你把彈性容器做成了網(wǎng)格容器夹攒,任何應(yīng)用到子元素的flex屬性都會(huì)被忽略蜘醋。

對(duì)于許多在舊瀏覽器中微調(diào)的布局來(lái)說(shuō),你可能會(huì)發(fā)現(xiàn)你能用這種方式使用 CSS咏尝,給訪客親切的體驗(yàn)压语。我們加入了一個(gè)更簡(jiǎn)單的基于舊的和受到良好支持技術(shù)的布局,然后用新一些的 CSS 建立一個(gè)可以由 90% 的用戶看到的布局编检。但是存在這樣的情況:回滾代碼會(huì)需要包含新瀏覽器也能理解的東西胎食;舉例來(lái)說(shuō)就是,我們要往我們的浮動(dòng)物件中加入百分?jǐn)?shù)寬度允懂,從而讓列看起來(lái)更像網(wǎng)格厕怜,拉伸以充滿容器。

特性查詢 @supports

特性查詢?cè)试S你測(cè)試一個(gè)瀏覽器是否支持任何特定的一個(gè) CSS 特性蕾总。這就是說(shuō)粥航,你可以寫(xiě)一些面向不支持某項(xiàng)特性的瀏覽器的 CSS,然后檢查以了解瀏覽器是否支持生百,如果支持的話就可以加進(jìn)你的復(fù)雜布局了递雀。

彈性盒的舊版本

在舊版瀏覽器中,你可以找到彈性盒規(guī)范的舊有修訂版本蚀浆。在編寫(xiě)這篇文章的時(shí)候缀程,這大多數(shù)是 IE10 的問(wèn)題搜吧,它在彈性盒上使用了-ms-前綴。這也意味著現(xiàn)在還存在著一些過(guò)時(shí)的文章和教程杨凑,這篇有用的指導(dǎo)幫助你分辨你看到的信息赎败;如果你需要在很舊的瀏覽器中需要 flex 支持的話,它也會(huì)幫到你蠢甲。

IE10 和 IE11 的帶前綴版的網(wǎng)格

CSS 網(wǎng)格規(guī)范最初成形于 IE10僵刮,也就是說(shuō)盡管 IE10 和 IE11 不支持現(xiàn)代的網(wǎng)格,雖然這種網(wǎng)格和本站記載的現(xiàn)代布局不同鹦牛,它們還是有一個(gè)很堪用的網(wǎng)格布局版本搞糕。IE10 和 IE11 的實(shí)現(xiàn)是以-ms-為前綴的,也就是說(shuō)你可以給這兩個(gè)瀏覽器用曼追,而在非微軟瀏覽器上窍仰,這種屬性會(huì)被忽略。不過(guò) Edge 仍然能理解舊語(yǔ)法礼殊,所以小心點(diǎn)驹吮,讓每個(gè)東西都安全地在你的現(xiàn)代網(wǎng)格 CSS 中覆寫(xiě)。

網(wǎng)格布局漸進(jìn)增強(qiáng)指導(dǎo)能幫你理解 IE 版的網(wǎng)格晶伦,我們?cè)谶@節(jié)課的末尾加入了一些額外的有用的鏈接碟狞。不過(guò),除非你有很多使用舊版 IE 的訪客婚陪,你可能發(fā)現(xiàn)專注于建立一個(gè)由所有不支持的瀏覽器共用的回滾版本是一個(gè)更好的選擇族沃。

測(cè)試舊瀏覽

由于大多數(shù)瀏覽器都支持彈性盒和網(wǎng)格,測(cè)試舊瀏覽器想想就很難泌参。一種方式是使用在線的測(cè)試工具脆淹,例如 Sauce Labs,在跨瀏覽器測(cè)試模塊里有詳細(xì)說(shuō)明沽一。

你也可以下載安裝虛擬機(jī)盖溺,在你的電腦的容器環(huán)境中運(yùn)行舊版瀏覽器。能夠使用舊版 IE 是很有用的铣缠,為此烘嘱,微軟已經(jīng)制作了一些可以免費(fèi)下載的虛擬機(jī)。這些對(duì) Mac攘残、Windows 和 Linux 操作系統(tǒng)都是可以用的拙友,所以即使你沒(méi)有 Windows 電腦,這也是一個(gè)測(cè)試舊的和現(xiàn)代 Windows 瀏覽器的絕佳辦法歼郭。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末遗契,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子病曾,更是在濱河造成了極大的恐慌牍蜂,老刑警劉巖漾根,帶你破解...
    沈念sama閱讀 218,122評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異鲫竞,居然都是意外死亡辐怕,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門从绘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)寄疏,“玉大人,你說(shuō)我怎么就攤上這事僵井∩陆兀” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,491評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵批什,是天一觀的道長(zhǎng)农曲。 經(jīng)常有香客問(wèn)我,道長(zhǎng)驻债,這世上最難降的妖魔是什么乳规? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,636評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮合呐,結(jié)果婚禮上暮的,老公的妹妹穿的比我還像新娘。我一直安慰自己合砂,他們只是感情好青扔,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,676評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著翩伪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谈息。 梳的紋絲不亂的頭發(fā)上缘屹,一...
    開(kāi)封第一講書(shū)人閱讀 51,541評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音侠仇,去河邊找鬼轻姿。 笑死,一個(gè)胖子當(dāng)著我的面吹牛逻炊,可吹牛的內(nèi)容都是我干的互亮。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼余素,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼豹休!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起桨吊,我...
    開(kāi)封第一講書(shū)人閱讀 39,211評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤威根,失蹤者是張志新(化名)和其女友劉穎凤巨,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體洛搀,經(jīng)...
    沈念sama閱讀 45,655評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡敢茁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,846評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了留美。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片彰檬。...
    茶點(diǎn)故事閱讀 39,965評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谎砾,靈堂內(nèi)的尸體忽然破棺而出逢倍,到底是詐尸還是另有隱情,我是刑警寧澤棺榔,帶...
    沈念sama閱讀 35,684評(píng)論 5 347
  • 正文 年R本政府宣布瓶堕,位于F島的核電站,受9級(jí)特大地震影響症歇,放射性物質(zhì)發(fā)生泄漏郎笆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,295評(píng)論 3 329
  • 文/蒙蒙 一忘晤、第九天 我趴在偏房一處隱蔽的房頂上張望宛蚓。 院中可真熱鬧,春花似錦设塔、人聲如沸凄吏。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,894評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)痕钢。三九已至,卻和暖如春序六,著一層夾襖步出監(jiān)牢的瞬間任连,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,012評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工例诀, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留随抠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,126評(píng)論 3 370
  • 正文 我出身青樓繁涂,卻偏偏與公主長(zhǎng)得像拱她,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子扔罪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,914評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容