> 本章内容略显陈旧,主要描述如何用浮动替代表格布局,并没有什么出彩的地方。不过其间提到了清楚浮动的几种方法,那么今天就总结一下如何清楚浮动吧。

#### 为什么要清除浮动?
虽说是清除浮动,其实是清除浮动产生的影响。
浮动的元素,高度会塌陷,而高度的塌陷使我们布局中需要清除浮动的最重要的原因之一。

#### 清除浮动的方法:
1. 父级div定义height

- 原理:父级div手动定义height,就解决了父级div无法自动获取到高度的问题。
- 优点:简单、代码少、容易掌握
- 缺点:只适合高度固定的布局,要给出精确的高度,如果高度和父级div不一样时,会产生问题
- 建议:不建议使用,只建议`高度固定`的布局时使用

2. 结尾处加空div标签 clear:both

- 原理:添加一个空div,利用CSS提供的clear:both清楚浮动,让父级div自动获取高度
- 优点:简单、代码少,浏览器支持好,不容易出现怪问题
- 缺点:如果页面浮动布局多,就要增加很多空div
- 建议:不推荐使用,但此方法是目前使用很频繁的一种方法

3. 父级div定义伪类:after和zoom

- 原理:IE8以上和非IE浏览器才支持,原理类似2,zoom(IE专有属性)可解决ie6,ie7浮动问题
- 优点:浏览器支持好、不容易出现怪问题(目前:大型网站都有使用,如:腾迅,网易,新浪等等)
- 缺点:代码多、不少初学者不理解原理,要两句代码结合使用才能让主流浏览器都支持。
- 建议:推荐使用,建议定义公共类,以减少css代码

4. 父级div定义overflow:hidden

- 原理:必须定义width或zoom:1,同时不能定义height,使用overflow:hidden时,浏览器会自动检查浮动区域高度
- 优点:简单、代码少、浏览器支持好
- 缺点:不能和position配合使用,因为超出的尺寸会被隐藏
- 建议:只推荐没有使用position的朋友

5. 父级div定义overflow:auto

- 原理:必须定义width或zoom:1,同时不能定义height,使用overflow:auto时,浏览器会自动检查浮动区域的高度
- 优点:简单、代码少、浏览器支持好
- 缺点:内部宽高超过父级div时,会出现滚动条。
- 建议:不推荐使用,如果你需要出现滚动条或者确保你的代码不会出现滚动条就使用吧。

6. 父级div 也一起浮动

- 原理:所有代码一起浮动,就变成了一个整体
- 优点:`没有优点`
- 缺点:会产生新的浮动问题。
- 建议:不推荐使用,只作了解。

7. 父级div定义 display:table

- 原理:将div属性变成表格
- 优点:`没有优点`
- 缺点:会产生新的未知问题。
- 建议:不推荐使用,只作了解。

8. 结尾处加 br标签 clear:both

- 原理:父级div定义zoom:1来解决IE浮动问题,结尾处加 br标签 clear:both
- 建议:不推荐使用,只作了解。

