CSS浮动属性Float到底什么怎么回事,下面详细解释一下

float 是 css 的定位属性。在传统的印刷布局中,文本可以按照需要围绕图片。一般把这种方式称为“文本环绕”。在网页设计中,应用了CSS的float属性的页面元素就像在印刷布局里面的被文字包围的图片一样。浮动的元素仍然是网页流的一部分。这与使用绝对 定位的页面元素相比是一个明显的不同。绝对定位的页面元素被从网页流里面移除了,就像印刷布局里面的文本框被设置为无视页面环绕一样。绝对定位的元素不会 影响其它元素,其它元素也不会影响它,无论它是否和其它元素挨着。

像这样在一个元素上用CSS设置浮动:

#sidebar { float: right; }

fload属性有四个可用的值:Left 和Right 分别浮动元素到各自的方向,None (默认的) 使元素不浮动,Inherit 将会从父级元素获取float值。

Float的用处

除了简单的在图片周围包围文字,浮动可用于创建全部网页布局。

web layout CSS浮动属性Float详解

Float对小型的布局同样有用。例如页面中的这个小区域。如果我们在我们的小头像图片上使用Float,当调整图片大小的时候,盒子里面的文字也将自动调整位置:

reflow example 1 CSS浮动属性Float详解

同样的布局可以通过在外容器使用相对定位,然后在头像上使用绝对定位来实现。这种方式中,文本不会受头像图片大小的影响,不会随头像图片的大小而有相应变化。

reflow example 2 CSS浮动属性Float详解

清除Float

清除(clear)是浮动(float)的相关属性.一个设置了清除Float的元素不会如浮动所设置的一样,向上移动到Float元素的边界,而是会忽视浮动向下移动。如下,一图顶千言。

uncleardfooter

上例中,侧栏向右浮动,并且短于主内容区域。页脚(footer)于是按浮动所要求的向上跳到了可能的空间。要解决这个问题,可以在页脚(footer)上清除浮动,以使页脚(footer)待在浮动元素的下面。

#footer { clear: both; }

cleardfooter

清除(clear)也有4个可能值。最常用的是 both,清楚左右两边的浮动。left 和 right 只能清楚一个方向的浮动。none 是默认值,只在需要移除已指定的清除值时用到。inherit 应该时第五个值,不过很奇怪的是 IE 不支持(这个不奇怪吧,IE 从来都这么特立独行吧 -糖伴西红柿注)。只清除左边或右边的浮动,实际中很少见,不过绝对有他们的用处。

directionalclearing CSS浮动属性Float详解

伟大的塌陷

使用浮动(float)的一个比较疑惑的事情是他们怎么影响包含他们的父元素的。如果父元素只包含浮动元素,那么它的高度就会塌缩为零。如果父元素不包含任何的可见背景,这个问题会很难被注意到,但是这是一个很重要的问题。

collapse CSS浮动属性Float详解

塌陷的直观对立面更不好,看看下面的情况:

whywecollapse CSS浮动属性Float详解

当上面的块级元素自动扩展以适应浮动元素时,段落间的文本流中会出现非自然的空白换行,而且没有有效的方法来修正这个问题。对于这种情况,设计师的抱怨会更甚于对塌陷的抱怨(没理解,不是设计完成之后才会进行页面编码吗?- 糖伴西红柿)。

为了防止怪异的布局和跨浏览器的问题,塌陷问题几乎总是被要处理的。我们在容器中的浮动元素之后,容器结束之前来清除浮动。

清除浮动的技术

如果你很明确的知道接下来的元素会是什么,可以使用 clear:both; 来清除浮动。这个方法很不错,它不需要 hack,不添加额外的元素也使得它有良好的语义性。当然事情并不是都可以这样解决的,工具箱中还是需要另外几个清除浮动的工具。

  • 空div方法从字面来看,是一个空的 div。
    。有时可能会用
    或者一些其他元素,但是 div 是最常用的,因为它没有浏览器默认样式;没有特殊功能,而且一般不会被 css 样式化。这个方法因为只是为了表现,对页面没有上下文涵义而被纯语义论者嘲笑。诚然,从严格的角度来说他们是对的,但是这个方法有效而且没有任何伤害。
  • overflow 方法在父元素上设置 overflow 这个 css 属性。如果父元素的这个属性设置为 auto 或者 hidden,父元素就会扩展以包含浮动。这个方法有着较好的语义性,因为他不需要额外元素。但是,如果需要增加一个新的 div 来使用这个方法,其实就和空 div 方法一样没有语义了。而且要记住,overflow 属性不是为了清除浮动而定义的。要小心不要覆盖住内容或者触发了不需要的滚动条。
  • 简单清除方法使用了一个聪明的 css 伪选择符(:after)来清除浮动。比起在父元素上设置 overflow,只需要给它增加一个额外的类似于”clearfix”的类。这个类使用如下 css:
     .clearfix:after { content: "."; visibility: hidden; display: block; height: 0; clear: both; }

    这会在清除浮动的父元素之后应用一点看不见的内容。这不是全部内容,还需要一些额外的代码来适应那些老旧的浏览器。

