前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >css布局flying-swing layout

css布局flying-swing layout

作者头像
lesM10
发布2019-08-26 16:38:20
5300
发布2019-08-26 16:38:20
举报
文章被收录于专栏:自译文章/自学记录

本文主要阐述了,自己在对这篇文章(http://www.cnblogs.com/imwtr/p/4441741.html)的理解过程中感到困惑的地方做个补充。


先对圣杯布局作补充: 之前对盒模型不是很理解,只知道单独的一个盒子是怎样的。但是,却不知道多个盒子在嵌套,并列时,相互之间的关系该是如何的。

  • 由于父container设置了左右padding,所以 父container的所有子元素在水平方向的活动区域 被限制在(窗口的宽度 减去 父container的左右padding)这个范围内。为了之后叙述方便称“(窗口的宽度 减去 父container的左右padding)”为tWidth。 由于middle设置了width:100%,所以middle的宽度为tWidth。
  • 在middle, left, right设置了float之后,middle占据第一行,left,right在第二行从左到右紧挨着排列(left, right之所以在第二行,是因为middle的宽度占满了第一行,所以left,right被挤到了第二行)。
  • 在left被设置了margin-left: -100%后(margin-left的value取正整数时,left元素会相对其左侧元素的右边框向右移动。value取负值,left元素则向左移动),向左移动tWidth的宽度。 (可以把middle和left看作是紧挨着的2个元素,只不过第一行没有空间放置left,才把left放置到第二行) 将left元素向左移动tWidth后,正好middle和left的左边框对齐。 在left元素移动后,right元素左侧紧贴middle元素右侧,位于第二行。接着设置margin-left:-220px后,right左移了220px。并且right宽度为220px,所以 right右侧紧贴middle元素右侧。
  • left,right元素设置relative,并且使用left,right属性调整position。使得left,right元素占据 父container的padding区域。

双飞翼布局 不同于 圣杯布局的地方 在于:

  • 双飞翼:main,sub,extra三者并列浮动。main元素包含了main-inner元素。 圣杯: middle,left,right三者并列浮动。没有嵌套。
  • main的宽度100%占据窗口的宽度。sub的margin-left:-100%也是左移了窗口的宽度。
  • main-inner设置margin-left和margin-right是为了使自己的内容想中间缩。这样移动left元素,right元素后,不会叠在main-inner的内容上。

自己可能说的不太清楚,果然自己理解不透 是给别人 讲不清的。那就先这样吧。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.06.24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档