Day_8.《无懈可击的web设计》-巧妙地浮动效果的更多相关文章

  1. 《无懈可击的Web设计》_灵活的文字

    常见的方法 body{ font-size:12px; } 使用像素单位的优点: 不管使用哪种浏览器或者设备来查看,文字看起来都大小一致. 为什么这么做不是无懈可击的? 以像素为单位设定文字大小之后, ...

  2. web设计之无懈可击

    无懈可击的web设计旨在尽可能地考虑页面元素在各个情况下都能够呈现最好的效果. 1. 思路总览 2. 灵活的文字 3. 可伸缩的导航栏 4. 可扩展的行 5. 自由的框式组件 6. 图片/标题/说明文 ...

  3. 关于响应式web设计

    手机网站+电脑网站+平版网站 = 响应式网站 在没有足够经费跟精力的做一个手机网站的情况下,响应式网站是个不错的选择.它有以下的优点: 减少工作量(网站代码只要一份,只需要做js方面的改动及可以了) ...

  4. CSS3-基于浮动的布局,响应式WEB设计,定位网页上的元素,设计打印页面的css技术

    基于浮动的布局: 1.除非图片设置了宽度,否则始终应该要对浮动的图片设置一个宽度,这样可以让浏览器给其他内容腾出环绕的空间 2.当侧边栏的高度与主内容区的高度不一致的时候,可以用个margin进行调整 ...

  5. 什么是响应式Web设计?怎样进行?

    http://beforweb.com/node/6/page/0/3 开始第一篇.老规矩,先无聊的谈论天气一类的话题.十一长假,天气也终于开始有些秋天的味道,坐在屋里甚至觉得需要热咖啡.话说两年前也 ...

  6. 分享29个超赞的响应式Web设计

    原文自:http://www.csdn.net/article/2013-01-16/2813678-responsive-design-websites 最近几年,响应式Web设计不断印入人们眼帘, ...

  7. Web开发——HTML基础(HTML响应式Web设计 Bootstrap)

    参考: 参考:http://www.bootcss.com/ 目录: 1.什么是响应式 Web 设计? 2.创建自己的响应设计 3.使用 Bootstrap 1.什么是响应式 Web 设计? RWD ...

  8. web设计_1_思路总览

    核心思想:结构和样式分离 HTML与CSS 只有充分将页面核心内容和外观设计相分离而获得的灵活性,才能顺利构建出能够满足每个web用户需要的最佳设计方案. 核心要求:灵活性 适应不同的浏览器,适应各种 ...

  9. 2015年7个重要的Web设计趋势

    Web设计趋势每一年都会有所变化.但设计师的创意天赋是推动改变网页设计标准的法则.如果在2015年,网页缺少以下7个设计元素,必定被淘汰~ 1.排版更灵活 这部分的主要焦点在于,字体展现会受到新兴排版 ...

随机推荐

  1. 图片拉伸(有保护区域) resizableImageWithCapInsets

    在仿写QQ会话的时候背景蓝色图片是拉伸而来,但是有些地方是受保护的不能拉伸 所以定义了下面的工具类中的一个方法,专门拉伸图片 UIImageResizingModeStretch:拉伸模式,通过拉伸U ...

  2. iOS_SN_BlueTooth( 一)蓝牙相关基础知识

    原文  http://www.cocoachina.com/ios/20150915/13454.html 作者:刘彦玮 蓝牙常见名称和缩写 MFI ======= make for ipad ,ip ...

  3. HSSFClientAnchor(int dx1,int dy1,int dx2,int dy2,short col1,int row1,short col2, int row2)

      public HSSFClientAnchor(int dx1, int dy1, int dx2, int dy2, short col1, int row1, short col2, int  ...

  4. MFC 多线程

    MFC对多线程编程的支持 MFC中有两类线程,分别称之为工作者线程和用户界面线程.二者的主要区别在于工作者线程没有消息循环,而用户界面线程有自己的消息   队列和消息循环. 工作者线程没有消息机制,通 ...

  5. phantomjs form提交

    phantomjs表单提交,其实就是对DOM就行操作(获取元素),在这里实现了动态传入各种参数 不说了 直接上代码 var page = require('webpage').create(), sy ...

  6. 函数:灵活即强大 - 零基础入门学习Python018

    函数:灵活即强大 让编程改变世界 Change the world by program 上节课我们基本介绍了Python函数的用法,非常简单.这节课我们主要针对函数的参数和返回值进一步深入学习.学习 ...

  7. php生成json和js解析json

    php生成json $value=array("name"=>"dfas");echo json_encode($value); js解析json var ...

  8. js django 数据互动

    后台传输到客户端的数据怎么跟js进行互动 eval("("+{{data|safe}}+")") 获取到的数据可以直接使用 eval 有时候会存在编码问题所以推 ...

  9. 2015北大夏令营day1 B:An Idea of Mr. A

    题意:给定一个范围l,r计算i,j(i<j)属于这个范围内的gcd(2^(2^i)+1,2^(2^j)+1)的总和. 思路:费马数的应用,让我惊呆的是当年居然有123个人会做,我tm毛都不会.. ...

  10. 膜拜一个神奇的女人——Hedy Lamarr

    她演绎了首部露点电影.经历了六次婚姻.出版了首本自曝隐私的自传,还曾入室行窃过两次——在这样一个饱受争议的大环境下,她还能在60多年前提出“跳频”技术和一系列无线信号技术的全新概念,其中,“跳频”技术 ...