美文网首页
面试相关

面试相关

作者: 黄鹤你不是人 | 来源:发表于2019-06-04 23:00 被阅读0次

一.实现左侧固定,右侧自适应的方法

基本样式
html

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

css

    .container {
      width: 100%;
      height: 800px;
      border: 1px solid black;
    }

    .container .left {
      width: 200px;
      height: 800px;
      border: 1px solid black;
    }

    .container .right {
      height: 800px;
      margin-left: 200px;
      background-color: rebeccapurple;
    }

1.使用float+margin-left

实现:左边元素浮动,右侧元素设置margin-left调整与左侧元素的间距,代码如下

 .container  {
      overflow: hidden; /* 清除浮动 */
    }
 .container .left {
      float: left;
    }
 .container .right {
      margin-left: 200px;
    }

思路:右侧块级元素未规定宽度时,其宽度随父元素宽度大小而发生变化,再将左侧盒子浮动使其脱离文档流使左右两元素并排排列,这时右侧盒子可以实现自适应但左右两盒子重叠,这时增加右侧盒子的margin-left,使两盒子分离,从而实现需求.
缺点:
a.因为左侧盒子浮动,有些情况需要清除浮动
b.右侧盒子的margin-left计算时需要考虑左侧盒子的宽度

2.使用absolute+margin-left

实现:与上诉方法基本一致,左侧盒子由浮动变为绝对定位,代码如下

 .container .left {
      position: absolute;
    }
 .container .right {
      margin-left: 200px;
    }

思路:同上
缺点:a.需设置父盒子position属性为relative
b.没有清除浮动的方法,只能设置右侧盒子的min-height来防止父盒子坍塌

3.使用float+BFC

实现:左侧浮动,右侧变为一个BFC,代码如下

 .container  {
      overflow: hidden;  /* 清除浮动 */
    }
 .container .left {
      float: left;
      margin-right: 200px;
    }
 .container .right {
      overflow: hidden;
    }

思路:利用BFC规则:'BFC元素与浮动元素不重叠',使右边的盒子变为一个BFC,我们用到的方法是设置overflow: hidden,左侧盒子浮动,此时两盒子分离,在设置左侧盒子的右边距.
缺点:父盒子需要清除浮动

4.flex布局

实现:使用flex布局,代码如下

 .container  {
      display: flex;
      align-items: flex-start;  /* flex容器中的项目从头开始排列(并不拉伸) */
    }
 .container .left {
      flex: 0 1 auto;
    }
 .container .right {
      flex: 1 1 auto;
    }

思路:flex: 0 1 auto;是flex-grow, flex-shrink 和 flex-basis的缩写,代码项目的放大,缩小,项目占剩余空间的大小.
缺点:兼容性不好.

相关文章

  • Need Note Link

    Android 2.2 中文 Api 农民伯伯的博客 面试相关 面试相关1(内有干货链接)吧主 面试相关2(面试题...

  • iOS面试准备之思维导图(附资料)

    目录 1.UI视图相关面试问题 2.Runtime相关面试问题 3.内存管理相关面试问题 4.Block相关面试问...

  • ios 面试指南思维导图

    1.UI视图相关面试问题 2.Runtime相关面试问题 3.内存管理相关面试问题 4.Block相关面试问题 5...

  • 面试相关

    问:谈一下你是用了哪些数据交换格式. (0)介绍+用法 (1)Json:是以键值对来存放数据的,大括号表示一个对象...

  • 面试相关

    1.Json解析与XML解析 Gson解析和FastJson ,FastJson解析效率高 XML解析,SAX解析...

  • 面试相关

    面试题库来自:https://blog.720ui.com/2018/java_interview_final/ ...

  • 面试相关

    1.浏览器的兼容问题: 图片默认有间距问题症状:几个img标签放在一起的时候,有些浏览器会有默认的间距,加了问题一...

  • 面试相关

    1.自我介绍 面试官好!我叫xxx,来自浙江绍兴,大学是在杭州xxxx就读,专业是xxxx。xxxx年xx月大学毕...

  • 面试相关

    数据持久化 什么是持久化狭义的理解: “持久化”仅仅指把域对象永久保存到数据库中;广义的理解,“持久化”包括和数据...

  • 面试相关

    前言 ​  最近刚刚离职了,幸运的是很快就收到了面试通知,各方面都比较满意,加上之前内推的一家创业公司的面试经历,...

网友评论

      本文标题:面试相关

      本文链接:https://www.haomeiwen.com/subject/feqdxctx.html