【分享】说说标准——CSS核心可视化格式模型(visual formatting model)之九:浮动(Float)定位细则二
6. 浮动框的顶边不可以高于源文档中先前元素产生的块框或浮动框的顶
例子最直接了:
<style type="text/css">
div {
width: 100px;
height: 100px;
background-color: green;
color: white;
margin: 10px 0;
}
</style>
<div style="width:180px; height:auto; overflow:hidden; background:white; border:1px solid gold;">
<div style="float:left;">O</div>
<div style="float:left; background-color: blue;">A</div>
<div style="float:right; width:50px; background-color: red;">B</div>
</div>O、A、B都是浮动元素,O、A是做浮动元素,根据宽度计算,A应该处于O的下一行。B是右浮动浮动元素。按照标准,B浮动的时候,顶边不应高于A,因此,B不会放到O的右侧显示如图:
如果让A和B换个位置:
<style type="text/css">
div {
width: 100px;
height: 100px;
background-color: green;
color: white;
margin: 10px 0;
}
</style>
<div style="width:180px; height:auto; overflow:hidden; background:white; border:1px solid gold;">
<div style="float:left;">O</div>
<div style="float:right; width:50px; background-color: red;">B</div>
<div style="float:left; background-color: blue;">A</div>
</div>这时候:很神奇吧,别以为上面有位子浮动元素就会往上放。
7. 浮动框的顶边不可以高于源文档中先前元素产生的包含一个框的任何行框的顶。
在前面的内容中说到过,浮动元素会缩短行框。
关于行框,请参见:说说标准——CSS核心可视化格式模型(visual formatting model)之五:常规流中的inline formatting context。
例子:
<div style="width:400px; height:50px;border:1px solid red;">
<div style="background-color:green; float:left; width:250px;">left</div>
<span style="border:1px solid yellow;">blublublublublublublublublublublublu</span>
<div style="background-color: green;float:right;">right</div>
</div>截图:依照标准来说,应该按照上图的方式放置 right 这个浮动元素。但是,只有Firefox/Chrome/Safari/Opera/IE8(S)是这样的,在IE6/IE7/IE8(Q)中,是这样的:
看来,这条规则,IE遵守的不好啊……
大家注意这个兼容性问题。
8. 左浮动框左边如果有另外一个左浮动框,它的右外边不可以出现在它包含块的右边之右。(或者比较宽松的要求是:一个左浮动不可以超出右边,除非它已经尽可能地靠左排列。)对于向右浮动的元素也有类似的规则。
此条规则也是限定浮动元素的位置范围,不可超出包含块。
9. 浮动框要放置得尽可能的高。
在符合所有规则的情况下,尽可能的向上放,注意6、7两条关于其顶边的规则。
10. 左浮动框必须尽量靠左放置,右浮动框必须尽量靠右放置。在更高的位置和更靠左或靠右的位置间,选择前者。
和第9条,可以算是浮动的大规则吧,尽量的向上向左/右放。
这几条规则中说到的其他元素,都和浮动元素处于相同的 block formatting context 中。
总结
可见,浮动的规则却是很让人迷惑,但从这几条规则中你也不难发现,浮动的宗旨是,在不溢出包含块的情况下,尽量的靠上靠左/右放置,但是不能高于它前面生成的块框、浮动框和行框的顶。
下帖预告:【分享】说说标准--CSS核心可视化格式模型(visual formatting model)之十:控制紧接浮动的排列:clear 特性
那将是另一个纠结的噩梦……
可视化格式模型概述:
http://topic.csdn.net/u/20100719/17/ff203b89-135e-46cf-8fce-705f16e37beb.html?006156676166584196
更多说说标准系列:
【分享】说说标准系列目录
相关推荐
Basic Visual Formatting in CSS
Basic Visual Formatting in CSS
Html和css网页标准指南
Html和css网页标准指南Html和css网页标准指南
前端VScode插件与HTML+CSS速记[代码]
本文详细介绍了前端开发中VSCode的常用快捷键、必备插件及配置设置,同时提供了HTML和CSS的基础知识速记,包括常用标签、选择器、盒子模型、浮动与定位等核心概念。此外,还涵盖了CSS3的新特性、移动端开发技巧以及flex布局的详细讲解,为前端开发者提供了一份全面的学习与参考指南。
HTML+CSS制作简单的家乡网页 ——我的家乡介绍广东 web前端期末大作业
HTML静态网页设计作业,采用DIV+CSS布局,共有多个页面,首页使用CSS排版比较丰富,色彩鲜明有活力,顶部导航及底部区域背景色为100%宽度。都是给学生定制的都符合学校或者学生考试期末作业的水平,有的有js,有的视频+音乐+flash的等元素的插入。 原生(HTML+CSS+JS),网页作品代码简单,可使用任意HTML编辑软件(如:`Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad++` 等任意html编辑软件进行运行及修改编辑等操作) HTML5期末考核大作业源码 包含 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他 可满足大学生网页大作业网页设计作业需求, 喜欢的可以下载! 【查看更多源码地址】:https://blog.csdn.net/bigwhiteshark?type=blog
html+css+div学习API
html+css+div学习API(dhtml css3 html+css)


跨浏览器开发