不同的情况需要不同的浮动清除方法。以一个具有不同样式块的网格为例。

grid blocks CSS浮动属性Float详解

为了从视觉上较好的把相似的块联系起来,需要在必要的地方开启新行,这里是颜色改变的地方。如果每个颜色组都有一个父元素的话,我们可以使用 overflow 或者 简单清除方法。或者,在每组之间用一个空div方法。额外的 div 之前并不存在,可以自己试试来看看哪个方法好。

grid blocks cleared CSS浮动属性Float详解

浮动的问题

浮动因脆弱而饱受诟病。大多数的脆弱性来自于 IE6 及其一系列的浮动相关 bug。因为越来越多的设计师不再支持 IE6 了,你也可以不关注它了。不过对于那些要关注的人来说,这里有些大概。

  • 推倒是浮动元素内的元素(大多是图片)比浮动元素本身宽造成的现象。大多数的浏览器会在浮动之外渲染图片,但是不会有伸出来的部分影响其他布局。IE 会扩展浮动来包含图片,精彩大幅度地影响布局。一个普遍的例子是突破伸出主内容之外把侧栏推到下面。pushdown2 CSS浮动属性Float详解
  • 快速修正:确保不是图片造成这种情况,使用 overflow:hidden 来切除多余的部分。
  • 双倍边距bug处理 IE6 时,另一个需要记住的事情是,如果在和浮动方向相同的方向上设置外边距(margin),会引发双倍边距。快速修正:给浮动设置 display:inline; 而且不用担心,它依然是块级元素。
  • 3像素间距是指挨着浮动元素的文本会神奇的被踢出去3像素,好像浮动元素的周围有一个奇怪的力场一样。快速修正:在受影响的文本上设置宽度或高度。
  • IE7 中,底边距 bug是当浮动父元素有浮动子元素时,这些子元素的底边距会被父元素忽略掉。快速修正:用父元素的底内补白(padding)代替。

本文转自寒意博客园博客,原文链接:http://www.cnblogs.com/hnyei/archive/2011/09/27/2193133.html,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/285381.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MAUI Developer Day in GCR

点击蓝字关注我们编辑:Alan Wang排版:Rani Sun活动介绍作为一个支持在单一代码库中开发能够运行在 Android、iOS、macOS 和 Windows 等多平台的应用程序的跨平台框架,.NET MAUI (多平台应用程序用户界面)还在预览版时就…

C语言试题126之请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二…

【ArcGIS风暴】ArcGIS点云抽稀(稀疏化LAS点)详解案例教程

考虑对过采样 LAS 数据(例如通过摄影测量方式获得的点云以及多个叠加激光雷达扫描的返回值)使用稀疏化LAS点工具,以优化显示性能和加速分析操作。 文章目录 1. 创建las数据集2. 稀疏化LAS点适用版本:ArcGIS10.6以上。 1. 创建las数据集 扩展阅读:ArcGIS10.6创建LAS数据集…

20145313张雪纯《信息安全系统设计基础》第11周学习总结

20145313张雪纯《信息安全系统设计基础》第11周学习总结 教材 异常控制流(ECF) 最简单的“平滑序列”类型的控制流是指PC中相邻的指令在存储器中也相邻。而异常控制流则是指程序变量表示的内部程序状态中的变化、系统状态的变化等突发情况使得控制系统做…

Silverlight 5 beta新特性探索系列:9.视频快进快退和TextSearch对象对文字项查询

本节讲诉两个新特性:一、在Silverlight 5中可以控制MediaElement对象播放的视频进行快进快退控制。二、在Silverlight 5中的文字项进行搜索查询。 一、对于MediaElement媒体播放对象的视频进行快退快进控制 它是通过MediaElement.PlaybackRate属性进行控制的。当前此…

