CSS圣杯布局和双飞翼布局的区别是什么?

区别:圣杯布局给中间div分别设置左右内边距后,将左右两个div进行定位并设置right和left属性,以便不遮挡中间div;双飞翼布局直接在中间div内部创建子div用于放置内容,在该子div里分别设置左右外边距为左右两栏div留出位置。

CSS圣杯布局和双飞翼布局的区别是什么?

本文操作环境:windows10系统、css 3、thinkpad t480电脑。

(推荐教程:CSS视频教程)

CSS中的圣杯布局和双飞翼布局

作用:

立即学习“前端免费学习笔记(深入)”;

圣杯布局和双飞翼布局解决的问题是相同的,就是两边顶宽,中间自适应的三栏布局,中间栏要在放在文档流前面以优先渲染。

区别:

圣杯布局和双飞翼布局解决问题的方案在前一半是相同的,也就是三栏全部float浮动,但左右两栏加上负margin让其跟中间栏div并排,以形成三栏布局。

不同在于解决”中间栏div内容不被遮挡“问题的思路不一样:

圣杯布局,为了中间div内容不被遮挡,将中间div设置了左右padding-left和padding-right后,将左右两个div用相对布局position: relative并分别配合right和left属性,以便左右两栏div移动后不遮挡中间div。

双飞翼布局,为了中间div内容不被遮挡,直接在中间div内部创建子div用于放置内容,在该子div里用margin-left和margin-right为左右两栏div留出位置。

多了1个div,少用大致4个css属性(圣杯布局中间divpadding-left和padding-right这2个属性,加上左右两个div用相对布局position: relative及对应的right和left共4个属性,一共6个;而双飞翼布局子div里用margin-left和margin-right共2个属性,6-2=4),个人感觉比圣杯布局思路更直接和简洁一点。

简单说起来就是”双飞翼布局比圣杯布局多创建了一个div,但不用相对布局了“,而不是你题目中说的”去掉relative”就是双飞翼布局“。

最终界面是一样的:

1.jpg

对比图:

2.png

圣杯布局:

优点:不需要添加dom节点

