91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解CSS3網格的三個新特性

發布時間:2021-10-08 10:51:10 來源:億速云 閱讀:112 作者:iii 欄目:web開發

本篇內容主要講解“如何理解CSS3網格的三個新特性”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何理解CSS3網格的三個新特性”吧!

一、網格簡史

曾幾何時,我們的布局是一團糟。表格和框架是用于創建多列布局的主要工具。雖然他們能完成工作(但其實非常糟糕)。

把目光投向今天。HTML和CSS已經變得非常復雜,Web設計的知名度和復雜度與日俱增。我們曾經使用的舊的布局方法顯然已經out了。然而,一個歷史遺留問題浮出水面:多列布局。

更復雜的是,我們的頁面寬度不再是靜態的。響應式大行其道,所以我們傾向于基于百分比的列寬。基于固定960像素寬的簡單網格已經行不通——我們需要流體網格。

CSS2規范中用浮動解決列的方法存在一個問題。為了防止父元素破環你的布局,我們需要添加clearfix。通過這種方法,來修正父元素的高度坍塌問題(浮動元素脫離標準流,父元素會認為浮動資源不存在)。我們大部分接受這種方法,但許多人仍然認為它是一種hack(奇技淫巧)。

通過inline-box的方法并不常見,但仍然存在。內聯元素會保持在一行,他們自然順序排列。當一行被占滿,后面的元素自然折到下一行。但因為他表現為文本特性,其行為類似文本。這意味著你必須避免HTML元素之間的空白元素(空格,tab,換行……)。Inline-block不是為這設計的,不且工作的并不十分如意。

在這兩種方法中,浮動的方法更可靠。這就是為什么它更流行,排在第一位。然而,創建多列后,我們發現需要再次壓縮內容,因為我們需要一些填充距離。這就引出最終的問題:盒模型

盒模型是什么,簡單來說,一個元素的實際尺寸包括:高度/寬度+內邊距+邊的寬度。外邊據并不使盒子變大,僅僅在自己和其他元素之間增加空隙。所以設置寬度時,比如25%,其盒子的實際寬度比這大得多,這意味著在一行沒有足夠的空間放下四個元素。

這煩人的問題有不同的解決方案:負外邊距,嵌套元素——我知道的全部了。他們都需要額外的CSS或DOM元素,算作hack方法。讓我們面對現實,CSS2中沒有解決網格的好方法。

然而今天,CSS3提供很好的支持,規范增加了專門用于網格的幾個新特性。這些特性都有哪些?我們如何使用他們?讓我們看一看。

二、box-sizing: border-box

已經解決的問題之一是擴展盒模型的性質。通過設置box-sizing的值為border-box可以解決這個問題。通過減少內容寬度使邊和內邊距的距離也算到width屬性里。

HTML

代碼如下:

<div class="row">
 <div class="column">Col one</div>
 <div class="column">Col two</div>
 <div class="column">Col three</div>
 <div class="column">Col four</div>
</div>

CSS

代碼如下:

.row:after {
 clear: both;
 content: '';
 display: block;
}
.column {
 -webkit-box-sizing: border-box;
 -moz-box-sizing: border-box;
 box-sizing: border-box;
 
 float: left;
 min-height: 8em;
 overflow: hidden;
 padding: 2em;
 width: 25%;
}
.column:nth-child(1) { background-color: #9df5ba; }
.column:nth-child(2) { background-color: #9df5d7; }
.column:nth-child(3) { background-color: #9df5f5; }
.column:nth-child(4) { background-color: #9dd7f5; }


效果
如何理解CSS3網格的三個新特性

雖然這工作的很棒,但我們仍然需要使用浮動,我們仍然需要清除浮動。此外,我們我們只能使用內邊距作為元素的空間,外邊距不再起作用。這意味著在快元素之間沒有實際的空間,而是它的內容。雖然這對很多設計非常有用,但仍然覺得它是個小錯誤。

1.Firefox 1
2.Chrome 1
3.IE 8
4.Opera 7
5.Safari 3

三、width: calc(百分比 &ndash; 距離)

另一個偉大的選擇是使用calc()函數。他允許我們在不依賴JavaScript的情況下計算元素的真實寬度&mdash;&mdash;可以是不同的單位!

HTML

代碼如下:

<div class="row">
 <div class="column">Col one</div>
 <div class="column">Col two</div>
 <div class="column">Col three</div>
 <div class="column">Col four</div>
</div>


CSS

代碼如下:

.row { margin-left: -1em; }</p> <p>.row:after {
 clear: both;
 content: '';
 display: block;
}
.column {
 float: left;
 margin-left: 1em;
 min-height: 8em;
 padding: 1em;
 width: -webkit-calc(25% - 3em);
 width: -moz-calc(25% - 3em);
 width: calc(25% - 3em);
}
.column:nth-child(1) { background-color: #9df5ba; }
.column:nth-child(2) { background-color: #9df5d7; }
.column:nth-child(3) { background-color: #9df5f5; }
.column:nth-child(4) { background-color: #9dd7f5; }


效果:
如何理解CSS3網格的三個新特性

重新計算實際尺寸的能力是一個偉大的選擇,但不幸的的是,我們仍然需要浮動,我們也需要列的容器為負外邊距。同上,一個很棒的選擇,但仍然有些瑕疵。

1.Firefox 4
2.Chrome 19
3.IE 9
4.Opera ?
5.Safari 6 (appears to be a little buggy)

四、Flexbox

伸縮布局盒是有特定配置行為的元素&mdash;&mdash;有點像表格。這是真的嗎?是的沒錯。表格的行為實際上相當棒,因為它的顯示依據它的內容而變化。但現在已經不再使用表格布局,所以表格標簽不是一個選項。
起初,伸縮盒看起來有待年復雜。有很多很難理解的屬性,尤其像我這樣不擅用英語演講的人。幸運的是,Chirs Coyier寫了一個關于伸縮盒的偉大指導,我必須提到。
HTML

代碼如下:

<div class="row">
 <div class="column">Col one</div>
 <div class="column">Col two</div>
 <div class="column">Col three</div>
 <div class="column">Col four</div>
</div>


CSS

代碼如下:

.row {
   display: -webkit-flex;
   -webkit-flex-direction: row;
   -webkit-flex-wrap: nowrap;
   -webkit-justify-content: space-between;</p> <p>    display: flex;
   flex-direction: row;
   flex-wrap: nowrap;
   justify-content: space-between;
}
.column {
   margin: 0.5em;
   min-height: 8em;
   padding: 1em;
   width: 25%;
}
.column:nth-child(1) { background-color: #9df5ba; }
.column:nth-child(2) { background-color: #9df5d7; }
.column:nth-child(3) { background-color: #9df5f5; }
.column:nth-child(4) { background-color: #9dd7f5; }


效果:
如何理解CSS3網格的三個新特性

到此,相信大家對“如何理解CSS3網格的三個新特性”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

塔城市| 耿马| 琼海市| 宽甸| 蕉岭县| 麻城市| 绥棱县| 科技| 奉新县| 融水| 江北区| 乌兰察布市| 阿城市| 固始县| 开鲁县| 灵川县| 福清市| 青海省| 昌黎县| 万全县| 白山市| 汉阴县| 红原县| 巍山| 吴旗县| 安远县| 定安县| 佛山市| 老河口市| 天长市| 改则县| 广德县| 平遥县| 开阳县| 原平市| 麻栗坡县| 通榆县| 维西| 尚志市| 双牌县| 尖扎县|