侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

css 圣杯布局

2023-12-17 星期日 / 0 评论 / 0 点赞 / 20 阅读 / 2717 字

我们会遇到这样的一种场景,需要一种布局,要求有一部分是定宽(垂直一个思想,只不过不用浮动),剩下的要充满剩余的宽度,这个时候我们就可以使用“圣杯布局”: 1.我们简单做一下: <!DOCTYPEHTM

我们会遇到这样的一种场景,需要一种布局,要求有一部分是定宽(垂直一个思想,只不过不用浮动),剩下的要充满剩余的宽度,这个时候我们就可以使用“圣杯布局”:

1.我们简单做一下:

<!DOCTYPE HTML><html><head><style>*{	margin:0px;	padding:0px;}.basic{	float:left;	height:200px;	position: relative;	color:#fff;}#main{	width:100%;	background:#0f0;}  #left{	width:190px;	background:#f00;	margin-left: -100%;}#right{	width:190px;	background:#00f;	margin-left: -190px;}.wrap{	overflow: hidden;	padding:0px 190px;}</style><head><body><div class="wrap">	<div class="basic" id="main">middle	</div>	<div class="basic" id="left">left	</div>	<div class="basic" id="right">right</div></div></body></html>

大家可以注意到,为了达到“充满的效果“,我们的main设置了 width:100%;那么我们的left就要做负margin 100%,right就要做负margin 本身的宽度,这里是-190px,一遍能充满一行,看一下效果:

2.这里有个什么问题?我们的middle被覆盖了,这个不行,我们要解决一下,可以给wrap部分加个padding,左右给left、right做个让位,之后再对左右进行定位,改一下看看

.wrap{	overflow: hidden;//做了个清除浮动,养成好习惯	padding:0px 190px;}

    a.对wrap设个padding,看下效果

    b.已经给left和right让位了,剩下的就是对他们俩做相对定位了:

#left{	width:190px;	background:#f00;	margin-left: -100%;	position: relative;	left: -190px;}#right{	width:190px;	background:#00f;	margin-left: -190px;	position: relative;	right: -190px;}

再看一下效果:

好了,中间的”middle“已经出来了,中间的绿色跟最初代销不一致是因为我拖过窗口了,然后还有点亮看不大清字,就不调了,这就是”圣杯布局“;

ps:这其实就是一种思想,垂直做高度也一样,只是不用浮动了,margin就可以解决,基本的思路都是一样的;

广告 广告

评论区