缺点:圣杯布局的缺点:正常情况下是没有问题的,但是特殊情况下就会暴露此方案的弊端,如果将浏览器无线放大时,「圣杯」将会「破碎」掉。如图:当middle部分的宽小于left部分时就会发生布局混乱。(middle

CSS圣杯布局和双飞翼布局的区别是什么?

CSS圣杯布局和双飞翼布局的区别是什么?

 当middle的宽度为大于left宽度时:

CSS圣杯布局和双飞翼布局的区别是什么?

nbsp;html>                    圣杯布局                    #bd{                padding: 0 200px 0 180px;                height: 100px;            }            #middle{                float: left;                width: 100%;                height: 500px;                background:blue;            }            #left{                float:left;                width:180px;                height:500px;                margin-left:-100%;                background: #0c9;                position: relative;                left: -180px;            }            #right{                float: left;                width: 200px;                height: 500px;                margin-left: -200px;                background: #0c9;                position: relative;                right: -200px;            }                        
            
middle
            
left
            
right
        
    

登录后复制

其中:

左右栏通过添加负的margin放到正确的位置了,此段代码是为了摆正中间栏的位置

#bd{                padding: 0 200px 0 180px;                height: 100px;            }

登录后复制

中间栏的位置摆正之后,左栏的位置也相应右移,通过相对定位的left恢复到正确位置

#left{                                position: relative;                left: -180px;            }

登录后复制

中间栏的位置摆正之后,右栏的位置也相应左移,通过相对定位的right恢复到正确位置

#right{                                position: relative;                right: -200px;            }

登录后复制

双飞翼布局:

优点:不会像圣杯布局那样变形

缺点是:多加了一层dom节点

CSS圣杯布局和双飞翼布局的区别是什么?

nbsp;html>                   双飞翼布局        #center{     float:left;     width:100%;/*左栏上去到第一行*/          height:100px;     background:blue; } #left{     float:left;     width:180px;     height:100px;     margin-left:-100%;     background:#0c9;} #right{    float:left;    width:200px;    height:100px;    margin-left:-200px;      background:#0c9; } /*给内部div添加margin,把内容放到中间栏,其实整个背景还是100%*/  #inside{    margin:0 200px 0 180px;     height:100px; }                    
             
middle
         
         
left
         
right
      

登录后复制

更多编程相关知识,请访问:CSS视频教程!!

以上就是CSS圣杯布局和双飞翼布局的区别是什么?的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2882862.html

(0)
上一篇 2025年3月10日 20:14:18
下一篇 2025年2月25日 08:57:58

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • css after是什么

    css after是CSS中的一种选择器,该选择器可用于在被选元素的内容后面插入内容,其语法如“p:after{ content:””;background-color:yellow;color:red;}”。 本文…

    2025年3月10日
    200
  • myeclipse css 不起作用怎么办

    myeclipse css不起作用的解决办法:首先关闭服务器;然后删除Tomcat目录中webapps下的工程文件夹和“work/Catalina/localhost”目录下的工程文件夹;最后在myeclipse中重新部署项目即可。 本教程…

    2025年3月10日
    200
  • css可以在html里面写吗

    css可以在html里面写,其写法有:1、在head标签的style标签中写css;2、直接在HTML代码里添加style属性,然后在该属性里定义css代码即可。 本教程操作环境:windows7系统、css3&&html5…

    2025年3月10日
    200
  • css font-size 不管用怎么办

    css font-size不管用的解决办法:1、尽量设置大于或等于12px的字体大小;2、在div css布局时,字体大小样式要设置为偶数值,以达到兼容各大浏览器的效果。 本教程操作环境:windows7系统、css3版,Dell G3电脑…

    2025年3月10日
    200
  • css中鼠标点击的五种状态分别是什么

    css中鼠标点击的五种状态分别是: (视频教程分享:css视频教程) 1、a:link{color:#fff}  未访问时的状态(鼠标点击前显示的状态) 2、a:hover{color:#fff}  鼠标悬停时的状态 立即学习“前端免费学习…

    2025年3月10日
    200
  • 如何解决浏览器不加载css文件的问题

    解决浏览器不加载css文件的方法:1、检查css路径是否错误并修改;2、将css文件中指定的编码与页面设置统一;3、修改文件后缀的minetype类型;4、检查并修改HTML头部的DOCTYPE声明。 本教程操作环境:Windows7系统、…

    2025年3月10日
    200
  • css子元素如何相对父元素定位?

    在css中,可以使用position属性,通过给父元素设置相对定位“position:relative;”样式,给子元素设置绝对定位“position:absolute;”样式来实现子元素相对父级元素定位。 本教程操作环境:windows7…

    2025年3月10日
    200
  • hover在css中有什么用?

    在css中,“:hover”选择器用于选择鼠标指针浮动在上面的元素,然后为其设置样式,语法格式“元素:hover{css样式};”;“:hover”必须位于“:link”和“:visited”之后(如果存在的话),这样样式才能生效。 相关推…

    2025年3月10日
    200
  • css设置文字外发光效果

    实现代码: (推荐教程:CSS教程) nbsp;html>h1{text-shadow: .2rem 0rem .5rem red,-.2rem 0rem .5rem red,0rem .2rem .5rem red,0rem -.2…

    2025年3月10日
    200
  • css a代表什么

    css a代表的是a标签,a标签定义超链接,用于从一张页面链接到另一张页面,其中a元素最重要的属性是 href 属性,它指示链接的目标。 本教程操作环境:windows7系统、css3版,Dell G3电脑。 推荐:《css视频教程》 a代…

    2025年3月10日
    200

发表回复

登录后才能评论