双飞翼布局和圣杯布局

双飞翼布局和圣杯布局实现左右固定宽度,中间自适应的布局(中间先加载渲染),代码如下<!DOCTYPEhtml><html> <head> <metacharset=”utf-8″/> <title>css</title> </head> <styletype=”text/css”> *…

大家好,又见面了,我是你们的朋友全栈君。

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

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>css</title>
	</head>
	 <style type="text/css">
	 	*{
	 		margin:0;
	 		padding: 0;
	 	}
	 	.main>div{
	 	 float: left;
	 	}
	 	.left {
	 		width: 200px;
	 		background: red;
	 		margin-left: -100%;
	 	}
	 	.right{
	 		width: 200px;
	 		background: blue;
	 		margin-left: -200px;
	 	}
	 	.middle{
	 		width: 100%;
	 		background: yellow;
	 	
	 	}
	 	.content{
	 		margin-left: 200px;
	 		margin-right: 200px;
	 	}
	 </style>
	<body>
	<div class="main">
		<div class="middle">
	 		<div class="content">
	 		中间
		 	</div>
		 </div>
		<div class="left">
			左边
		</div>
		<div class="right">
			右边
		</div>
	</div>
	</body>
</html>

效果
在这里插入图片描述

圣杯布局
(使用float布局框架 , 用margin为负值 , position: relative定位)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>css</title>
	</head>
	 <style type="text/css">
	 	body{
	 		min-width: 550px;
	 	}
	 	*{
	 		margin:0;
	 		padding: 0;
	 	}
	 	.header , .footer{
	 		background: gray;
	 		width: 100%;
	 	}
	 	.footer{
	 		clear: both;
	 	}
         .main{
         	height: 200px;
         	padding: 0 150px 0 200px;
         	background: greenyellow;
         	*zoom: 1;
         }
         .left , .center , .right{
         	float: left; 
         }
         .center{
         	width: 100%;
         	height: 200px;
         	background: red;
         }
         .left {
         	width: 200px;
         	height: 200px;
         	background: yellow;
         	margin-left: -100%;
         	position: relative;
         	left: -200px;
         }
         .right{
         	width: 150px;
         	height: 200px;
         	background: gainsboro;
         	margin-left: -150px;
         	position: relative;
         	left: 150px;![在这里插入图片描述](https://img-blog.csdnimg.cn/20190623214733790.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NtbGxqZXQ=,size_16,color_FFFFFF,t_70)
         }
	 </style>
	<body>
		
	<div class="header">
             头部
	</div>
	<div class="main">
		<div class="center">中间中间中间中间中间中间中间后</div>
		<div class="left">左边</div>
		<div class="right">右边</div>
	</div>
	<div class="footer">
		底部
	</div>
	</body>
</html>

效果
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190623163922505.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NtbGxqZXQ=,size_16,color_FFFFFF,t_70**
优点**
(1)兼容性好,兼容若有主流浏览器,包括万恶的IE6
(2)可以实现主要内容的优先加载
在这里插入图片描述
个人还是推荐使用双飞翼布局

附:
其实三列布局的方式还有很多 ,但也有各自的缺点
1 如果左右两列用position: absolute定位布局做外层设计需要有个包含块设置(否则是相对浏览器可视区域)这样会层级,页面控制相对麻烦
2 用浮动布局的话, 中间层要做到先加载实现不了
3 flex布局低版本浏览器有些还不支持

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149125.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Laravel5.5 支付宝手机网站支付的教程

    Laravel5.5 支付宝手机网站支付的教程

    2021年10月24日
    56
  • 如何修改手机IP地址

    如何修改手机IP地址说起手机换IP大家可能没有对电脑换IP那么熟悉,但是现在智能手机能做到事情越来越多,手机换IP也成为许多工作需要,一部分人还不知道怎么操作,就跟着小编一起来看看手机换IP的几种方法。一、手动换IP这个适合偶尔换IP,时间富裕的朋友,我们使用手机进行开关飞行模式,这样就可以进行换IP。也可以找到手机设置点进去先进入WiFi热点的列表,点击所连接的WiFi热点的名字。选择“修改网度络”,然后勾选“显示高级选项版”,就可以进行IP设置了。还有一种比较简单,就是用软件辅助换IP,这里以芝麻代理为例

    2022年6月28日
    66
  • B样条曲线的一些基本性质[通俗易懂]

    B样条曲线的一些基本性质[通俗易懂]1.B样条曲线的节点(knotpoint)指的是将区间划分为一段一段的分段点。节点向量(knotvector)则是由多个节点组成的向量。2.B样条曲线的次数(degree)也就是基函数的次数,而阶数(oder)则是次数加1。3.若B样条曲线由n+1个控制点(从P0到Pn),有m+1个节点(从u0到um),阶数为k+1(次数为k),则必须满足m=n+k+1。4.B样条曲线的每个控制点对应一个基函数,所有控制点与对应的基函数的乘积求和可得到B样条曲线的函数表达式。5.B样条曲线具有局部支撑性。第i+

    2022年6月18日
    75
  • java 遍历map集合_Java遍历Map对象的四种方式

    关于java中遍历map具体哪四种方式,请看下文详解吧。方式一:这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。Mapmap=newHashMap();for(Map.Entryentry:map.entrySet()){System.out.println(“Key=”+entry.getKey()+”,Value=”+entry.g…

    2022年4月7日
    43
  • 蛋花花:互联网哪些内容你愿意付费

    蛋花花:互联网哪些内容你愿意付费

    2021年7月8日
    92
  • 自监督学习和无监督学习的区别

    自监督学习和无监督学习的区别无监督学习无监督学习不依赖任何标签值,通过对数据内在特征的挖掘,找到样本间的关系,比如聚类相关的任务自监督学习和无监督学习不同,自监督学习主要是利用辅助任务(pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。换句话说:自监督学习的监督信息不是人工标注的,而是是通过辅助任务(pretext)在大规模无监督数据中自动构造监督信息,通过得到的标签,就可以类似有监督学习一样进行训练。区别自监督学习是从数据本身找标签来进行

    2022年9月14日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号