让css初学者抓狂的属性float
挣扎了好久,始终没有决定要不要写博客,心里有几个顾虑一是我是小白,我写的文章有没有人看?二是我是小白,我写的文章假如存在诸多错误,理解的不对发表上去再去误导别人。三是写一篇文章费时费力。但是我现在想明白了,我不写技术大牛的文章,就写菜鸟的学习型文章。我写文章是为了我自己,不是为了别人。有错误正好别人提出改正。
写文章有几个好处,一来可以理清思绪,对于我这个思维混乱的人来说是再好不过的方法了,二来可以记录学习知识,方便以后忘记了可以回来看看。三是已积累起来的文章可以让自己很有成就感。
文章多是学习别人文章的总结和自己的个人见解,所以实际上有些认识可能是不准确的,欢迎大神们指点,也欢迎交流。
Float属性是css必会属性之一,但是它看上去简单,却有很深的奥义。看了张鑫旭的两篇文章,对于float的理解提高了一个层次。
http://www.zhangxinxu.com/wordpress/?p=583 CSS float浮动的深入研究、详解及拓展(一)
http://www.zhangxinxu.com/wordpress/?p=594 CSS float浮动的深入研究、详解及拓展(二)
以下是我对于他的文章写的个人总结和一些认识。
再讲float属性之前,必须要知道高度的概念和display:inline-block的包裹性
高度由两个css模型产生:
一个是box模型(content的height+padding+margin),这个是最基础的大家应该都是知道;
一个是line box模型(line-height,内部的最高部分决定),这个里面就很深奥,让我学习了一番。

还要说一下display:inline-block的包裹性,即设置了这个属性,该元素拥有block的属性可以设置宽和高了,也用拥有了行内元素的属性,宽和高将根据内容自适应。这里强调的是他后面的属性根据内容自适应宽和高的特性。
一般情况下一个块级元素,没有设置display:inline-block这个属性,元素也没有设置宽度的话,元素的宽应该是继承父元素的宽度,如果是行内元素,没有设置display:inline-block这个属性,它的宽度和高度是由内容自适应,但是设置高度和宽度是不管用的。


display:inline-block结合了行内和块级元素,你不设置宽高,我就按内容自适应,你设置了我就按你设置的走。
那么下面我们来说浮动(float)
一、浮动的本质是用来文字环绕的,像分栏布局和列表排列都可用其它属性实现。
二、浮动是一个带有方位的display:inline-block;所以设置浮动,就会有默认的display:inline-block;这个属性。不需要再写display了;设置display:inline-block带来的各种效果,比如高宽自适应而不是继承父元素宽。可以设置高和宽。他的前后不会像块级元素默认换行(但是它没有高度)。
三、浮动会破坏inline-box,产生两个结果。①(无inlinebox->无line-box->无高度)。②图片与文字无法同行显示。这两个结果恰恰是文字环绕的所必需的。
实践与解释


文字多了,你看就是所谓的环绕效果吧

