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

css圣杯布局和双飞翼布局

 圣杯布局

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><h1>实现圣杯布局</h1><div id="header">Header</div><div id="content"><!-- 这里注意要将middle即中间区域放在左边和右边前面,因为我们的需求是中间一栏最先加载、渲染出来,根据执行顺序所以把middle放在第一个。 --><div id="center" class="column">center</div><div id="left" class="column">left</div><div id="right" class="column">right</div></div><div id="footer">footer</div>
</body>
<style>body {/* 设置最小宽度,防止挤压使中间内容消失 */ min-width: 500px;}div {text-align: center;}#header {background-color: #f1f1f1;}#content {padding-left: 300px;padding-right: 200px;}#content #center {background-color: #ddd;width: 100%;}#content #left {position: relative;width: 300px;background-color: orange;margin-left: -100%;right: 300px;}#content #right {background-color: green;width: 200px;margin-right: -200px;}
/* 这里当我们给每中间内容的每一栏都加上float:left之后容易导致高度塌陷,解决办法 clear: both; overflow:hidden  */#content .column {float: left;}#footer {/* 清除浮动 */clear: both;background-color: #f1f1f1;}
</style>
</html><!--  问题:高度塌陷 是什么意思
怎么解决: 
overflow:hidden 【这里触发了BFC——BFC是一个独立的布局环境,可以理解为一个看不见的盒子,盒子内部的物品摆放不受外界环境影响。】 
clear:both -->
<!-- 圣杯布局:将中间的三个模块实现成为三栏布局,中间栏自适应,两侧内容宽度固定,三栏布局,中间一栏最先加载,渲染出来 
1.由于中间栏自使用,所以宽度设置为100%,
2.左右两栏使用 float:left 同时使用clear:both 解决高度塌陷的问题
3.将左右两栏的盒子移动上去 【这里通过相对定位我们可以看到是一行挤不下换成了两行,所以想左移动相应的位置就行了向左移动的位置是100%+盒子的宽度】
4.注意设置设置最小宽度,防止挤压使中间内容消失
圣杯布局就是将基本布局之后使用向左浮动,middle栏留出两边位置,然后使用相对定位将左右两栏通过margin-left定位到相应位置。
-->

双飞翼布局

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>双飞翼布局</title>
</head><body><div class="container"><div class="wrapper"><div class="center">mid</div></div><div class="left">left</div><div class="right">right</div></div>
</body>
<style>.container {height: 100px;}.left {float: left;margin-left: -100%;width: 100px;height: 100px;background: tomato;}.right {float: left;margin-left: -200px;width: 200px;height: 100px;background: gold;}.wrapper {float: left;width: 100%;height: 100px;background: lightgreen;}.center {margin-left: 100px;margin-right: 200px;height: 100px;}
</style></html>

总结

相同点:

都实现了三栏布局,都使用了浮动

不同点:

圣杯布局是通过float搭建布局+margin使三列布局到一行上+relative相对定位调整位置。

双飞翼布局是通过float+margin没有使用相对定位

对于两列的处理:

圣杯布局是给外部容器加padding,通过相对定位把两边定位出来。

双飞翼布局是靠在中间这层外面套一层divpadding将内容挤出来中间。

http://www.lryc.cn/news/182592.html

相关文章:

  • 机器学习笔记 - 深入研究spaCy库及其使用技巧
  • 网站强制跳转至国家反诈中心该怎么办?怎么处理?如何解封?
  • 2023年10月4日
  • MacBook 录制电脑内部声音
  • mysql主从复制和读写分离
  • 【计算机网络】网络层-数据平面(学习笔记)
  • el-collapse 嵌套中 el-checkbox作为标题,选中复选框与el-tree联动
  • Ubuntu中还换源 sudo apt-get update更新失败
  • flutter播放rtmp视频
  • stm32 - 中断
  • 【洛谷 P1216】[USACO1.5] [IOI1994]数字三角形 Number Triangles 题解(动态规划)
  • 十四天学会C++之第四天(面向对象编程基础)
  • 复习Day09:哈希表part02:141.环形链表、142. 环形链表II、454.四数相加II、383赎金信
  • Internet通过TCP/IP协议可以实现多个网络的无缝连接
  • 互联网Java工程师面试题·Dubbo 篇·第二弹
  • (c语言)经典bug
  • 用于工业物联网和自动化的 Apache Kafka、KSQL 和 Apache PLC4
  • 1.1.1开发基础-硬件-万用表
  • Mysql内置函数、复合查询和内外连笔记
  • 【VUE·疑难问题】定义 table 中每行的高度(使用 element-UI)
  • 【重拾C语言】四、循环程序设计(后判断条件循环、先判断条件循环、多重循环;典例:计算平均成绩、打印素数、百钱百鸡问题)
  • Linux 安装 Gitlab
  • stm32-SPI协议
  • 想要精通算法和SQL的成长之路 - 并查集的运用和案例(省份数量)
  • 解决内网拉取企微会话存档代理问题的一种办法
  • 二十二,加上各种贴图
  • 新版校园跑腿独立版小程序源码 多校版本,多模块,适合跑腿,外卖,表白,二手,快递等校园服务
  • SpringBoot banner 样式 自动生成
  • 回收站里面删除的照片如何恢复?
  • Qt model/view 理解 2