css——圣杯布局

时间:2022-09-02 17:40:13

圣杯布局要求

  • header和footer各自占领屏幕所有宽度,高度固定
  • 中间dontainer部分为左中右三栏式布局
  • 三栏布局中左右两侧宽度固定,中间部分自动填充

实现方式

1.浮动

  • 先定义header和footer的样式,使其宽度撑满,高度随意
  • container中三列设置为浮动和相对定位,且center部分放在最起那么,对footer设置clear:both;清除浮动
  • 三列中的左右定宽200px,中间设置100%
  • 由于浮动关系,center会撑满container,左右会被挤下去,给left添加margin-left:-100%,使left回到上一行的最左侧
  • 会发现left遮住了center部分,给container设置padding-left:200px;padding-right:200px;,给left和right腾出位置;
  • 这时的left由于padding的原因并不在最左侧,之前设置了定位,可以给left添加right:200px,使left回到最左侧
  • 对于right可以设置margin-right:-200px;,使其回到第一行

最好设置一个最小宽度防止页面变形

 1 <!DOCTYPE html>
2 <html>
3
4 <head>
5 <meta charset="utf-8">
6 <meta http-equiv="X-UA-Compatible" content="IE=edge">
7 <title>圣杯布局</title>
8 <link rel="stylesheet" href="">
9 </head>
10 <style type="text/css" media="screen">
11 /**
12 圣杯布局要求
13 1.header和footer各自占领屏幕所有宽度,高度固定。
14 2.中间的container是一个三栏布局。
15 3.三栏布局两侧宽度固定不变,中间部分自动填充整个区域。
16 4.中间部分的高度是三栏中最高的区域的高度。
17 */
18 body {
19 min-width: 600px;
20 }
21
22 .header, .footer {
23 width: 100%;
24 height: 100px;
25 background: #ccc;
26 }
27
28 .footer {
29 clear: both;
30 }
31
32 .container {
33 padding: 0 200px;
34 }
35
36 .container .column {
37 float: left;
38 position: relative;
39 height: 400px;
40 }
41
42 #left {
43 width: 200px;
44 right: 200px;
45 background: pink;
46 margin-left: -100%;
47 }
48
49 #right {
50 width: 200px;
51 background: red;
52 margin-right: -200px;
53 }
54
55 #center {
56 width: 100%;
57 background: blue;
58 }
59 </style>
60
61 <body>
62 <div class="header">header</div>
63 <div class="container">
64 <div id="center" class="column">center</div>
65 <div id="left" class="column">left</div>
66 <div id="right" class="column">right</div>
67 </div>
68 <div class="footer">footer</div>
69 </body>
70
71 </html>

2.flex弹性布局

  • 先定义header和footer的样式,使其宽度撑满,高度随意
  • container中的left、center、right依次排列
  • container设置弹性布局display:flex;
  • left、right区域定宽,center部分设置flex:1;
 1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <title>圣杯布局-flex</title>
6 </head>
7 <style>
8 body{
9 min-width: 600px;
10 }
11 .header,.footer{
12 width: 100%;
13 height: 100px;
14 background: #ccc;
15 }
16 .container{
17 display: flex;
18 }
19 .container .column{
20 height: 400px;
21 }
22 #left{
23 width: 200px;
24 background: pink;
25 }
26 #center{
27 flex: 1;
28 background: blue;
29 }
30 #right{
31 width: 200px;
32 background: red;
33 }
34 </style>
35 <body>
36 <div class="header">header</div>
37 <div class="container">
38 <div id="left" class="column">left</div>
39 <div id="center" class="column">center</div>
40 <div id="right" class="column">right</div>
41 </div>
42 <div class="footer">footer</div>
43 </body>
44 </html>

