两个div水平铺满

之前面试遇到过一个笔试题,大概意思:

页面有两个水平对齐的div,其中一个宽为100px,另一个根据浏览器窗口自动铺满

有两个办法可以实现,css3中的calc计算flex布局

calc计算

右侧div的width = 父元素的宽度 - 100px
代码如下

<div class="container">
    <div class="fix"></div>
    <div class="auto"></div>
</div>
*{
    box-sizing: border-box;  
}
div {
    border: 1px solid;
    height: 100px;  /* 方便显示 */
}
.container > * {
    float: left; /* 水平排列 */
}

/* 左div */
.fix {
    width: 100px;
}

/* 右div */
.auto {
    width: calc(100% - 100px); /* 这里的百分比值是相对父元素的,假设父元素宽是1000px,width = (1000 - 100); */
    border: 1px solid red;
}

flex布局

主要是利用flex属性分配剩余空间
代码如下

<div class="container">
    <div class="fix"></div>
    <div class="auto"></div>
</div>
div {
    height: 100px;
    border: 1px solid;
}
.container {
    display: flex;
}
.fix {
    width: 100px;
}
.auto {
    flex: 1;  /* 主要是这里 */
    border: 1px solid red;
}

w3c flex布局传送门flex布局

padding + position

div {
    height: 100px;
    border: 1px solid;
}
.container {
    position: relative;
}
.fix {
    width: 100px;
    position: absolute;
    left: 0;
    top: 0;
}
.auto {
    padding-left: 100px;
    border: 1px solid red;
    box-sizing: border-box;
}
<div class="container">
    <div class="fix"></div>
    <div class="auto"></div>
</div>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • H5移动端知识点总结 阅读目录 移动开发基本知识点 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇阅读 4,630评论 0 26
  • 移动开发基本知识点 一.使用rem作为单位 html { font-size: 100px; } @media(m...
    横冲直撞666阅读 3,519评论 0 6
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,814评论 1 92
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,806评论 0 2
  • 你站在我的背后像要表达什么 也不在乎我会不会看你脸色 总是想把我当成木偶用线提着 所做一切都要符合你的规则 不要以...
    独孤一鸣阅读 415评论 14 21