<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

        關(guān)于CSS3中Flexbox布局的圖文代碼分享

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 18:51:50
        文檔

        關(guān)于CSS3中Flexbox布局的圖文代碼分享

        關(guān)于CSS3中Flexbox布局的圖文代碼分享:CSS3為我們提供了一種可伸縮的靈活的web頁面布局方式-flexbox布局,它具有很強(qiáng)大的功能,可以很輕松實(shí)現(xiàn)很多復(fù)雜布局,在它出現(xiàn)之前,我們經(jīng)常使用的布局方式是浮動(dòng)或者固定寬度+百分比來進(jìn)行布局,代碼量較大且難以理解。為了更好理解flexbox布局,這里
        推薦度:
        導(dǎo)讀關(guān)于CSS3中Flexbox布局的圖文代碼分享:CSS3為我們提供了一種可伸縮的靈活的web頁面布局方式-flexbox布局,它具有很強(qiáng)大的功能,可以很輕松實(shí)現(xiàn)很多復(fù)雜布局,在它出現(xiàn)之前,我們經(jīng)常使用的布局方式是浮動(dòng)或者固定寬度+百分比來進(jìn)行布局,代碼量較大且難以理解。為了更好理解flexbox布局,這里
        CSS3為我們提供了一種可伸縮的靈活的web頁面布局方式-flexbox布局,它具有很強(qiáng)大的功能,可以很輕松實(shí)現(xiàn)很多復(fù)雜布局,在它出現(xiàn)之前,我們經(jīng)常使用的布局方式是浮動(dòng)或者固定寬度+百分比來進(jìn)行布局,代碼量較大且難以理解。

        為了更好理解flexbox布局,這里首先要介紹幾個(gè)概念:

        如果所示:

        (1)主軸(側(cè)軸),flexbox布局里面將一個(gè)可伸縮容器按照水平和垂直方向分為主軸或側(cè)軸,如果你想讓這個(gè)容器中的可伸縮項(xiàng)目在水平方向上可伸縮展開,那么水平方向上就是主軸,垂直方向上是側(cè)軸,反之亦然;

        (2)主軸(側(cè)軸)長(zhǎng)度,當(dāng)確定了哪個(gè)是主軸哪個(gè)是側(cè)軸之后,在主軸方向上可伸縮容器的尺寸(寬或高)就被稱作主軸長(zhǎng)度,側(cè)軸方向上的容器尺寸(寬或高)就被稱作側(cè)軸長(zhǎng)度;

        (3)主軸(側(cè)軸)起點(diǎn),主軸(側(cè)軸)終點(diǎn),例如主軸方向是水平方向,通常在水平方向上網(wǎng)頁布局是從左向右的,那么可伸縮容器的左border就是主軸起點(diǎn),右border就是主軸終點(diǎn),側(cè)軸是在垂直方向,通常是從上到下的,所以上border就是側(cè)軸起點(diǎn),下border就是側(cè)軸終點(diǎn);

        (4)伸縮容器:如果要構(gòu)建一個(gè)可伸縮的盒子,這些可伸縮的項(xiàng)目必須要由一個(gè)display:flex的屬性的盒子包裹起來,這個(gè)盒子就叫做伸縮容器;

        (5)伸縮項(xiàng)目:包含在伸縮容器中需要進(jìn)行伸縮布局的元素被稱作伸縮項(xiàng)目;

        明確以上概念之后就可以來構(gòu)建flexbox布局了;

        第一步,構(gòu)建一個(gè)flexbox容器,并在容器中放置幾個(gè)可伸縮項(xiàng)目,如下:

        css代碼:

        .flex-container{
         display:flex;
         width:600px;
         height:230px;
         background-color: #ccc;
         }.flex-item{
         background-color:blue;
         width: 100px;
         margin: 5px; }

        HTML代碼:

        <p class="flex-container">
         <p class="flex-item ">A</p>
         <p class="flex-item ">B</p>
         <p class="flex-item ">A</p>
         <p class="flex-item ">B</p>
         </p>

        效果如下:

        其中四個(gè)可伸縮的項(xiàng)目在水平方向上被排列成了一行,同時(shí)可伸縮項(xiàng)目相左對(duì)齊;

        display:flex代表這個(gè)容器是一個(gè)可伸縮容器,還可以取值為inline-flex,兩者的區(qū)別在于前者將這個(gè)容器渲染為塊級(jí)元素,后者將其渲染為內(nèi)聯(lián)元素。

        這里有幾個(gè)默認(rèn)的屬性雖然沒有設(shè)置,但是默認(rèn)值確實(shí)起作用了,它們是:

        flex-direction屬性,它的取值為row,column,column-reverse,row-reverse,默認(rèn)值是row,表示在水平方向上展開可伸縮項(xiàng),如果取column代表在垂直方向上展開可伸縮項(xiàng)目,column-reverse,row-reverse代表相反方向,通俗講,flex-direction屬性就是用來定義主軸側(cè)軸方向的。給以上效果添加flex-direction:column效果如下:

        justify-content屬性,用來表示可伸縮項(xiàng)目在主軸方向上的對(duì)齊方式,可以取值為flex-start,flex-end,center,space-between,space-around,其中flex-start,flex-end,表示相對(duì)于主軸起點(diǎn)和終點(diǎn)對(duì)齊,center表示居中對(duì)齊,space-between表示兩端對(duì)齊并將剩余空間在主軸方向上進(jìn)行平均分配,space-around表示居中對(duì)齊然后在主軸方向上將剩余空間平均分配

        justify-content:space-between

        css代碼:

        .flex-container{
         display:flex;
         width:600px;
         height:230px;
         background-color: #ccc;
         justify-content: space-between;
         }.flex-item{
         background-color:blue;
         width: 100px;
         margin: 5px;
         }

        效果如下:

        可以看到它將各個(gè)可伸縮項(xiàng)目在主軸方向上兩端對(duì)齊并平分了剩余空間;

        justify-content:space-around

        css代碼:

        .flex-container{
         display:flex;
         width:600px;
         height:230px;
         background-color: #ccc;
         justify-content: space-around;
         }.flex-item{
         background-color:blue;
         width: 100px;
         margin: 5px;
         }

        效果如下:

        可以看到這個(gè)屬性讓可伸縮項(xiàng)目沿著主軸方向進(jìn)行了居中對(duì)齊并且均分了剩余空間;

        align-items屬性:該屬性是用來表示可伸縮項(xiàng)目在側(cè)軸方向上的對(duì)齊方式,可取的值有flex-start,flex-end,center,baseline,stretch,需要解釋的是baseline值,它是按照一個(gè)計(jì)算出來的基準(zhǔn)線然后讓這些項(xiàng)目沿這個(gè)基準(zhǔn)線對(duì)齊,基準(zhǔn)線的計(jì)算取決于可伸縮項(xiàng)目的尺寸及內(nèi)容,如下:

        align-items:baseline;

        css代碼:

        .flex-container{
         display:flex; 
         flex-direction: row;
         width:600px;
         height:230px;
         background-color: #ccc;
         justify-content: space-around;
         align-items:baseline;
         }
         .flex-item{
         background-color:blue;
         width: 100px;
         margin: 5px;; }
         .a{
         margin-top: 10px;
         height: 100px;
         }
         .b{
         margin-top: 20px;
         height: 150px;
         }
         .c{
         margin-top: 30px;
         height: 80px;
         }

        HTML代碼:

         <p class="flex-container">
         <p class="flex-item a">A</p>
         <p class="flex-item b">B</p>
         <p class="flex-item c">A</p>
         <p class="flex-item a">B</p>
         </p>

        效果如下:

        可以看到四個(gè)可伸縮項(xiàng)目在側(cè)軸方向上(垂直方向)高度不一,margin不一樣,但是最后都按照計(jì)算出來的一個(gè)基準(zhǔn)線對(duì)齊;

        align-items:stretch;

        這個(gè)是取值會(huì)讓可伸縮項(xiàng)目在側(cè)軸方向上進(jìn)行拉伸,前提是這些項(xiàng)目在側(cè)軸方向上沒有設(shè)置尺寸,否則會(huì)按照你設(shè)置的尺寸來渲染。

        css代碼:

        .flex-container{
         display:flex;
         flex-direction: row;
         width:600px;
         height:230px;
         background-color: #ccc;
         justify-content: space-around;
         align-items:stretch;
         }
         .flex-item{
         background-color:blue;
         width: 100px; /*height: 100px;*/
         margin: 5px;; }

        HTML代碼:

        <p class="flex-container">
         <p class="flex-item ">A</p>
         <p class="flex-item ">B</p>
         <p class="flex-item ">A</p>
         <p class="flex-item ">B</p>
         </p>

        效果如下:

        可以看到這些可伸縮項(xiàng)目在側(cè)軸方向上被拉伸了,因?yàn)樵诖怪狈较蛏蠜]有設(shè)置高度。

        到目前為止,我們所有的伸縮項(xiàng)目都是在一行或者一列上進(jìn)行的,并沒有進(jìn)行換行和換列,flex-wrap屬性表示是否支持換行或者換列,它有nowrap,wrap,wrap-reverse三個(gè)取值,nowrap是默認(rèn)值,表示不換行或者換列,wrap表示換行或者換列,wrap-reverse表示支持換行或者換列,但是會(huì)沿著相反方向進(jìn)行排列(如主軸是垂直方向換行后就按照先下后上的順序來排列伸縮項(xiàng))

        css代碼:

        .flex-container{
         display:flex;
         flex-direction: row;
         width:600px;
         height:230px;
         background-color: #ccc;
         justify-content: space-around;
         align-items:baseline;
         flex-wrap: wrap;
         }
         .flex-item{
         background-color:blue;
         width: 100px;
         height: 70px;
         margin: 5px;; }

        HTML代碼:

        <p class="flex-container">
         <p class="flex-item ">A</p>
         <p class="flex-item ">B</p>
         <p class="flex-item ">A</p>
         <p class="flex-item ">B</p>
         <p class="flex-item ">A</p>
         <p class="flex-item ">B</p>
         <p class="flex-item ">A</p>
         <p class="flex-item ">B</p></p>

        效果如下:

        可以看到伸縮項(xiàng)增多之后一行難以放下的時(shí)候會(huì)接著換行。wrap屬性保證換行后按照正常的從上到下順序排列

        align-content屬性用來表示換行之后各個(gè)伸縮行的對(duì)齊方式,它的取值有 stretch,flex-start,flex-end,center,space-between,space-around,意義和align-items屬性取值意義相同,上面我們將7個(gè)伸縮項(xiàng)目分成了兩行來排列,

        將css代碼添加align-content屬性,html代碼不變,如下:

        CSS代碼:

        .flex-container{
         display:flex;
         flex-direction: row;
         width:600px;
         height:230px;
         background-color: #ccc;
         justify-content: space-around;
         align-items:baseline;
         flex-wrap: wrap;
         align-content: space-between;
         }
         .flex-item{
         background-color:blue;
         width: 100px;
         height: 70px;
         margin: 5px;; }

        效果如下:

        可以看到兩個(gè)伸縮行在側(cè)軸(垂直)方向上兩端對(duì)齊了。

        flex-flow屬性,該屬性是個(gè)復(fù)屬性,它是flex-direction和flex-wrap的復(fù)合屬性,flex-direction:row;flex-wrap:wrap就等同于flex-flow:row wrap

        order屬性,該屬性用來表示伸縮項(xiàng)目的排列方式,正常情況下伸縮項(xiàng)目會(huì)按照主軸起點(diǎn)到主軸終點(diǎn)排列,遇到換行或者換列會(huì)按照從側(cè)軸起點(diǎn)到終點(diǎn)進(jìn)行排列(除非設(shè)置了某些 對(duì)齊方式的reverse),但是某些情況下這種默認(rèn)顯示順序不符合要求,可以采用給伸縮項(xiàng)添加order屬性來指定排列順序,默認(rèn)情況下,每個(gè)伸縮項(xiàng)的order都是0,改屬性可正可負(fù),越大的值會(huì)被排列在越后面。

        css代碼:

         .flex-container{
         display:flex;
         width:600px;
         height:230px;
         background-color: #ccc;
         justify-content: space-around;
         align-items:baseline; 
         flex-flow: row wrap;
         align-content: space-between;
        
         }
         .flex-item{
         background-color:blue;
         width: 100px;
         height: 70px;
         margin: 5px;; }
         .order1{
         order:1;
         }
         .order2{
         order:2;
         }

        HTML代碼:

        <p class="flex-container">
         <p class="flex-item order1">1</p>
         <p class="flex-item order2">2</p>
         <p class="flex-item ">3</p>
         <p class="flex-item ">4</p>
         <p class="flex-item ">5</p>
         <p class="flex-item ">6</p>
         <p class="flex-item ">7</p>
         <p class="flex-item ">8</p></p>

        效果如下:

        默認(rèn)情況下,會(huì)按照HTML的順序1-8進(jìn)行顯示,但是由于給p1和2設(shè)置了大于0的order,所以他們被放在了最后顯示(因?yàn)槠渌麤]有被設(shè)置的p的order默認(rèn)屬性都是0)

        margin屬性在flexbox布局中有很強(qiáng)大的作用,如果給某個(gè)可伸縮項(xiàng)設(shè)置某個(gè)方向上的margin為auto,那么這個(gè)可伸縮項(xiàng)就會(huì)在這個(gè)方向上占用該方向的剩余空間來作為自己的這個(gè)方向上的margin。

        css代碼:

        .flex-container{
         display:flex;
         width:600px;
         height:230px;
         background-color: #ccc;
         justify-content: space-around;
         align-items:baseline;
         flex-flow: row wrap;
         align-content: space-between;
        
         }
         .flex-item{
         background-color:blue;
         width: 100px;
         height: 70px;
         margin: 5px;; }
         .a{
         margin-right:auto;
         }

        HTML代碼:

        <p class="flex-container">
         <p class="flex-item a">1</p>
         <p class="flex-item ">2</p>
         <p class="flex-item ">3</p></p>

        效果如下:

        由于給伸縮項(xiàng)1添加了margin-right為auto,所以它獨(dú)占了本行的剩余空間作為它的right margin值。

        利用這個(gè)特性,我們?cè)趂lexbox布局中很容易實(shí)現(xiàn)可伸縮元素的垂直水平居中,

        css代碼;

        .flex-container{
         display:flex;
         width:600px;
         height:230px;
         background-color: #ccc;
         justify-content: space-around;
         align-items:baseline;
         flex-flow: row wrap;
         align-content: space-between;
        
         }
         .flex-item{
         background-color:blue;
         width: 100px;
         height: 70px;
         margin: 5px;; }
         .a{
         margin:auto;
         }

        HTML代碼:

        <p class="flex-container">
         <p class="flex-item a">1</p></p>

        效果如下:

        align-self屬性,該屬性是給各個(gè)可伸縮項(xiàng)設(shè)置自己的在側(cè)軸上的對(duì)齊方式的,之前在容器上設(shè)置的align-item屬性是作為一個(gè)整體設(shè)置的,所有的元素對(duì)齊方式都一樣,align-self屬性會(huì)覆蓋之前的align-item屬性,讓每個(gè)可伸縮項(xiàng)在側(cè)軸上具有不同的對(duì)齊方式,取值和align-item相同:

        css代碼:

        .flex-container{
         display:flex;
         flex-direction: row;
         width:600px;
         height:230px;
         background-color: #ccc;
         justify-content: space-around;
         align-items:baseline;
         align-content: space-between;
        
         }
         .flex-item{
         background-color:blue;
         width: 100px;
         height: 70px;
         margin: 5px;; }
         .a{
         align-self:flex-start ;
         }
         .b{
         align-self:flex-end;
         }
         .c{
         align-self:center;
         }

        html代碼:

        <p class="flex-container">
         <p class="flex-item a">1</p>
         <p class="flex-item b">2</p>
         <p class="flex-item c">3</p></p>

        效果如下:

        可以看到三個(gè)伸縮項(xiàng)在側(cè)軸上被賦予了不同的對(duì)齊方式。

        flex屬性,這個(gè)屬性是加在伸縮項(xiàng)上面的,它定義了伸縮項(xiàng)如何分配主軸尺寸,通常取值為auto或者數(shù)字,auto瀏覽器會(huì)自動(dòng)均分,數(shù)字會(huì)按照伸縮項(xiàng)所占的數(shù)字比重來分配空間,

        這個(gè)屬性會(huì)覆蓋伸縮項(xiàng)在主軸上設(shè)定的尺寸,當(dāng)給主軸上伸縮項(xiàng)設(shè)定了尺寸(寬或高)和這個(gè)屬性的時(shí)候,事實(shí)上還是會(huì)按照這個(gè)屬性來進(jìn)行空間分配。

        css代碼:

        .flex-container{
         display:flex;
         flex-direction: row;
         width:600px;
         height:230px;
         background-color: #ccc;
         justify-content: space-around;
         align-items:baseline;
         align-content: space-between;
        
         }
         .flex-item{
         background-color:blue;
         width: 100px;
         height: 70px;
         margin: 5px;; }
         .a{
         align-self:flex-start ;
         flex:1;
         }
         .b{
         align-self:flex-end;
         flex:2;
         }
         .c{
         align-self:center;
         flex:1;
         }

        HTML代碼:

        <p class="flex-container">
         <p class="flex-item a">1</p>
         <p class="flex-item b">2</p>
         <p class="flex-item c">3</p></p>

        效果如下:

        可以看到伸縮項(xiàng)盡管設(shè)置了寬度,但是最終還是按照我們?cè)O(shè)置的flex比例對(duì)水平空間進(jìn)行了分割。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        關(guān)于CSS3中Flexbox布局的圖文代碼分享

        關(guān)于CSS3中Flexbox布局的圖文代碼分享:CSS3為我們提供了一種可伸縮的靈活的web頁面布局方式-flexbox布局,它具有很強(qiáng)大的功能,可以很輕松實(shí)現(xiàn)很多復(fù)雜布局,在它出現(xiàn)之前,我們經(jīng)常使用的布局方式是浮動(dòng)或者固定寬度+百分比來進(jìn)行布局,代碼量較大且難以理解。為了更好理解flexbox布局,這里
        推薦度:
        標(biāo)簽: 圖文 代碼 布局
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 91精品免费在线观看| 亚洲国产精品一区二区第一页免| 国产亚洲精aa在线看| 青草草在线视频永久免费| 一级视频在线免费观看| 亚洲午夜免费视频| 国产成人免费网站在线观看| a视频在线免费观看| 亚洲色大成网站www永久网站| 亚洲欧洲中文日韩av乱码| 黄页网站免费观看| 一级日本高清视频免费观看 | 午夜一区二区免费视频| 国产免费一区二区三区免费视频 | 亚洲精品A在线观看| 波多野结衣在线免费观看| 一个人免费观看日本www视频| 亚洲成电影在线观看青青| 亚洲日韩在线观看免费视频| 波多野结衣在线免费观看| 97在线免费视频| 精品亚洲国产成人av| 亚洲人成人77777网站不卡| 国产成人麻豆亚洲综合无码精品 | 大陆一级毛片免费视频观看 | 日本免费人成黄页网观看视频| 国产在线观看xxxx免费| 亚洲AV无码专区国产乱码不卡| 亚洲欧洲第一a在线观看| 亚洲国产91精品无码专区| 久久WWW色情成人免费观看| 久久免费线看线看| 成人午夜影视全部免费看| 亚洲国产成人无码AV在线影院| 亚洲熟妇色自偷自拍另类| 国产亚洲精品xxx| 亚洲精品tv久久久久| 国产a级特黄的片子视频免费| 91情侣在线精品国产免费| 99久久99热精品免费观看国产| 国产99精品一区二区三区免费|