Float:left|right;与position:absolute;的一些区别
Float:left|right;属性与position:absolute属性都具有包裹性,两者都会使元素脱离文档流,但是,与absolute不同的是:float 的元素还会在文档流上占据一个位置。position:absolute的元素是根据最近的非static的父元素定位,如果没有,则根据最初的包含块定义(一般是body),关于float,也会脱离文档流,会被放置在其容器的左边或右边。
关于下列问题
1关于li标签水平排列等一系列float应用及原理
2浮动会破坏自己,影响别人
①
浮动产生bug的原因
②
清楚浮动的方法与本质
3浮动布局的替代效果
还没有具体学习等学习之后再好好总结。
让css初学者抓狂的属性float的更多相关文章
- CSS传统布局之display属性+float属性+position属性
这三个属性是传统网页布局中经常用到的属性. 读这篇文章之前,希望你对css布局模型已经有了一定的了解.因为本文的三个属性是和css三个布局模型紧密联系在一起的.因此,如若你并不了解,我推荐你先看一下c ...
- DIV+CSS:Margin和Padding属性[转载]
margin和padding用来隔开元素,margin是隔开元素与外边,padding是隔开元素里边. margin: 包括margin-top.margin-right.margin-bottom. ...
- CSS和JavaScript标签style属性对照表
CSS和JavaScript标签style属性对照表一般情况是把"-"去掉,后面字母用大写. CSS语法 (不区分大小写) JavaScript语法 (区分大小写) border ...
- [转]图解CSS的padding,margin,border属性(详细介绍及举例说明)
图解CSS的padding,margin,border属性 W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落.列表.标题.图片以及层 ...
- 图解CSS的padding,margin,border属性(详细介绍及举例说明)
图解CSS的padding,margin,border属性 W3C组织建议把所有网页上的对像都放在一个盒(box)中,设计师可以通过创建定义来控制这个盒的属性,这些对像包括段落.列表.标题.图片以及层 ...
- C#使用CSS选择器抓取页面内容
最近在查wpf绘图资料时,偶然看到Python使用CSS选择器抓取网页的功能.觉得很强,这里用C#也实现一下. 先介绍一下CSS选择器 在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素. ...
- css3系列-2.css中常见的样式属性和值
css3系列-2.css中常见的样式属性和值 继续上一篇文章的继续了解css的基础知识,关注我微信公众号:全栈学习笔记 css中常见的样式属性和值 字体与颜色 背景属性 文本属性 边框属性 内外边距 ...
- 使用Google产品以来遇到的最糟糕、最霸道、最让人抓狂的设计
很久没有登录cnblogs@gmail.com这个邮箱,今天通过gmail.com登录了一下,登录后出现一个对话框要求设置性别与出生日期,而且必须要设置,不设置不让登录. 这个邮箱是我们网站用的是邮箱 ...
- css字体样式(Font Style),属性
css字体样式(Font Style),属性 css字体样式(Font Style)是网页中不可或缺的样式属性之一,有了字体样式,我们的网页才能变得更加美观,因此字体样式属性也就成为了每一位设计者 ...
随机推荐
- struts2多线程数据乱窜问题
转自:http://love398146779.iteye.com/blog/1781680 1.struts2为每个线程提供一个action实例,多线程访问时不会出现问题.当使用spring管理st ...
- maven:log4j:WARN No appenders could be found for logger (loggerInfo).或者maven build error:org.apache.maven.lifecycle.LifecycleExecutionExceptio
maven在build构建时,加载资源文件时需要配置资源文件插件: 1,在pom.xml文件中加入 <build> <finalName>${project.build.tar ...
- Python拷贝(深拷贝deepcopy与浅拷贝copy)
Python中的对象之间赋值时是按引用传递的,如果需要拷贝对象,需要使用标准库中的copy模块. 1.copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象. 2.copy.deepco ...
- 控制反转(IOC)和依赖注入(DI)的区别
IOC inversion of control 控制反转 DI Dependency Injection 依赖注入 要理解这两个概念,首先要搞清楚以下几个问题: 参与者都有谁? 依赖:谁 ...
- HDU 5961:传递(暴搜)
http://acm.hdu.edu.cn/showproblem.php?pid=5961 题意:中文题意.给出两个图,判断这个两个图是否都是传递的.注意一下传递的定义要看清,一开始没看清连样例都看 ...
- Objective-C协议与非正式协议
http://blog.csdn.net/siemenliu/article/details/7836499
- Xcode关闭ARC
开启了ARC则不能显示调用dealloc/retain/release等手动内存管理操作,所以很多情况下需要关闭. Xcode中有两种途径可以关闭ARC. 1.创建项目时将ARC选项的勾取消掉. 2. ...
- zookeeper系列之四—coordinate
http://zookeeper.apache.org/doc/trunk/zookeeperProgrammers.html
- uTenux\AT91SAM3S4C开发套件———硬件电路介绍
无论写什么嵌入式软件,我们都应该首先对硬件有所了解,这样更有助于我们写出高效精简的程序代码.本次活动我们使用的硬件平台是有悠龙公司提供的uTenux\AT91SAM3S4C开发套件,在悠龙公司的主页可 ...
- Cheatsheet: 2013 07.21 ~ 07.31
Mobile Android vs. iOS: Comparing the Development Process of the GQueues Mobile Apps Android Studio ...