移动端布局

rem 布局

 (function(){
    var html = document.documentElement;
    var width = html.getBoundingClientRect().width;
    html.style.fontSize = width/18+'px';
    //1rem = 60px;    以iPhone6s 为准
  })();

将px直接转化成为rem即可

百分比+媒体查询布局

@media screen {
    .col-1 {width: 8.33%;}
    .col-2 {width: 16.66%;}
    .col-3 {width: 25%;}
    .col-4 {width: 33.33%;}
    .col-5 {width: 41.66%;}
    .col-6 {width: 50%;}
    .col-7 {width: 58.33%;}
    .col-8 {width: 66.66%;}
    .col-9 {width: 75%;}
    .col-10 {width: 83.33%;}
    .col-11 {width: 91.66%;}
    .col-12 {width: 100%;}
}

flex弹性盒子布局

1.特点:

  • 1、默认所有子元素都会在一行中显示,即使给子元素一个很大的宽度
  • 2、父级加了这条属性,子级的float、vertical-align就会失效
  • 3、如果兼容低版本的机型要加前缀-webkit-,包括后面讲的所有属性

2.属性:

容器属性(父元素样式)

flex-direction子元素排列方向(主轴的方向)
flex-wrap换行方式
flex-flow以上两种方式的简写
justify-content水平对齐方式(子元素在主轴上的对齐方式)
align-items垂直对齐方式(子元素在交叉轴上的对齐方式)
align-content多行垂直对齐方式(多根轴线的对齐方式)

项目属性(子元素样式)

order排列位置
flex-grow扩展比例
flex-shrink收缩比例
flex-basis元素的大小
flex以上三个属性的简写
align-self单独的垂直对齐方式(交叉轴方向上)

3.flex的计算:

扩展比例flex-grow计算:
  • 当父级的宽度大于所有子元素宽度之和时,根据父级的剩余空间,设置子元素的扩展比例(设置后,元素给的固定宽度会被覆盖)
  • 它是一个系数默认为0,即如果存在剩余空间,也不扩展
  • 剩余空间
    剩余空间=父级的宽度-所有子元素的宽度和
  • 子元素宽度计算公式
    子元素的宽度=(父级的宽度-所有子元素的宽度和)/所有子元素的flex-grow属性值之和*子元素的flex-grow属性值+子元素初始宽度
    <section id="s1">
            <div><span>赵圆圆</span></div>     
            <!--(1887-48-1500)/3*1+48=161-->
            <div><span>我是一只小蜜蜂,飞到西飞到东!</span></div>     
            <!--(1887-48-1500)/3*2+1500=1726-->
        </section>
收缩比例flex-shrink计算:
  • 当所有子元素宽度之和大于父级宽度的时候,根据超出的空间,设置子元素的收缩比例(设置后,元素给的固定宽度会被覆盖)
  • 它是一个系数默认为1,如果给个0的话,就不会收缩
  • 超出空间
    超出空间=所有子元素的宽度和-父级的宽度
  • 子元素宽度计算公式
    1、算出超出空间,所有子元素的宽度和-父级的宽度
    2、子元素的初始宽度*子元素的flex-shrink值
    3、算出第二步所有结果的和
    4、每个子元素的第二步/第三步*第一步
    5、子元素的初始宽度-第四步
<section id="s1">
            <!--
                1、80+1500-1000=580
                2、80*1=80       1500*1=1500
                3、80+1500=1580
                4、80/1580*580=29.367088607594937        1500/1580*580=550.632911392405
                5、80-29.367088607594937=50.63       1500-550.632911392405=949.37
            -->
            <div><span>我是赵圆圆</span></div>
            <div><span>我是一只小蜜蜂,飞到西飞到东!</span></div>     
        </section>

详情flex布局见阮一峰大神:
http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值