浮动:
浮动没有包含在定位position之中;它作为一种定位方式自成一体。
元素浮动生成块级框(类似于inline-block);祖先元素中的其他的内容会环绕该元素;其外边距不会与其他元素合并。
浮动规则:
1.浮动元素左右外边界不能超过其包含块的左右内边界
2.一般浮动元素在同一包含块中左右相邻;特殊时上下位置分布
3.相邻左右浮动元素放不下时,后出现的向下放
4.浮动元素顶端必不高于父元素内顶端;两合并外边距间的浮动元素,放置时仿佛在两元素之间有一个块级元素来阻止浮动元素一样。
5.浮动元素顶端不高于所有之前出现的浮动元素或块级元素顶端
6.浮动元素顶端不高于包含其之前元素生成框的任何行框的顶端
7.浮动元素不能超出其包含元素的边界;除非它太宽以致放不下
8.浮动元素须尽可能高的放置
9左浮动向左尽可能远,右浮动元素向右尽可能远;位置越高,可能浮动越远。
tip1:浮动非图片元素时;必须给他设定高度;否则后果难料
【浮动就是尽量将该元素往上放,能放多高放多高;直到碰到某个元素的边界为止。】–Eric
【浮动相当于元素在Z轴上的架子腿升高了】–Lsdm
有父元素时的清除方法:
1.为浮动元素的父元素应用overflow:hidden;强制它包围浮动元素。
简单但不直观;不能再下拉菜单的顶级元素上运用,否则会隐藏下拉菜单。该设定的真正用途是防止元素被超大内容撑大;设定后的包含元素会保持其设定的宽度,超过的内容会被隐藏。
2.为浮动元素的父元素应用浮动;同时为父元素下方的元素应用clear:both,使得该元素不会排到浮动元素的父元素的旁边。不能运用于靠外边距自动居中的元素;否则就不会再居中。
3.给父元素的最后添加一个一个非浮动的 子元素,然后清除该子元素。由于包含元素一定会包围非浮动的子元素,而且清除会 让这个子元素位于(清除一侧)浮动元素的下方,因此包含元素一定会包含这个子元 素——以及前面的浮动元素。除了直接添加一个div元素;还可以如下处理
没有父元素时的清除方法:
1.给一个浮动元素应用clear:both;强迫它定位 在前一个浮动元素下方;
2.同上,使用.ele:after{};技术;
经典用法:
1.用于实现文字环绕图片效果;
2.使得原本上下堆叠的块级元素变成左右并列,实现布局中的分栏;