双飞翼布局和圣杯布局解析

今天突然想起了温习一下css布局。之前看双飞翼布局只是粗略的看了一下,大概明白怎么做,但是并没有去延伸一下...还有它的孪生兄弟:圣杯布局。今天仔细的琢磨了一下;突然发现其实内容还不少的样子。

双飞翼布局或者说圣杯布局它们都是三列布局;(一列自适应和两列固定列)。当然,除了三列布局,还有一列布局(自适应居中)、两列布局(一列自适应一列固定列)。

其他两种都相对来说简单些。就着重说一下三列布局。

一、双飞翼布局

           先给出效果图: 

               其中中间一部分是自适应宽度,其他两列是固定列大小。

        

有两种方式可以实现布局,这是第一种;另外一种方式其实和第一种没有多大的差别。只是一个用的margin一个用的padding

body代码:

        

style代码部分

       在这部分中,布局利用了margin-left为负值来完成;详细的在代码中说明

       

第二种实现方法类似第一种,不过做一点微调

body代码:

在中间列的里面加一个内部的div盒子,用它来装内容。

style代码部分:

  前面的一模一样。在.main那里开始变化;最后给inner加一个样式就ok。

二、圣杯布局

它和双飞翼相似。但是实现的思想略有一点不同。

body部分:

style代码部分:

第二种实现方法纯属我按照自己的想法来解释和实现,是我自己的一个理解。实现的效果是相同的,是我自己在测试的时候,发现.container设置内边距和设置外边距的效果是相同的。但是就只改变padding为margin的话,效果如下图

纳里。。什么意思?两边的列呢?打开盒模型检查的时候发现,两边的列是好好的呆在两边的啊。乍一看!原来是被隐藏掉了。我只改变了padding为margin。然后两边就被

隐藏掉了。找了半天。问题出现了在overflow:hidden的那里,因为我这时候为container设置的是外边距:即container和其他外围盒子之间的距离。当给两列设置偏移量时是补外边距的空白。将两列放在了外边距中就会产生内容溢出的问题,这样用overflow:hidden的话,就会隐藏溢出的内容;自然就看不见了固定的两列。方法就是换一种方法来清除浮动。这里我直接给footer元素加上clear:left;就清除了浮动就ok了。得到效果图:

时间: 2024-10-25 11:00:55

双飞翼布局和圣杯布局解析的相关文章

css布局之圣杯布局和双飞翼布局

圣杯布局和双飞翼布局 今天看了很多圣杯布局和双飞翼布局的技术博客,通过自己的理解总结一下吧. 1.二者相同点: 实现的都是三栏布局,两边的盒子宽度固定,中间盒子自适应,也就是我们常说的固比固布局.它们实现的效果是一样的. 2.不同点: 圣杯布局知识点:浮动,负边距,相对定位,不需要添加额外标签. 双飞翼:只用到浮动,负边距,不需要使用相对定位,需要添加一个额外的标签. 注意:html结构中中间部分要写在左右布局之前,为了优先渲染. 下面就先来看一下圣杯布局的实现过程吧: 先写出基本DOM结构:

双飞翼布局以及圣杯布局

双飞翼布局和圣杯布局其实结果是一样的,都是实现三栏布局,中间宽度自适应,两端宽度固定,只是实现的方法不一样 圣杯布局 三栏是独立的,利用外层container的padding 以及 两端的margin以及定位left,right值实现 <!-- HTML --> <div class="container"> <div class="middle">我是位于中间</div> <div class="le

CSS网页布局基础-圣杯布局和双飞翼布局

行布局 多列布局 圣杯布局 双飞翼布局 一.行布局 行布局垂直水平居中 注:这里没有用margin: 0 auto;先让它水平居中,而是使用了绝对定位布局,然后设置top:50%; left:50%;但是光设置这个还不够,因为这并不是水平垂直居中,因为它并没有考虑自身的宽度和高度,所以这里根据盒子本身的高宽又再此基础上设置了margin-left和margin-top.如果只设置了top:50%; left:50%;而没有设置margin-left和margin-top,效果如下: 代码如下:

【CSS】 布局之圣杯布局

在看众多大神的css布局指南时,经常看到一个布局:圣杯布局(也有称为双飞翼布局的).今天我们也来剖析一下. 其实,对于众多css布局,我们只要明确理解了3种技术,那么基本上大多数布局都难不倒我们了: 浮动 float 绝对定位和相对定位 negative margin 负边距 relative position 浮动 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止. 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样.(w3c) 上面是

css布局之圣杯布局

三列布局中,左右两列定宽,中间一列自适应是比较常用的一种布局方式.代表性的布局方式有圣杯布局和双飞翼布局. 圣杯布局 下面这些布局都是通过浮动来实现 的,但常常只将三列布局中,左右两列定宽,中间一列自使用看成是圣杯布局.我认为这种观点其实有点狭隘. 单从圣杯布局这个名字来讲,也不是单指三列布局,圣杯并不是三列布局的形象表示,在西方圣杯是指渴求之物.在网页展现时我们渴求之物当然是主内容区域的信息. 圣杯布局就是:将主内容区域首先加载,其次再加载侧边的内容. 先来理解理解一下圣杯布局是如何实现的:

负边距、三栏布局(圣杯布局、双飞翼布局)

首先来了解下 一.负边距在让元素产生偏移时和position: relative有什么区别? position:relative产生偏移时,他原来的位置不会脱离文档流的,即还占用原来的空间,但负边距产生偏移时它原来的位置并不占用空间: 例如下面的代码 Document *{ margin: 0px; padding: 0px; } .up,.down,.middle{ background-color: red; height: 100px; width: 100px; } .negative-

双飞翼布局和圣杯布局的对比

先回顾一下 圣杯布局的实现过程>> 在不增加额外标签的情况下,圣杯布局已经非常完美,圣杯布局使用了相对定位,以后布局是有局限性的,而且宽度控制要改的地方也多,那么有没其他方法更加简洁方便呢? 在淘宝UED探讨下,增加多一个div就可以不用相对布局了,只用到了浮动和负边距,这就是我们所说的双飞翼布局. DOM结构:main内层增加了一个div <div class="header">Header</div> <div class="bd

双飞翼布局和圣杯布局

双飞翼布局: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-

双飞翼布局与圣杯布局

一.圣杯设计思路: DOM结构: <div class="container"> <div class="main">main</div> <div class="left">left</div> <div class="right">right</div> </div> 思路: 1.将div.container通过padding来