前面的话

  前面已经介绍过css 两列布局中单列定宽单列自适应布局的6种思路的两列布局,而两列自适应布局是指一列由内容撑开,另一列撑满剩余宽度的布局方式。本文将从floattableflexgrid来介绍两列自适应布局的4种思路

float

【思路一】float

  在单列定宽单列自适应的两列布局中,经常用float和负margin配合实现布局效果。但由于margin取值只能是固定值,所以在两列都是自适应的布局中就不再适用。而float和overflow配合可实现两列自适应效果。使用overflow属性来触发bfc,来阻止浮动造成的文字环绕效果。由于设置overflow:hidden并不会触发IE6-浏览器的haslayout属性,所以需要设置zoom:1来兼容IE6-浏览器

<style>
p{margin: 0;}
.parent{overflow: hidden;zoom: 1;}
.left{float: left;margin-right: 20px;}
.right{overflow: hidden;zoom: 1;}
</style>
<div class="parent" style="">
<div class="left" style="">
<p>left</p>
</div>
<div class="right" style="">
<p>right</p>
<p>right</p>
</div>
</div>

table

【思路二】table

  若table元素不设置table-layout:fixed,则宽度由内容撑开。在某个table-cell元素的外层嵌套一层div,并设置足够小的宽度如width:0.1%

<style>
p{margin: 0;}
.parent{display:table;width:100%;}
.leftWrap{display:table-cell;width:0.1%;}
.left{margin-right: 20px;}
.right{display:table-cell;}
</style>
<div class="parent" style="">
<div class="leftWrap" style="">
<div class="left" style="">
<p>left</p>
</div>
</div>
<div class="right" style="">
<p>right</p>
<p>right</p>
</div>
</div>

flex

【思路三】flex

  flex弹性盒模型是非常强大的布局方式。基本上,一般的布局方式都可以实现

  [注意]IE9-不支持

<style>
p{margin: 0;}
.parent{display:flex;}
.right{margin-left:20px; flex:1;}
</style>
<div class="parent" style="">
<div class="left" style="">
<p>left</p>
</div>
<div class="right" style="">
<p>right</p>
<p>right</p>
</div>
</div>

grid

【思路四】grid

  [注意]IE10-浏览器不支持

<style>
p{margin: 0;}
.parent{display:grid;grid-template-columns:auto 1fr;grid-gap:20px}
</style>
<div class="parent" style="">
<div class="left" style="">
<p>left</p>
</div>
<div class="right" style="">
<p>right</p>
<p>right</p>
</div>
</div>

转载:http://www.cnblogs.com/xiaohuochai/p/5454232.html

css 两列自适应布局的4种思路的更多相关文章

  1. css两列自适应布局的多种实现方式及原理。

    两列布局是非常常见的需求在实际项目中,实现的方式也有很多.究其原理也都不算复杂.这里主要提出几种实现方式和原理. html页面基本布局如下代码所示: 1 <div class="mai ...

  2. css 两列布局中单列定宽单列自适应布局的6种思路

    前面的话 说起自适应布局方式,单列定宽单列自适应布局是最基本的布局形式.本文将从float.inline-block.table.absolute.flex和grid这六种思路来详细说明如何巧妙地实现 ...

  3. css布局 - 两栏自适应布局的几种实现方法汇总

    这种两列布局的样式是我们在平时工作中非常常见的设计,同时也是面试中要求实现的高频题.很有必要掌握以备不时之需: 整理了几种实现方法,当然,风骚的代码不止这几种能实现,欢迎各位的补充. 方法汇总目录 简 ...

  4. css两列自适应宽度布局(左定宽,右自适应)

    1.利用BFC: <div id="root"> <div class="left">左</div> <div cla ...

  5. 使用display:table实现两列自适应布局

    在张鑫旭大神那边看到的方法,我自己写了一遍,稍微添加了一些自己的风格特色. IE6/7不支持这个属性,从IE8开始支持这个属性,对于IE6/7可以用display:inline-block解决. ta ...

  6. CSS三列自适应布局(两边宽度固定,中间自适应)

    https://blog.csdn.net/cinderella_hou/article/details/52156333 https://blog.csdn.net/wangchengiii/art ...

  7. CSS两列布局——左侧宽度固定,右侧宽度自适应的3种方法

    1.左侧绝对定位法 直接看代码: <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

  8. css两列布局,一边固定宽度,另一边自适应

    <!DOCTYPE HTML><HTML>    <head>                <meta charset="utf-8" ...

  9. css两列布局之基于BFC规则实现

    css要实现常见的自适应两列布局的方式方法挺多. 这里讲的是利用设置overflow不为visible时会形成新的BFC来实现.至于什么是BFC,可以搜搜看先,基本都讲的差不多了.等有更多空余时间,专 ...

随机推荐

  1. Java 程序设计总复习题

    Java程序设计总复习题 1.编写一个Java程序在屏幕上输出“你好!”. //programme name Helloworld.java public class Helloworld { pub ...

  2. 深入理解Java GC

    一.概述 GC(Carbage Collection)垃圾收集器,由JVM自动回收已死亡的对象垃圾. 这也是Java与C++等语言的主要区别之一. 二.如何确认对象已死 1. 引用计数算法 引用计数法 ...

  3. eclipse中的字体大小设置和背景色设置

    1.字体大小设置 在basic下选择最后一个TextFont 护眼背景色设置 添加到自定义颜色后点确定 最后一步点apply

  4. JZTK项目 驾照题库项目servlet层得到的json字符串在浏览器中 汉字部分出现问号?无法正常显示的解决方法

    servlet层中的代码如下: package com.swift.jztk.servlet; import java.io.IOException; import javax.servlet.Ser ...

  5. V8引擎——详解

    前言 JavaScript绝对是最火的编程语言之一,一直具有很大的用户群,随着在服务端的使用(NodeJs),更是爆发了极强的生命力.编程语言分为编译型语言和解释型语言两类,编译型语言在执行之前要先进 ...

  6. SummerVocation_Learning--java的线程死锁

    public class Test_DeadLock implements Runnable { ; static Object o1 = new Object(),o2 = new Object() ...

  7. 正则表达式通用匹配ip地址及主机检测

    在使用正则表达式匹配ip地址时如果不限定ip正确格式,一些场景下可能会产生不一样的结果,比如ip数值超范围,ip段超范围等,在使用正则表达式匹配ip地址时要注意几点: 1,字符界定:使用  \< ...

  8. PyCharm 2018.1 软件汉化

    下载汉化包 链接: https://pan.baidu.com/s/1buLFINImW_3cNzP8HsB4cA 密码: fqpu 安装汉化包 找到pycharm安装目录 直接把刚刚下载的汉化包复制 ...

  9. vue时时监听input输入框中 输入内容 写法

    Vue input 监听 使用 v-on:input="change" 实现即可 App.vue <template> <div> <md-field ...

  10. C#实现eval 进行四则运算(有码)

    在JavaScript中实现四则运算很简单,只需要调用eval函数就行了,但是不知道什么原因万能的.NET却没有封装这个函数~ 在这里为大家封装了一个C#版本的eval函数,具体的设计参考了<大 ...