css——圣杯布局的更多相关文章

  1. css圣杯布局的实现方式

    css圣杯布局思路: 外面一个大div,里面三个小div(都是浮动).实现左右两栏宽度固定,中间宽度自适应.中间栏优先渲染. 资源网站大全 https://55wd.com 设计导航https://w ...

  2. CSS 圣杯布局升级版---多个固定宽度一个自适应宽度

    1.一个div固定,一个div自适应宽度.两种情况,固定在左或者在右. HTML: <div class="box1"> <div class="mai ...

  3. CSS 圣杯布局 &sol; 双飞翼布局的实现

    工作的越久,有些基础知识我们可能就逐渐淡忘了,今天我们来回顾一下css的圣杯布局和双飞翼布局, 这两个名词你可能不熟, 那三栏布局你肯定就非常熟悉了, 就是两边定宽, 中间自适应 的 布局 1 , 圣 ...

  4. CSS &vert; 圣杯布局、双飞翼布局 &vert; 自适应三栏布局

    圣杯布局和双飞翼布局是前端工程师需要日常掌握的重要布局方式.两者的功能相同,都是为了实现一个两侧宽度固定,中间宽度自适应的三栏布局 虽然两者的实现方法略有差异,不过都遵循了以下要点: 1.两侧宽度固定 ...

  5. CSS 圣杯布局

    前端的两个经典布局想必大家都有多了解--圣杯布局和双飞翼布局,因为它既能体现你懂HTML结构又能体现出你对DIV+CSS布局的掌握. 事实上,圣杯布局其实和双飞翼布局是一回事.它们实现的都是三栏布局, ...

  6. css圣杯布局、等高布局

    所谓圣杯布局,就是自适应浏览器的分辨率,也称双飞翼布局. 例子: <style> body{margin:0;} .center{height:600px;background:#f60; ...

  7. CSS圣杯布局、双飞翼布局详解

    三栏布局中,经典中的经典应该就是圣杯布局.双飞翼布局没跑了.双飞翼布局和圣杯布局其实是一样的,只不过在写法上有些不同,其布局都是左右固定宽度,中间宽度自适应. 先熟悉一下圣杯布局.双飞翼布局中的特点: ...

  8. css圣杯布局

    HTML <div class="container"> <div class="content">content</div&gt ...

  9. CSS布局 -- 圣杯布局 &amp&semi; 双飞翼布局

    按照我的理解,其实圣杯布局跟双飞翼布局的实现,目的都是左右两栏固定宽度,中间部分自适应. 但在这里实现起来还是有一些区别的 [圣杯布局] 在这里,实现了左(200px) 右(220px) 宽度固定,中 ...

随机推荐

  1. 005&period;TCP--拼接TCP头部IP头部,实现TCP三次握手的第一步&lpar;Linux,原始套接字&rpar;

    一.目的: 自己拼接IP头,TCP头,计算效验和,将生成的报文用原始套接字发送出去. 若使用tcpdump能监听有对方服务器的包回应,则证明TCP报文是正确的! 二.数据结构: TCP首部结构图: s ...

  2. Eclipse SVN插件与TortoiseSVN的对应关系及下载链接

    Eclipse SVN 插件与TortoiseSVN对应关系 Eclipse 3.2/Callisto, 3.3/Europa, 3.4/Ganymede, 3.5/Galileo, 3.6/Heli ...

  3. Hibernate 事件监听

    事件监听是JDK中常见的一种模式. Hibernate中的事件监听机制可以对Session对象的动作进行监听,一旦发生了特殊的事件,Hibernate就会调用监听器类中的事件处理方法.在某些功能的设计 ...

  4. 基于Linux根据僵尸网络病毒平台《比尔盖茨》

    感觉分析的非常好,所以决定翻译出来,希望和大家多多交流O(∩_∩)O~ 转载请注明出处:http://blog.csdn.net/u010484477     O(∩_∩)O谢谢 keyword:病毒 ...

  5. Java的一些基础知识

    1.do-while循环不论循环条件判断结果,至少会执行一次. 2.Javac用于Java源代码文件编译成字节码的编译器. 3.import关键字导入包. 4.Java是Sun公司与1995年退出的高 ...

  6. 20164322韩玉婷 -----Exp2 后门原理和实践

    一.后门的概念       后门是指那些绕过安全性控制而获取对系统访问权的程序 二.基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? 非官方网站下载应用程序时,该应用程序可能绑定了 ...

  7. 617&period; Merge Two Binary Trees

    https://www.cnblogs.com/grandyang/p/7058935.html class Solution { public: TreeNode* mergeTrees(TreeN ...

  8. 云服务设置多台tomcat开机自启动

    紧接此篇文章:http://www.cnblogs.com/leechenxiang/p/7091731.html 1. 修改profile,添加红框内6行代码 vim /etc/profile 代码 ...

  9. C&num; http post上传文件

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  10. Mysql&plus;ODBC&plus;OpenLDAP

    # 1.安装相关软件yum install wget unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel -yyum install mys ...