找回密码
 立即注册
查看: 1687|回复: 0

div实现左中右布局

[复制链接]
发表于 2024-2-21 16:18:13 | 显示全部楼层 |阅读模式
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title></title>
  5.     <style type="text/css">
  6.         *{
  7.             margin:0px;
  8.             border: 0px;
  9.             box-sizing:border-box;
  10.         }
  11.         div{
  12.             border: 1px solid black;
  13.         }
  14.         .left{
  15.             height: 100px;
  16.             width: 100px;
  17.             background-color: red;
  18.         }
  19.         .right{
  20.             height: 100px;
  21.             width: 100px;
  22.             background-color: blue;
  23.         }
  24.         .center{
  25.             height: 100px;
  26.         }

  27.         .floatDiv .left{
  28.             float: left;            
  29.         }
  30.         .floatDiv .right{
  31.             float: right;            
  32.         }
  33.         .floatDiv .center{

  34.         }

  35.         .positionDiv .left{
  36.             position: absolute;
  37.             left: 0px;
  38.         }
  39.         .positionDiv .right{
  40.             position: absolute;
  41.             right: 0px;
  42.         }
  43.         .positionDiv .center{
  44.             margin-left: 100px;
  45.             margin-right: 100px;
  46.         }

  47.         .tableDiv{
  48.             display: table;
  49.             width:100%;
  50.         }
  51.         .tableDiv .left{
  52.             display: table-cell;
  53.         }
  54.         .tableDiv .right{
  55.             display: table-cell;
  56.         }
  57.         .tableDiv .center{
  58.             display: table-cell;
  59.         }

  60.         .flexDiv{
  61.             display:flex;
  62.         }
  63.         .flexDiv .left{

  64.         }
  65.         .flexDiv .right{

  66.         }
  67.         .flexDiv .center{
  68.             flex:1;
  69.         }

  70.         .gridDiv{
  71.             display: grid;
  72.             width: 100%;
  73.             grid-template-rows:100px;
  74.             grid-template-columns:100px auto 100px;
  75.         }
  76.         .gridDiv .left{

  77.         }
  78.         .gridDiv .right{

  79.         }
  80.         .gridDiv .center{

  81.         }

  82.     </style>
  83. </head>
  84. <body>
  85.     <h1>float实现布局</h1>
  86.     <div class="floatDiv">
  87.         <div class="left"></div>
  88.         <div class="right"></div>
  89.         <div class="center">
  90.             float布局时,居中的div必须要放在最后。居中的div的模型宽度为整个页面,但是展示的时候会在可视范围内展示。即不会展示大屏居左或者居右的div下面。
  91.             <strong>
  92.                 因为float的初衷是实现文字环绕图片
  93.             </strong>
  94.             ,当我们缩小浏览器的宽度时,会发现文字会环绕在居左和居右的div周围。
  95.         </div>
  96.     </div>
  97.     <br/><br/>
  98.     <h1>position实现布局</h1>
  99.     <div class="positionDiv">
  100.         <div class="left"></div>        
  101.         <div class="right"></div>
  102.         <div class="center">
  103.             position布局时,居中的div必须放到最后。
  104.             <strong>
  105.                 与float不同的事,文字会被左右的div遮盖
  106.             </strong>
  107.             ,所以需要使用margin-left:100px;来调整div
  108.         </div>
  109.     </div>

  110.     <h1>table + table-cell实现布局</h1>
  111.     <div class="tableDiv">
  112.         <div class="left"></div>
  113.         <div class="center">
  114.             使用display:table实现左中右时,
  115.             <strong>
  116.                 居中的div必须放中间
  117.             </strong>
  118.             。另外,父元素必须设置width:100%; 。并且,居中的div的宽度不再为页面的宽度
  119.         </div>        
  120.         <div class="right"></div>        
  121.     </div>

  122.     <h1>flex实现布局</h1>
  123.     <div class="flexDiv">
  124.         <div class="left"></div>
  125.         <div class="center">
  126.             使用flex实现左中右时,居中的div设置flex:1,居中的div的宽度不再为页面的宽度
  127.         </div>        
  128.         <div class="right"></div>        
  129.     </div>

  130.     <h1>grid实现布局</h1>
  131.     <div class="gridDiv">
  132.         <div class="left"></div>
  133.         <div class="center">
  134.             使用grid实现左中右时,网格内部的div的宽度和高度都由父标签设置!
  135.         </div>        
  136.         <div class="right"></div>        
  137.     </div>

  138. </body>
  139. </html>
复制代码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|Discuz插件下载 ( 粤ICP备15082790号-1 )

GMT+8, 2025-4-25 17:14 , Processed in 0.063483 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表