CSS 布局实现左边固定宽度,右边占满剩余宽度

  1. float 浮动
<style>
.container{ background-color: yellow; }
.container .left{ background-color: blue; width: 100px; }
.container .right { background-color: red;  }
.s1 {}
.s1 .left{float: left; }
.s1 .right{overflow: hidden;}
.s1 .clear{clear: both;}
</style>
<div class="container s1">
      <div class="left">左边左边左边左边左边左边左边左边左边左边左边左边</div>
      <div class="right">右边右边右边右边右边右边右边右边右边右边右边右</div>
      <div class="clear"></div>
</div>

浮动是最普遍实现的方式,但 css 浮动的初衷并不是用于布局的,所以浮动布局迟早会被淘汰,应该作为备选方式使用。


  1. 左边绝对定位
<style>
.container{ background-color: yellow; }
.container .left{ background-color: blue; width: 100px; }
.container .right { background-color: red;  }
.s2 {position: relative;}
.s2 .left{position: absolute; left: 0; top: 0;}
.s2 .right{margin-left: 100px;}
</style>
</head>
<body>
<div class="container s2">
    <div class="left">左边左边左边左边左边</div>
    <div class="right">右边右边右边右边右边右边右边右边右边右边右边右右边右边右边右边右边右边右边右边右边右边右边右</div>
</div>

绝对定位方式有个缺点,当左边高于右边时,左边会超出父元素,需要使用 js 补救。


  1. flex 布局
<style>
.container{ background-color: yellow; }
.container .left{ background-color: blue; width: 100px; }
.container .right { background-color: red;  }
.s3 { display: flex; }
.s3 .left{ }
.s3 .right{flex-grow: 1;}
</style>
<div class="container s3">
      <div class="left">左边左边左边左边左边左边左边左边左边</div>
      <div class="right">右边右边右边右边右边右边右边右边右边右边右边右边右边右边右边右边右边右边右边右边右边右边右边右边右边</div>
      <div class="clear"></div>
</div>

flex 是最鼓励使用的方式,低端 IE 不支持,但在移动端得到了广泛的使用。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 各种纯css图标 CSS3可以实现很多漂亮的图形,我收集了32种图形,在下面列出。直接用CSS3画出这些图形,要比...
    剑残阅读 13,240评论 0 8
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 5,782评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 6,831评论 0 11
  • “少年听雨歌楼上。红烛昏罗帐。壮年听雨客舟中。江阔云低、断雁叫西风。 而今听雨僧庐下。鬓已星星也。悲欢离合总无情。...
    我本凡尘阅读 3,408评论 1 2
  • 小鱼oO阅读 1,872评论 1 1