千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:郑州千锋IT培训  >  技术干货  >  圣杯布局

圣杯布局

来源:千锋教育
发布人:lxx
时间: 2023-02-07 17:04:00

  本文,我们学习经典的三列布局——圣杯布局。

  圣杯布局,顾名思义,中间容器高,旁边两侧的容器低,整个布局看上去像一个圣杯

圣杯布局

  我们来实现一下。

  创建 grail-layout.html 文件和 grail-layout-style.css 文件。在 html 里构建基础代码,引入外部样式。

6c393d157e8d194821d3e8c5a084655

 

  在 body 里添加一个 div 容器,定义类属性。在容器里定义子元素 div,定义类属性。在子元素main 里面 添加三个 div 容器,定义样式类分别为,class="left",class="right",填入一些文本。

ba4a3fc830488531da2b481f274991b

  定义选择器 .container,声明样式:width: 100%,height: 500px,min-width: 700px。外层容器宽度小于等于700像素,高度固定。

  定义选择器 .left,声明样式:height: 200px,background-color:pink。给左侧容器设置固定高度,并添加一个背景颜色。

  定义选择器 .center,声明样式:height: 800px,background-color: gold。给中间容器设置固定高度,并添加一个背景颜色。

  定义选择器 .right,声明样式:height: 200px,background-color:greenyellow。给右侧容器设置固定高度,并添加一个背景颜色。

95d79320bac7c26ee6ed39be3c02eec

       在浏览器里预览一下效果。

       回到 css,定义选择器 .main,声明样式:padding: 0 300px 0 200px,给左右两侧的容器留出空间。

       看一下效果。左边留出 200px 间隙,右面留出 300px 间隙。

1

2

3

  下一步,我们要做的就是将左右两个子元素,放置到左右两个间隙处,这里需要用到浮动和负margin。给 left 添加样式 float: left,width: 200px,使左侧容器左浮动,宽度等于间隙的大小。给 center 添加样式 float: left,width: 100%,使中间容器也左浮动,宽度撑满父容器。

4

  我们看,因为中间容器宽度为 100%,左侧容器折行到了下面。

5

  因为中间容器宽度为 100%,外层容器已经装不下左侧容器,只能折行显示到下面。想要实现左侧容器回到页面左上角,只需要将左侧容器向左移动 父容器宽度即可。

  回到 css,我们就给 left 添加一样式 margin-left: -100%。

  再看一下效果,左侧容器盖在了中间容器上面,但它的位置应该在屏幕的左上角。

6

  继续给 left 添加样式:position: relative,right: 200px,再让它向左移动 200px。

  这样,左侧容器的布局就完成了。接下来调整右测容器的布局。

  和左侧容器一样的思路,给 right 添加样式:float: left,width: 300px,margin-right: -300px。

  看一下最终效果,当缩放窗口时,左右两个容器固定不动,中间容器自适应。到这儿,圣杯布局就大功告成了!

  关于圣杯布局有一点需要注意:由于三个子元素都是浮动的,撑不开父元素的高度,这就需要给父元素设置固定高度,或者做浮动的清理。

  有关经典的三列布局——圣杯布局,就讲完了。最后布置一个作业,根据屏幕上提供的 html 结构,完成另一个经典的三列布局——双飞翼布局效果。

  双飞翼布局和圣杯布局最大的不同就是,它多了一个包裹着中间元素的容器。当给 container 容器添加了边框后,要求左右两个容器在边框内部排列。

7

  文章配套教程链接:https://www.bilibili.com/video/BV1oU4y1278g?p=97

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

类的加载机制是什么

2023-03-21

如何定义Java变量?

2023-03-14

细节决定成败:探究Mybatis中javaType和ofType的区别

2023-03-09

最新文章NEW

java实现多线程的几种方式

2023-03-21

java编程spring框架的作用

2023-03-21

什么是java中的进制

2023-03-17

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>