前端开发

自适应粗小结

2019-05-23  本文已影响30人  西洋菜与胡萝卜

杂知识--预先看

宽度自适应

1. 利用流式布局:

两列布局:

    *{
        margin:0;
        padding:0;
    }
  .left{
        background:red;
        float:left;
        width:200px;
    }
  .right{/*没有设置宽度,块级元素宽度在标准文档流中默认占满父级元素宽*/
        background:green;
        margin-left:200px;
    }

  <div class = "left">left</div>
  <div class = "right">right</div>

2. 使用100%,负边距(负边距也会影响浮动了的元素的位置,并且会覆盖之前的浮动元素,但是自身不会被下一个浮动元素覆盖):

两列布局:

    *{
        margin:0;
        padding:0;
    }
    .center {
        background: yellow;
        float: left;
        width: 100%;
    }
    .inner {
        margin: 0 200px;
    }
    .left {
        background: red;
        height: 200px;
        width: 200px;
        float: left;
        margin-left: -100%;/*因为左侧的div在右侧之前,所以左侧的位置会影响右侧哟*/
    }
    .right {
        background: green;
        width: 200px;
        float: left;
        margin-left: -200px;
    }
    <div class="center">
        <div class="inner">center</div>
    </div>
    <div class="left">left</div>
    <div class="right">right</div>

3. 利用绝对定位:

两列分布,左右固定,中间自适应:div顺序:左-中间-右
左右侧绝对定位,且left和right分别为0,中间margin-left和margin-right分别为左右侧宽度

凝胶布局

宽度固定,margin-left和margin-right为auto

完全自适应

1. 百分比或者rem和em

  1. 百分比: 外部整体包装盒div固定宽高(定死),并设置居中,里面的内容采用百分比
  2. rem: 在html(根)选择器里设置font-size,并且用媒体查询设置不同分辨率下html的font-size,接下来就是子元素全部运用rem来设置
  3. em:

2. flex布局:

3. grid 网格布局(网格布局以后,容器子元素(项目)的float、display: inline-block、display: table-cell、vertical-align、column和clear等设置都将失效。)

核心组成: wrapper(父元素)和 items(子元素)。 wrapper 是实际的 grid(网格),items 是 grid(网格) 内的内容。

.container {
            text-align: center;
            padding: 20px;
            display: grid;
            grid-column-gap: 5px;
            grid-row-gap: 5px;
            background: pink;
            grid-template-areas: "header header header header header"
                                 "sidebar content content content content"
                                 "footer footer footer footer footer";
            grid-template-rows: 50px 150px 50px;
            grid-template-columns: 200px 200px 200px;
        }

移动端自适应 开发原则:文字流式,控件弹性,图片等比缩放

利用视口单位适配页面

  1. 采用rem
    • 在html(根)选择器里设置font-size,并且用媒体查询设置不同分辨率下html的font-size(或者使用js来设置),接下来就是子元素全部运用rem来设置
      rem的值经常等于(设备的宽度)x100/(设计稿宽度)
  2. 使用vw作为CSS单位(无论是文本还是布局高宽、间距等)
  3. 搭配vw和rem,优化布局
上一篇 下一篇

猜你喜欢

热点阅读