当前位置: 首页 > ai >正文

圣杯布局和双飞翼布局的实现方法

目录

一、圣杯布局

1.传统布局float+margin

2.使用flex布局

3.使用grid网格布局

二、双飞翼布局


一、圣杯布局

1.传统布局float+margin

使用传统的float浮动和相对定位来实现

<div class="main-container"><div class="main"></div><div class="left"></div><div class="right"></div>
</div>
/* 检查父容器边界 */
.main-container {padding: 0 200px;overflow: hidden;min-width: 600px; //防止缩小后左右两边因为margin-left看不见
}
.main {width: 100%;background-color: pink;
}
.main,
.left,
.right {float: left;height: 200px;
}
/*一个知识点:当浮动元素的margin-left值正好等于剩余宽度时,该元素会自动浮动靠近上一行元素,所以left和right会在main的两边*/
.left {width: 200px;margin-left: -100%; /* 关键,针对父元素的宽度移动,如果超出当前行的宽度,会自动往上一层移动 */position: relative; //相对于自身变动left: -200px; /* 微调 */background: #0ff;
}
.right {width: 200px;background: #ff0;margin-left: -200px; /* 关键 */position: relative;right: -200px; /* 微调 */
}

2.使用flex布局

flex布局实现两列固定中间自适应

<div class="flex-container"><div class="left"></div><div class="main"></div><div class="right"></div>
</div>
.flex-container {display: flex;height: 200px;.main {flex: 1;background-color: pink;}.left,.right {flex: 0 0 200px; //固定宽度;}.left {background-color: #0ff;}.right {background-color: #ff0;}
}

3.使用grid网格布局

grid网格直接为列设置值

<div class="grid-container"><div class="left"></div><div class="main"></div><div class="right"></div>
</div>
.grid-container {height: 200px;display: grid;grid-template-columns: 200px 1fr 200px; //三列,第一列200px,第二列自适应,第三列200px;.main {background-color: pink;}.left {background-color: #0ff;}.right {background-color: #ff0;}
}

二、双飞翼布局

双飞翼的特点是三列设置浮动,中间内容区域设置左右两边margin,两边列设置margin-left实现在同一行上

<div class="double-container"><div class="main"><div class="main-content">主内容区,粉色区域是主内容区的背景色,主内容区的宽度是整个页面的宽度减去左右边栏的宽度,绿色为主内容区的高度。蓝色为左右两列的高度,只会根据内容的高度来自适应。(占位字哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈)</div></div><div class="left">左侧边栏</div><div class="right">右侧边栏</div>
</div>
.main {float: left;width: 100%;background-color: pink;
}
.main-content {margin-left: 200px; /* 左侧边栏宽度 */margin-right: 150px; /* 右侧边栏宽度 */background-color: #c6ffdd;
}.left,
.right {float: left;
}.left {width: 200px;background-color: #6dd5fa;margin-left: -100%; /*需要同时设置*/
}.right {width: 150px;background-color: #2980b9;margin-left: -150px; /*需要同时设置*/
}

 

http://www.xdnf.cn/news/9889.html

相关文章:

  • 华为OD机试_2025 B卷_最小循环子数组(Python,100分)(附详细解题思路)
  • 技术文档撰写指南:从结构到细节的全流程解析
  • 【面板数据】上市公司供应链网络地位数据(2001-2024年)
  • 【C1】【一维数组】看电影
  • 重说话题“如何写好一份技术文档”
  • 经典深度学习网络【一天了解一个ok?】【基本点创新点】
  • Java中的栈数据结构及其常用方法
  • Cesium 报错:自定义材质报‘texture2D‘ : no matching overloaded function found错误
  • 【Unity】 HTFramework框架(六十六)缺省的运行时组件检视器
  • 「动态规划::状压DP」网格图递推 / AcWing 292|327(C++)
  • 2025京麟CTF-mememe
  • SpringBoot:统一功能处理、拦截器、适配器模式
  • GoC新阶段课程研发
  • jdbcTemplate防止注入写法
  • CompletableFuture高级编程指南
  • Python常用的内置函数
  • web ui自动化工具playwright
  • 【文献阅读】Hierarchical Reinforcement Learning: A ComprehensiveSurvey
  • WordPress_suretriggers 权限绕过漏洞复现(CVE-2025-3102)
  • 在Mathematica中求解带阻尼的波方程
  • 造血干细胞移植中,选择合适供者需综合多因素考量
  • 2025年5月29日 一阶惯性环节
  • 哈夫曼编码
  • 65常用控件_QListWidget的使用
  • 学习路之PHP--easyswoole操作数据库
  • 深入解析分销商城系统的核心特点
  • 本地化AI编程革命:在效率洪流中重掌创造主权
  • 嵌入式学习笔记 - freeRTOS同优先级任务时间片抢占的实现
  • 吉林大学操作系统上机实验五(磁盘引臂调度算法(scan算法)实现)
  • FreeRTOS---任务创建与删除