盒模型:规定单个盒子的规则

视觉格式化模型(布局规则):页面中多个盒子的排列规则

三种方式:

1.常规流

2.浮动

3.定位

常规流布局

常规流   也可以叫做   文档流、普通文档流、常规文档流

所有元素,默认情况下,都属于常规流布局

总体规则:块盒独占一行,行盒水平依次排列

包含块(containing block):每个盒子都有它的包含块,包含块决定了盒子的排列区域。

绝大情况下,一个盒子的包含块,就是其父元素的内容盒(子元素跟着父元素移动)

块盒

1.每个块盒的总宽度,必须刚好等于包含块的宽度

宽度的默认值是auto,意思是将剩余空间吸收掉(如父元素内容盒宽度100px 子元素border宽度1px padding宽度10px width设为auto,则子元素内容盒宽度为78px)

居中方案:子元素设定宽度,margin设置为auto

2.每个块盒垂直方向上的auto值

height:auto,适应内容的高度

margin:auto,表示0

3.百分比取值

padding、宽、margin可以取值百分比

以上是相对于包含块的宽度。

高度的百分比:

①父元素未设置高度,子元素设置百分比无效

②父元素设置高度,子元素按照父元素高度*百分比计算(如果内容过多,则会溢出)

4.外边距合并(height)

两个块盒相邻,外边距会重叠。(两个外边距取最大值)

父子元素,若父元素没有border和padding,父子元素的margin也会合并(只要是相邻就会合并)

浮动

1.文字环绕

2.横向排列

浮动的基本特点:

修改float属性值为:

left:左浮动,元素靠上靠左

right:右浮动,元素靠上靠右

默认值为none

1.被设置浮动的元素,会变成块盒(display属性变成block)

2.浮动元素的包含块,为父元素的内容块。

3.宽度、高度为auto时,适应内容宽度

4.margin为auto时,为0

5.浮动盒子在排列时会避开常规流块盒,而常规流块盒无视浮动盒子

6.行盒在排列时会避开浮动元素(如果文字没有在行盒中,浏览器会自动生成一个包裹文字的行盒,叫做匿名行盒)

高度坍塌

原因:常规流盒子的自动高度,在计算时,不会考虑浮动盒子

解决办法:清除浮动

css属性:clear

默认值:none

left:清除左浮动,该元素必须出现在前面所有左浮动盒子的下方

right:清除右浮动,该元素必须出现在前面所有右浮动盒子的下方

both:清除所有浮动,该元素必须出现在前面所有浮动盒子的下方

最新文章

  1. 手机端页面自适应解决方案—rem布局
  2. Android获取时间
  3. linux win 通用的获取Mac的方法
  4. scala偏函数
  5. 如何使用js捕获css3动画
  6. Android-RecyclerView-Item点击事件设置
  7. BZOJ 3375: [Usaco2004 Mar]Paranoid Cows 发疯的奶牛( set )
  8. c中使用malloc动态申请二维数组
  9. python 自动化之路 day 13
  10. Ch.3 Aray and String
  11. web service实例
  12. pthread_detach()与pthread_join的区别?
  13. 基于CentOS安装FTP服务器
  14. Lab 9-3
  15. Linux学习第一天————了解root用户和基本的shell命令
  16. JVM探秘4---垃圾收集器介绍
  17. 什么是FEBS
  18. SpringBoot Laravel(artisan serve) MIXPHP简单性能测试
  19. hive表命名规范 源码规则
  20. 【转】自动化测试框架: pytest&allure ,提高自动化健壮性和稳定性

热门文章

  1. js集合
  2. 安卓开发中遇到java.net.SocketException: Permission denied
  3. 走进电影院观看VTK
  4. Python调用libsvm
  5. linq和转换运算符
  6. css 页面滚动 多背景固定不动
  7. 关于jquery改变onclick方法,最保险的做法
  8. 基于Docker的Mysql Cluster集群
  9. 开发笔记-记一个基础logback配置
  10. python基础数据类型 数据类型