移动端布局

173 阅读2分钟

百分比布局

也叫流式布局,效果:宽度自适应,高度固定(古老布局方式)

flex布局

是一种浏览器提倡的布局模型,加载起来快,可以避免浮动脱标问题,所以布局起来更简单灵活

flex兼容,可以在can i use里搜索哪些浏览器支持flex

image.png image.png

设置方式:给父级添加display:flex,父级必须是最近的上一级, 组成结构:父元素叫弹性容器,子元素叫弹性盒子,x轴为主轴,y轴为侧轴(交叉轴),默认情况下弹性盒子沿着主轴在水平方向排列。

修改主轴的对齐方式属性:justify-content,它有以下属性值

flex-start 默认值,起点开始依次排列。 flex-end 终点开始依次排列。

center: 沿主轴居中排列。

space-around: 弹性盒子沿主轴均匀排列,空白间距均分在弹性盒子两侧。

space-between: 弹性盒子沿主轴均匀排列,空白间距均分在相邻盒子之间。

space-evenly: 弹性盒子沿主轴均匀排列,弹性盒子与容器之间间距相等。

侧轴对齐方式:align-items

flex-start 默认值,起点开始依次排列。 flex-end 终点开始依次排列。

center: 沿侧轴居中排列。

stretch:默认值,弹性盒子沿着主轴线被拉伸至铺满容器

改变主轴方向: flex-direction

row: 行,水平方向(默认值)

column: 列,垂直方向

row-reverse: 行,从右向左

column-reverse: 列,从下向上

换行: flex-warp: warp

易混淆属性:align-content 当弹性容器指定高度且子项为多行时,align-content: center将子项作为一个整体,不管有多少行你只看整个弹性盒子占了多少高度,然后让它在父容器中居中,单行设置了flex-warp也可以生效。

rem适配

rem相对单位,是相对于html标签字号计算的

    html {
            font-size: 10px;
        }
    .box {
            width: 10rem;
            height: 8rem;
            background-color:aqua
        }

宽:100px/10px = 10rem, 高:80px/10px = 8rem

image.png

媒体查询

    /* 媒体查询 根据不同视口宽度,设置不同的根字号 一般将网页分为10等份,将跟字号设置为视口宽度的1/10 */
      @media (width: 320px) {
        html {
          font-size: 32px;
        }
      }
      @media (width: 375px) {
        html {
          font-size: 37.5px;
        }
      }

一般情况下不需要我们自己手动配置媒体查询,可以搜索flexible.js,手淘开源出来的适配移动端的js框架,下载下来引用就可以。

vw/vh适配

相对视口的尺寸计算结果

vw: viewport width 1w = 1/100视口宽度

vh:viewport height 1vh = 1/100视口高度