文档流 css中间float clear和布局
文档流
先说说什么是公文流转 什么流 它是一系列连续的东西
<div style="background-color:pink;width:40px;height:80px;">第一个框 </div>
<div style="background-color:red;width:40px;height:80px;">第二个框 </div>
<div style="background-color:yellow;width:40px;height:80px;">第三个框 </div>
<span>我换行</span>
<span>我不换行</span>
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGxmMTIzMzIx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
我们写在html里面的元素 系统会放在数据流里依次读取 依照从左到右从上到下的顺序 放置在页面上
当然在放置的过程中 牵扯到行内元素与块级元素的概念
简单说明一下
块级元素: 如div 每个div元素占领一行 假设没有设置宽度 就默认放满整行 假设指定了宽度 即使宽度再小 后面的元素也得另起一行放置
行内元素:如span不会换行 举个样例如A是行内元素 后面的元素就放在A的右边而不是下边
浮动
先看代码
<div style="background-color:pink;width:40px;height:80px;float:left;"></div>
<div style="background-color:red;width:80px;height:80px;"></div>
<div style="background-color:yellow;width:40px;height:80px;"> </div>
<span>我换行</span>
<span>我不换行</span>
大家看第一行的代码里 多了一个float:left
它的意思就是说让这个元素脱离文档流的限制 把他"浮动"到包裹他的容器的最左边 (此时在文档流里就没有它的存在了)
如今在看 那三个div的宽度參数 深红色的宽度是80 我们仅仅看到了右边的40 左边的40个像素被在文档流之外的粉红色div挡住了
这个图的代码例如以下
<div style="float:left;background-color:pink">
<span>dd</span>
<select name="general.language">
<option value="volo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
</div>
<div style="background-color:blue">LLL </div>
<div style="background-color:green"> asdf</div>
<div style="background-color:yellow;" > ddddd</div>
<div> eeee </div>
假设大家用的是chrome的浏览器打开审查元素会看到
事实上蓝色的111div是从顶行放置的 粉红色的div放在它上面 挡住了一部分
(lll asdf 居中打印了 同一段代码在editplus与chrome显示不一样 应该是解释的机制不同吧)
这也符合上面我们说的文档流的理论: 哪个元素有了float属性 就把他取出文档流 而文档流内部的元素就放置在自己应该在的位置上
可问题是我想让asdf也顶行写不行吗?
这就牵扯到float的具体布局方式了 告诉大家一句话
假如某个div元素A是浮动的,假设A元素上一个元素也是浮动的。那么A元素会尾随在上一个元素的后边(假设一行放不下这两个元素,那么A元素会被挤到下一行);假设A元素上一个元素是标准流中的元素,那么A的相对垂直位置不会改变。也就是说A的顶部总是和上一个元素的底部对齐。
div的顺序是HTML代码中div的顺序决定的。
靠近页面边缘的一端是前。远离页面边缘的一端是后。
那有还有一个问题了,假设a本身不是浮动的呢?
钻牛角尖了吧,假设a不是浮动的,那它就还在文档流里面呗!就是以下这个图的大红色块说明的道理
假设还是不明确,自己敲几行代码,看看效果就ok

