zoukankan      html  css  js  c++  java
  • Flex弹性盒模型

    说到H5,说到响应式,老牛第一时间想到的第一个rem,第二个就是flex盒模型,这两个属性简直是移动端响应式开发利器..

    用到了flex弹性盒模型意味着抛弃了老旧的float甚至是margin的布局进入了完全的响应式布局的时代,听过有个比喻,有的人不愿意尝试新鲜事物,就好像不愿意尝试网上支付的老年人一样


    1.flex盒模型的声明:
    注意该属性是申明给布局元素的父级元素的.
    -webkit-display: flex;
    -moz-display: flex;
    -ms-display: flex;
    -o-display: flex;
    display: flex;

    2.横向对齐:

    justify-content : flex-start | flex-end | center | space-between | space-around
    | initial | inherit
    该属性为横向对齐的模式
    一.(两端对齐)的运用:justify-content:space-between
    比如我们想要制作一个如下图所示的布局


    你是不是要用float:left,然后给margin-left,还要给第一个黑色div加个margin-left:0?好,那么如果页面是响应式或是手机端,我们需要灰色模块大小固定不变,在黄色模块变小时,保持这种方式排列,只能变margin值..怎么办?rem和百分比都搞不定了吧..难道用绝对定位还是js去进行计算?不需要!!
    此处只需要给黄色模块加上display:flex;justify-content:space-between;大功告成!!margin都不需要!

    二.(右端对齐)的运用:justify-content:flex-end
    如果我们要制作<div>1</div><div>2</div><div>3</div>右端对齐的顺序正确的列阵

    下图为float:right margin-left:20px的效果(顺序变成3,2,1了):



    而使用justify-content:flex-end的结果如下:



    这才是我们需要结果吧,如果说你要顺序为321怎么办,如果你想让灰色盒子纵向排列怎么办?
    此时给父元素加一个属性

    flex-direction: row | row-reverse | column | column-reverse;分别为下图所示



    3.纵向对齐:

    align-items : flex-start | flex-end | center | baseline | stretch;



    其中最好用的,老牛用的最爽的....就是center!!上下对齐一直是让很多开发者头痛的问题,要么用绝对定位写死,但如果是响应式,比如老牛当时写博客的时候这样一个布局.



    看上去很简单吧?老牛本来用的是li包p然后用line-height去控制高度保持字体上下居中,但是牛宝宝需要导航条在手机端的时候跟着rem整体变小啊..你会说那不简单,line-height也给个rem一起变不就一直居中了?其实并不是....尽管导航条跟着视口的缩小而缩小,但总不能缩到比里面的字体还小吧....那么问题就来了...导航条要缩小而且还要给min-height最小高宽度的限制,可是line-height没有最小行高啊,那子元素用padding?



    那点击时背景不能全蓝啊....最后博主给父元素加了一个display:flex;align-items:center;!!!撒花完结 全部结束,不管你导航条高度怎么变,有没有最小限制,中间p元素将永远上下居中;
    本次博客中,老牛还是用了不少flex的盒模型,相当的好用,如下2个模块也是用弹性盒模型做的..




    老牛认为在如今移动端以及响应式中,把flex属性玩熟练了,那可以说是如鱼得水啊~

    4.折行设置:
     

    flex-wrap: nowrap | wrap | wrap-reverse;
    这个属性为弹性容器内的子元素排列是否折行显示..reverse依旧为颠倒排列顺序,值得注意的是,nowrap可能会导致子元素溢出整体容器.

    5.flex平分属性:

    这个属性是加给弹性盒模型的子元素的.比如:
    父元素container{display:flex} 其子元素div1{flex:2} div2{flex:1} div3{flex:1}
    那么子元素会扣去所有magrin值后用相应的比例进行平分,比如100px的父容器,扣去所有div1 2 3的margin值20px后,div1就为40px,2和3均为20px.
     
    原文链接:http://www.web-jackiee.com/a/xiangguanwebwenzhang/2016/0830/155.html
  • 相关阅读:
    帮助中心 7D-我的私家设计师 设计师品牌服饰集成网 7D服装定制!
    libiconv的静态编译
    “好饭不怕晚” 怎么理解这句话?_百度知道
    “好饭不怕晚” 怎么理解这句话?_百度知道
    隆庆祥_百度百科
    【图】高级西服定制、量身定制(英国/意大利进口面料商务着装、结婚礼服、高档衬衫)
    量身定制顺美男女西服、衬衫、大衣、T恤等
    高级西服定制
    关于我们-成功人士西装定制服务第一品牌派斯特PAISTETAILOR绅士礼服
    断舍离:日式概念的流行-财经网
  • 原文地址:https://www.cnblogs.com/ifworld/p/7763382.html
Copyright © 2011-2022 走看看