加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

CSS实现两栏布局有哪些办法,怎样编程?

发布时间:2023-08-10 14:07:33 所属栏目:语言 来源:
导读: 这篇文章给大家分享的是CSS实现两栏布局的内容,主要是实现左边固定,而右边自适应的效果,这种两栏布局的效果还是挺实用的,因此分享给大家做个参考,文中示例代码介绍的很详细,感兴趣的朋友接下来一起跟随小编看
 这篇文章给大家分享的是CSS实现两栏布局的内容,主要是实现左边固定,而右边自适应的效果,这种两栏布局的效果还是挺实用的,因此分享给大家做个参考,文中示例代码介绍的很详细,感兴趣的朋友接下来一起跟随小编看看吧。
 
    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>
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章