【错误异常大全】:ArcGIS Engine中C#无法引用ESRI.ArcGIS.AxControls问题

ArcGIS Engine中C#无法引用ESRI.ArcGIS.AxControls问题,具体如下。 发现在引用列表中找不到ESRI.ArcGIS.AxControls服务。 一直显示感叹号。 多次尝试添加无果,解决方法:选中引用列表中的ESRI.ArcGIS.AxControls,在属性表窗口中将…

C语言试题122之利用递归函数调用方式,将所输入的 5 个字符,以相反顺序打印出来。

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 题目:利用递归函数调用方式,将所输入的 5 个字符,以相反顺序打印出来。 2 、温馨提示 想…

Java IO流读取/写入/修改某个字符串(通用)

2019独角兽企业重金招聘Python工程师标准>>> package com.test;import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import jav…

重新开始征程

自本科毕业,离开那座城市,来到帝都,开始新的生活,也就没有再开垦这片热土。重启征程是因为研究生快要毕业啦! 改了昵称和博客的名称,在百度搜索的时候发现,本科毕设拿了省优秀毕业设计三等奖了&…

.Net Core-做一个微信公众号的排队系统

Part1前言微信扫码登录,微信扫码获取排队信息这些场景很常见,但是大家知道里面的原理是怎么实现的呢?今天我就来给大家解惑!Part2总体流程1浏览器请求服务器获取到二维码图片浏览器生成唯一值uuid通过uuid获取到带参数的二维码&am…

C语言试题123之有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。问第 4 个人岁数,他说比第 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2 个人,说比第一个

1、题目 题目:有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。问第 4 个人岁数,他说比第 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2 个人,说比第一个人大两岁。最后 问第一个人,他说是 10 岁。请问第五个人多大? 分析:利用递归的方法,递…

【ArcGIS Engine二次开发】地图操作(1):加载Mxd地图文档

在ArcGIS中,以mxd作为扩展名的文件叫地图文档。地图文档中只是包含图层的引用,即存储当前地图的图层路径、符号、状态、修饰等信息,并不存储真实的数据层。 ArcGIS Engine中有常见两种加载地图文档的方法:LoadMxFile方法和IMapDocument方法,案例效果如下图所示: 打开VS20…

JAVA的extends用法

理解继承是理解面向对象程序设计的关键。在Java中,通过关键字extends继承一个已有的类,被继承的类称为父类(超类,基类),新的类称为子类(派生类)。在Java中不允许多继承。(1)继承 [java] view plaincopy cla…

CSS伪元素 after 实现鼠标悬浮信息及动画效果

<p class"titleinfo_title title_hover" data-content" 04 喜看稻菽千重浪--记首届国家最高科技奖获得者袁隆平 等三篇"> 04 喜看稻菽千重浪--记首届国家最高科技奖获得者袁隆平 等三篇 </p> 强制多行显示效果&#xff1a; <style type&…

C语言试题124之给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字

C语言试题124之给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字 47/100 发布文章 u011068702 未选择任何文件 new ✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模…

使用ML.NET+ONNX预训练模型整活B站经典《华强买瓜》

前言最近在看微软开源的机器学习框架ML.NET使用别人的预训练模型(开放神经网络交换格式.onnx)来识别图像&#xff0c;然后逛github发现一个好玩的repo。决定整活一期博客。首先还是稍微科普一下机器学习相关的知识&#xff0c;这一块.NET虽然很早就开源了ML.NET框架&#xff0c…

C语言试题125之一个 5 位数,判断它是不是回文数。即 12321 是回文数,个位与万位相同,十位与千位相同

✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 题目:一个 5 位数,判断它是不是回文数。即 12321 是回文数,个位与万位相同,十位与千位相…

SQL Server在更改计算机名后的设置

把原来的账号删除 再添加现有的账号 添加权限 搞定了上面的账号配置&#xff0c;接下来就是设置服务器名称 参考&#xff1a;http://www.cnblogs.com/EasonJim/p/6114249.html 后话&#xff1a;当初为了设置这个问题&#xff0c;选择了重装SQL Server&#xff0c;但是也是无用的…

Jupyter Notebook 入门指南

简介 Jupyter Notebook&#xff08;此前被称为 IPython notebook&#xff09;是一个交互式笔记本&#xff0c;支持运行 40 多种编程语言。 Jupyter Notebook 的本质是一个 Web 应用程序&#xff0c;便于创建和共享文学化程序文档&#xff0c;支持实时代码&#xff0c;数学方程…