HTML与CSS手写-4.实现常用布局(三栏、圣杯、双飞翼、吸顶),可是说出多种方式并理解其优缺点

实现常用布局

两栏布局

三栏、圣杯、双飞翼

圣杯布局和双飞翼布局是前端工程师需要日常掌握的重要布局方式。两者的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局。(中间先加载渲染)

圣杯布局 relative margin-left: -100%;

复制代码
  <style>
    .container {
      padding: 0px 100px;
      min-width: 300px;
      overflow: hidden;
    }

    .left {
      float: left;
      position: relative;
      left: -100px;
      margin-left: -100%;
      width: 100px;
      background-color: red;
    }

    .center {
      float: left;
      width: 100%;
      background-color: green;
    }

    .right {
      float: left;
      position: relative;
      left: 100px;
      margin-left: -100px;
      width: 100px;
      background-color: blue;
    }
  </style>
</head>

<body>
  <div class="container">
    <div class="center">center</div>
    <div class="left">left</div>
    <div class="right">right</div>
  </div>
</body>
复制代码

缺陷

  • 某一列内容溢出时,三栏不是等高的 进行登高布局解决
  • 中间栏的最小宽度不能小于左右两栏的宽度,否则左右两栏会掉到下一行。(min-width解决)

 

双飞翼布局

margin-left:-100%   margin-left:-100px  牛逼

复制代码
<body>
  <div id="header"></div>
  <div id="container" class="column">
    <div id="center"></div>
  </div>
  <div id="left" class="column"></div>
  <div id="right" class="column"></div>
  <div id="footer"></div>
<body>
复制代码
复制代码
body {
  min-width: 500px;
}

#container {
  width: 100%;
}

.column {
  float: left;
}
        
#center {
  margin-left: 200px;
  margin-right: 150px;
}
        
#left {
  width: 200px; 
  margin-left: -100%;
}
        
#right {
  width: 150px; 
  margin-left: -150px;
}
        
#footer {
  clear: both;
}
复制代码

 

 双飞翼布局

优点:省去了很多css,由于不使用定位,中间栏的最小宽度不再受限于左右两栏宽度

缺点:双飞翼布局多加一层dom树节点,三列登高问题仍要单独解决

 

可是说出多种方式并理解其优缺点

posted @   不想做混子的奋斗远  阅读(60)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示
主题色彩