1. float+overflow:hidden
这种办法主要通过 overflow 触发 BFC,而 BFC 不会重叠浮动元素。由于设置 overflow:hidden 并不会触发 IE6-浏览器的 haslayout 属性,所以需要设置 zoom:1 来兼容 IE6-浏览器。具体代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> .parent { margin: 0 auto; // 使父容器水平居中显示 overflow: hidden; zoom: 1; max-width: 1000px; } .left { float: left; margin-right: 20px; width: 200px; background-color: green; } .right { overflow: hidden; zoom: 1; background-color: yellow; } </style> </head> <body> <div class="parent"> <div class="left"> <p>left left left left</p> </div> <div class="right"> <p>right</p> <p>right</p> </div> </div> </body> </html>
2. float: left+ margin-left
float使左边的元素脱离文档流,右边的元素可以和左边的元素显示在同一行,设置margin-left让右边的元素不覆盖掉左边的元素, 代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> .parent { margin: 0 auto; max-width: 1000px; } .parent::after { content: ''; display: table; clear: both; } .left { float: left; width: 200px; background-color: green; } .right { margin-left: 200px; background-color: yellow; } </style> </head> <body> <div class="parent"> <div class="left"> <p>left left left left</p> </div> <div class="right"> <p>right</p> <p>right</p> <p>right</p> </div> </div> </body> </html>
3. position: absolute + margin-left
左边绝对定位,右边设置margin-left,代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> .parent { position: relative; margin: 0 auto; max-width: 1000px; } .left { position: absolute; width: 200px; background-color: green; } .right { margin-left: 200px; background-color: yellow; } </style> </head> <body> <div class="parent"> <div class="left"> <p>left left left left</p> </div> <div class="right"> <p>right</p> <p>right</p> <p>right</p> </div> </div> </body> </html>
4. flex布局
flex布局可以使两个子元素显示在同一行,只要左边的宽度固定,就可以实现效果, 代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> .parent { display: flex; margin: 0 auto; max-width: 1000px; } .left { width: 200px; background-color: green; } .right { margin-left: 20px; flex: 1; background-color: yellow; } </style> </head> <body> <div class="parent"> <div class="left"> <p>left left left left</p> </div> <div class="right"> <p>right</p> <p>right</p> <p>right</p> </div> </div> </body> </html>
到此这篇关于CSS实现两栏布局,左边固定,右边自适应的4种方法的文章就介绍到这了,更多相关CSS实现两栏布局内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
在开发中,如果遇到需要使用canvas同时绘制多张图片,但因为图片大小的不一样,...
windows 下默认的滚动条样式巨丑,项目中又有比较多地方会显示滚动条, 故回头翻...
dreamweaver软件: 点此下载 1、熟悉网页设计的网友就知道,调用STYLE的方法很多...
macromedia dreamweaver 8序列号 激活码: wpd800-50438-28032-39991 wpd800-599...
Dreamweaver网页中的banner图片需要切换,我们可以添加按钮来切换图片,下面我们...
还记得我在《2020 年 JavaScript 状态调研报告小结》中提到的 2020 年全球开发者...
这是一款基于HTML5和JavaScript的进度条应用,这款进度条插件非常有特点,它在进...
1、使用css精灵。 好处是将css中使用的小图片可以合并为一张大图片减少了对服务...
Do not use these html elements in html pages. Presentational elements shoul...
随着网络时代的发展与进步,我们的学习工作和生活早已离不开互联网,智能家居、...