flex布局常用屬性 flex彈性布局樣式字體如何實(shí)現(xiàn)
夕逆IT
- 數(shù)據(jù)庫
- 2023-08-13
- 94

這篇文章給大家聊聊關(guān)于flex布局常用屬性,以及flex彈性布局樣式字體如何實(shí)現(xiàn)對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站哦。css中基本布局css中基本的布局...
這篇文章給大家聊聊關(guān)于flex布局常用屬性,以及flex彈性布局樣式字體如何實(shí)現(xiàn)對(duì)應(yīng)的知識(shí)點(diǎn),希望對(duì)各位有所幫助,不要忘了收藏本站哦。
css中基本布局
css中基本的布局方式有以下幾種:
1、靜態(tài)布局
最傳統(tǒng)的布局方式,網(wǎng)頁中所有尺寸都是由px作為單位,設(shè)置了min-width,如果寬度小于就會(huì)出現(xiàn)滾動(dòng)條,如果大于這個(gè)寬度則內(nèi)容居中外加背景
2、自適應(yīng)布局
可以看成是不同屏幕下由多個(gè)靜態(tài)布局組成的。自適應(yīng)布局是為不同的屏幕分辨率分別定義不同的布局。改變屏幕分辨率可以切換不同的靜態(tài)布局(頁面元素位置可能發(fā)生改變),但在每個(gè)靜態(tài)布局中,頁面元素不隨窗口大小的調(diào)整發(fā)生變化。
自適應(yīng)布局頁面里面元素的位置會(huì)變化,很好的解決了流式布局中的大屏空間利用率不高弊端。屏幕分辨率變化時(shí),頁面里面元素的位置會(huì)變化而大小不會(huì)變化。
3、流式布局(又別名百分比布局%)
網(wǎng)頁中主要的劃分區(qū)域的尺寸使用百分?jǐn)?shù)(搭配min-*、max-*屬性使用),分別為不同的屏幕設(shè)置布局格式,當(dāng)屏幕大小改變時(shí),會(huì)出現(xiàn)不同的布局。
意思就是在這個(gè)屏幕下這個(gè)元素塊在這個(gè)地方,但是在那個(gè)屏幕下,這個(gè)元素塊又會(huì)出現(xiàn)在那個(gè)地方。只是布局改變,元素不變??梢钥闯墒遣煌聊幌掠啥鄠€(gè)靜態(tài)布局組成的。
4、響應(yīng)式布局:媒體查詢
通過響應(yīng)式設(shè)計(jì)能使網(wǎng)站在手機(jī)和平板電腦上有更好的瀏覽閱讀體驗(yàn)。屏幕尺寸不一樣展示給用戶的網(wǎng)頁內(nèi)容也不一樣.利用媒體查詢可以檢測(cè)到屏幕的尺寸(主要檢測(cè)寬度),并設(shè)置不同的CSS樣式,就可以實(shí)現(xiàn)響應(yīng)式的布局。主要依靠是css的媒體查詢。
每個(gè)屏幕分辨率下面會(huì)有一個(gè)布局樣式,即元素位置和大小都會(huì)變。
5、彈性布局(rem/emflex布局)
html中flex布局在什么時(shí)候用
flex布局在使用彈性布局的時(shí)候可以使用。
flex布局怎么讓盒子垂直水平居中
我們這里分為兩種形式,一種是定元素寬高的情況下,另一種是不定元素寬高的情況下。
定元素寬高的情況下
a.絕對(duì)定位+負(fù)margin
利用絕對(duì)定位absolute和margin完成元素居中,具體例子如下:
給父元素添加相對(duì)定位,子元素添加絕對(duì)定位,利用margin負(fù)子元素寬高的一半,實(shí)現(xiàn)元素的居中,這種方法不常用,
優(yōu)點(diǎn):好理解,兼容性好
缺點(diǎn):必需給定子元素的寬高
b.絕對(duì)定位+margin:auto
利用absolute絕對(duì)定位和margin:auto自動(dòng)居中方法完成元素的居中,例子如下:
與上例子一樣給父元素加相對(duì)定位,子元素添加絕對(duì)定位,在設(shè)置元素的左、右、上、下位置為零,再利用自動(dòng)居中對(duì)齊的方法margin:auto,完成元素的垂直水平居中,這種方法常用
優(yōu)點(diǎn):簡(jiǎn)單易懂,兼容性好
缺點(diǎn):代碼量大,占內(nèi)存
c.table-cell
利用css的table屬性,完成元素的垂直居中,margin完成元素的水平居中,例子如下
設(shè)置父元素的元素類型為table-cell類型,設(shè)置表格的垂直對(duì)齊方式為居中,再給子元素添加margin:0auto完成元素的垂直水平居中,這種方法不常用,
優(yōu)點(diǎn):兼容性好
缺點(diǎn):出來的太早,現(xiàn)在都不流行用了
d.translate
利用2d位移來完成元素的居中,例子如下:
只需操作子元素,給子元素添加transform屬性,利用2d位移translate,分別向左向右移動(dòng)父元素寬高度減自身寬高度的一半,完成元素的垂直水平對(duì)齊,這種方法不常用,
優(yōu)點(diǎn):代碼簡(jiǎn)單
缺點(diǎn):我們必須給定子元素的寬和高,否則無法完成元素居中
不定元素寬高的情況下
line-heght
給元素設(shè)置line-heght,也就是行高,完成元素的居中,具體例子如下:
我們給子元素設(shè)置行高,完成元素的垂直居中,再然后利用文本水平對(duì)齊方式text-align方法,完成水平居中,這中方法是最簡(jiǎn)單的,也是我們經(jīng)常用的
優(yōu)點(diǎn):寫起來簡(jiǎn)單,兼容性好
缺點(diǎn):只適合單行文本的居中,多行文本不支持
b.絕對(duì)定位加translate
之前我們說過一個(gè)利用translate完成元素垂直水平的,這里就是在那種方法上的進(jìn)一步改進(jìn),也就是可以,不用設(shè)置寬高,也能實(shí)現(xiàn)元素的垂直水平居中,用translate加絕對(duì)定位完成元素的居中,例子如下:
在這里,還有不同就是,我們translate里面可以直接用百分比完成位移,從而實(shí)現(xiàn)元素的垂直水平居中,這種方法常用(但是我不常用)
優(yōu)點(diǎn):代碼簡(jiǎn)單,兼容性好
缺點(diǎn):無
c.flex
flex形成彈性盒,我們利用彈性盒可以做很多事情,其中最主要的還是布局,當(dāng)然這里我們就不詳細(xì)說了,我們來談?wù)勅绾问挂粋€(gè)元素垂直水平居中,例子如下:
我們讓父元素形成彈性盒子,再然后設(shè)置主軸對(duì)齊方式為居中對(duì)齊,側(cè)軸對(duì)齊方式為居中對(duì)齊從而完成元素的垂直水平居中,這種方法經(jīng)常用,
優(yōu)點(diǎn):代碼簡(jiǎn)單易懂
缺點(diǎn):PC端兼容性不好
d.flex+margin:auto
這種方法與上面那種不同的是,這里沒用到彈性盒子里面的屬性,而是用margin直接完成元素的居中對(duì)齊,例子如下:
讓父元素形成彈性盒子,再然后給子元素添加margin:auto,完成元素的垂直水平居中,這種方法也常用,
CSS3中Flex彈性布局該如何靈活運(yùn)用
前端愛好者,學(xué)習(xí)者可關(guān)注我,帶你一起學(xué)習(xí)前端。
其實(shí)如何靈活應(yīng)用Flex布局,那就要先知道它如何布局以及有哪些屬性,說白了就是在一個(gè)容器呢把它的子項(xiàng)目均勻的排列在一起,然后再用屬性指定容器內(nèi)子項(xiàng)目的詳細(xì)排列方式。
網(wǎng)頁布局(layout)是CSS的一個(gè)重點(diǎn)應(yīng)用。Flex布局,可以簡(jiǎn)便、完整、響應(yīng)式地實(shí)現(xiàn)各種頁面布局。目前,它已經(jīng)得到了所有瀏覽器的支持,這意味著,現(xiàn)在就能很安全地使用這項(xiàng)功能。
基本概念Flex是FlexibleBox的縮寫,意為”彈性布局”,用來為盒狀模型提供最大的靈活性。
任何一個(gè)容器都可以指定為Flex布局。
采用Flex布局的元素,稱為Flex容器(flexcontainer),簡(jiǎn)稱”容器”。它的所有子元素自動(dòng)成為容器成員,稱為Flex項(xiàng)目(flexitem),簡(jiǎn)稱”項(xiàng)目”。
容器屬性1、flex-direction屬性
flex-direction:row|row-reverse|column|column-reverse;
row(默認(rèn)值):主軸為水平方向,起點(diǎn)在左端。row-reverse:主軸為水平方向,起點(diǎn)在右端。column:主軸為垂直方向,起點(diǎn)在上沿。column-reverse:主軸為垂直方向,起點(diǎn)在下沿。2、flex-wrap屬性
flex-wrap:nowrap|wrap|wrap-reverse;
nowrap(默認(rèn)):不換行。
wrap:換行,第一行在上方。
wrap-reverse:換行,第一行在下方。
3、flex-flow屬性
flex-flow:<flex-direction><flex-wrap>;
flex-flow屬性是flex-direction屬性和flex-wrap屬性的簡(jiǎn)寫形式,默認(rèn)值為rownowrap。
4、justify-content屬性
justify-content屬性定義了項(xiàng)目在主軸上的對(duì)齊方式。
justify-content:flex-start|flex-end|center|space-between|space-around;
flex-start(默認(rèn)值):左對(duì)齊flex-end:右對(duì)齊center:居中space-between:兩端對(duì)齊,項(xiàng)目之間的間隔都相等。space-around:每個(gè)項(xiàng)目?jī)蓚?cè)的間隔相等。所以,項(xiàng)目之間的間隔比項(xiàng)目與邊框的間隔大一倍。5、align-items屬性
align-items屬性定義項(xiàng)目在交叉軸上如何對(duì)齊。
align-items:flex-start|flex-end|center|baseline|stretch;
flex-start:交叉軸的起點(diǎn)對(duì)齊。flex-end:交叉軸的終點(diǎn)對(duì)齊。center:交叉軸的中點(diǎn)對(duì)齊。baseline:項(xiàng)目的第一行文字的基線對(duì)齊。stretch(默認(rèn)值):如果項(xiàng)目未設(shè)置高度或設(shè)為auto,將占滿整個(gè)容器的高度。6、align-content屬性
align-content屬性定義了多根軸線的對(duì)齊方式。如果項(xiàng)目只有一根軸線,該屬性不起作用。
align-content:flex-start|flex-end|center|space-between|space-around|stretch;
flex-start:與交叉軸的起點(diǎn)對(duì)齊。flex-end:與交叉軸的終點(diǎn)對(duì)齊。center:與交叉軸的中點(diǎn)對(duì)齊。space-between:與交叉軸兩端對(duì)齊,軸線之間的間隔平均分布。space-around:每根軸線兩側(cè)的間隔都相等。所以,軸線之間的間隔比軸線與邊框的間隔大一倍。stretch(默認(rèn)值):軸線占滿整個(gè)交叉軸。項(xiàng)目的屬性1、order屬性
order屬性定義項(xiàng)目的排列順序。數(shù)值越小,排列越靠前,默認(rèn)為0。
order:<integer>;
2、flex-grow屬性
flex-grow屬性定義項(xiàng)目的放大比例,默認(rèn)為0,即如果存在剩余空間,也不放大。
flex-grow:<number>;/*default0*
3、flex-shrink屬性
flex-shrink屬性定義了項(xiàng)目的縮小比例,默認(rèn)為1,即如果空間不足,該項(xiàng)目將縮小。
flex-shrink:<number>;/*default1*/
4、flex-basis屬性
flex-basis屬性定義了在分配多余空間之前,項(xiàng)目占據(jù)的主軸空間(mainsize)。瀏覽器根據(jù)這個(gè)屬性,計(jì)算主軸是否有多余空間。它的默認(rèn)值為auto,即項(xiàng)目的本來大小。
flex-basis:<length>|auto;/*defaultauto*/
5、flex屬性
flex屬性是flex-grow,flex-shrink和flex-basis的簡(jiǎn)寫,默認(rèn)值為01auto。后兩個(gè)屬性可選。
flex:none|[<'flex-grow'><'flex-shrink'>?||<'flex-basis'>]
6、align-self屬性
align-self屬性允許單個(gè)項(xiàng)目有與其他項(xiàng)目不一樣的對(duì)齊方式,可覆蓋align-items屬性。默認(rèn)值為auto,表示繼承父元素的align-items屬性,如果沒有父元素,則等同于stretch。
align-self:auto|flex-start|flex-end|center|baseline|stretch;
更多的Flex布局應(yīng)用可到W3C菜鳥教程查看,或者去張大神、阮一峰的博客查看,詳細(xì)的很。
更多前端知識(shí)關(guān)注我,了解更多簡(jiǎn)述五種布局的特點(diǎn)和運(yùn)用場(chǎng)合
框架布局:所有控件排列在左上角,用于制作特別的控件,初學(xué)者使用較少;
線性布局:控件可以按照水平或者垂直方向進(jìn)行排列,控件排列方式簡(jiǎn)單;
絕對(duì)布局:可以指定控件擺放的位置,雖然擺放控件很容易,但是不適合多種分辨率和尺寸的屏幕,需要慎用;
相對(duì)布局:能夠設(shè)定控件之間的相對(duì)關(guān)系、控件與父容器的相對(duì)關(guān)系,控件排列方式比較靈活,是常用的布局之一;
表格布局:通過配合使用TableRow可以將控件以表格形式排列。
不能作為flex子元素的屬性有哪些
有float、clear和vertical-align屬性,因?yàn)楦冈豧lex布局,子元素的這些屬性不生效。
flex布局常用屬性的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于flex彈性布局樣式字體如何實(shí)現(xiàn)、flex布局常用屬性的信息別忘了在本站進(jìn)行查找哦。
本文鏈接:http://xinin56.com/su/2439.html