分析咱们的页面LLL的前面元素有浮动标签 就把LLL放在前边元素的右边
asdf的上一个元素是LLL 所以asdf就放在LLL的正下方 也就是我们图中的效果
那怎么办?
clear
clear : none | left | right | both
取值:
none : 默认值。
同意两边都能够有浮动对象
left : 不同意左边有浮动对象
right : 不同意右边有浮动对象
both : 不同意有浮动对象
clear本身就是清除元素本身的浮动效果的
我们在asdf上加上clear:left就ok了
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGxmMTIzMzIx/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
资料推荐
版权声明:本文博主原创文章。博客,未经同意不得转载。
文档流 css中间float clear和布局的更多相关文章
- 文档流 css中的float clear与布局
文档流 先说说什么是文档流 流是什么 就是一串连续的东西 <div style="background-color:pink;width:40px;height:80px;" ...
- css布局与文档流的关系之float(浮动)
所谓文档流,指元素在排版布局的过程中,元素会自动从左到右,从上到下的流式排列.脱离文档流呢,就是元素打乱了这个排列,或是从排版中拿走. 说到文档流呢,我们先来说一下元素,每个元素呢,都有display ...
- Css问题 margin float 文档流 背景图底部充满
今天来整理一下做网页遇到的问题吧 1.插入背景图片并使图片居于div底部充满整个行. <style> background:url(xxx.jpg) no-repeat; backgrou ...
- float之脱离文档流
所谓的文档流:指的是元素在排版过程中,元素自动从左到右,从上到下的顺序排列. 脱离文档流:也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会当做脱离文档流的元素不存在而进行定位 只有绝对定位 ...
- 浅谈,html\css脱离标准文档流相关
(个人知识有限,难免有误,请见谅) 标准文档流,顾名思义,是要按照一定规矩排列的,默认的就是元素会从左至右,从上至下排列,块级会独占一行,行内元素会和小伙伴们共享一行. 本来在标准文档流下,各个元素相 ...
- Unit 6.标准文档流,浮动,清除浮动以及margin塌陷问题
一. 什么是标准文档流 文本流其实就是文档的读取和输出顺序,也就是我们通常看到的由左到右.由上而下的读取和输出形式,在网页中每个元素都是按照这个顺序进行排序和显示的,而float和position两个 ...
- 前端(八)—— 高级布局:文档流、浮动布局、流式布局、定位布局、flex布局、响应布局
高级布局:文档流.浮动布局.流式布局.定位布局.flex布局.响应布局 一.文档流 1.什么是文档流 将窗体自上而下分成一行一行,块级元素从上至下.行内元素在每行中从左至右的顺序依次排放元素 2.本质 ...
- 一天搞定CSS: 浮动(float)及文档流--10
浮动(float),一个我们即爱又恨的属性.爱,因为通过浮动,我们能很方便地布局: 恨,浮动之后遗留下来太多的问题需要解决,特别是IE6-7(以下无特殊说明均指 windows 平台的 IE浏览器). ...
- html/css基础篇——DOM中关于脱离文档流的几种情况分析
所谓的文档流,指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列.并最终窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素.脱离文档流即是元素打乱了这个排列,或是从排版中拿走. ...
随机推荐
- 汉诺塔问题的java递归实现
import java.util.Scanner; public class Hanoi { int count=0; public void hanoi(int n,char A,char B,ch ...
- Java一流的施工顺序
1.没有对象的构造 public class Test { public static int k = 0; public static int n = 99; public static int i ...
- Linux 于 shell 变数 $#,$@,$0,$1,$2 含义解释:
变量说明: $$ Shell自己PID(ProcessID) $! Shell背景上次执行Process的PID $? 命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 全部參数 ...
- windows下VC界面 DIY系列1----写给想要写界面的C++程序猿的话
非常早就想写关于C++ UI开发的一系列博文,博客专栏刚审核通过,就立即開始刷博文,不能辜负自己的一番热血,我并非写界面的高手,仅仅想通过写博文提高我自己的技术积累,也顺便帮助大家解决界面开发的瓶颈. ...
- EF6操作Sqlite数据库的项目兼容性问题
vs2010无法正确打开2015创建的项目里面操作Sqlite数据库时使用EF6创建的edmx文件(会显示空白) 但是可以正常查询 vs2015无法正确打开2010创建的项目里面操作Sqlite数 ...
- SSH深度历险记(八) 剖析SSH核心原则+Spring依赖注入的三种方式
于java发育.一类程序猿必须依靠类的其他方法,它是通常new依赖类的方法,然后调用类的实例,这样的发展问题new良好的班统一管理的例子.spring提出了依赖注入的思想,即依赖类不由程 ...
- PHP邮件发送(转)
php带有内置的mail() 发送邮件函数,但是较为繁琐:建议上网下载一个PHPMailer:
- 怎么样Ubuntu正在使用root账号登录
一个. 因为当你需要 root 权限,使用 sudo 我们将能够做到这一点.假设你真的需要在 Ubuntu 启用 root 帐户的话,这是最好的运行下面的操作: 1.再次设置 root 的passwo ...
- ajaxfileupload.js插件结合一般处理文件实现Ajax无刷新上传
先上几张图更直观展示一下要实现的功能.本功能主要通过Jquery ajaxfileupload.js插件结合ajaxUpFile.ashx一般应用程序处理文件实现Ajax无刷新上传功能,结合NPOI2 ...
- verilog中的有符号数运算
verilog中的有符号数运算 http://hi.baidu.com/lixu1113/item/d00dc095f86aed48f142159a verilog中的有符号数运算 有符号数的计算:若 ...