CSS定位与浮动

  定位的基本思想很简单,它允许你定义元素框相对于其正常位置应该出现的位置,或者相对于父元素、另一个元素甚至浏览器窗口本身的位置。显然,这个功能非常强大,也很让人吃惊。要知道,用户代理对 CSS2 中定位的支持远胜于对其它方面的支持,对此不应感到奇怪。

  一切皆为框!行内元素和块级元素都是框,通过display可以改变框本来的类型

none 此元素不会被显示。
block 此元素将显示为块级元素,此元素前后会带有换行符。
inline 默认。此元素会被显示为内联元素,元素前后没有换行符。

1、定位 position

(1)static元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。

(2)absolute元素框偏移某个距离。http://www.w3cfuns.com/thread-258-1-1.html

  无父级:参照浏览器左上角

  有父级:父级无position,参照浏览器左上角

      父级有position,参照父级左上角

(3)relative元素框从文档流完全删除,并相对于其包含块定位。

  无父级:参照自身原来在文档流中位置的左上角

  有父级:父级无position,参照自身原来在文档流中位置的左上角

      父级有position:有padding,参照padding

              无padding,参照自身原来在文档流中位置的左上角

(4)fixed元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。

  始终不动

2、浮动

浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

http://www.w3school.com.cn/css/css_positioning_floating.asp

3、清除浮动

clear:both;

清除影响(对下一个元素的影响)

原文地址:https://www.cnblogs.com/jianjianwoshi/p/4384704.html