Css布局系列-float 浮动

准备讲一个布局系列由浅入深,先讲解一些基本属性理论,在通过实例与理论相结合,争取讲明白讲清楚。欢迎大家一起讨论,一起学习一起奋斗。废话少说,先去官方网站看看是怎么解释定义float浮动。

官方定义:

float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。如果浮动非替换元素,则要指定一个明确的宽度;否则,它们会尽可能地窄。假如在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止。

看着这一些定义似懂非懂,要是真在使用的时候,还是有一些不懂的地方。现对其官方定义进行归纳总结一下他的特点:

  • 浮动主要是改变元素排列方向,脱离普通流。取值范围为left、right、none(不浮动);
  • 浮动不占文档的位置,如果与非浮动块级元素重叠,浮动元素将会置顶层也就是最上一层;
  • 如果指定元素为浮动,该元素将会拥有inner-block特性且宽度将会变得尽可能地窄,建议指定一个宽度;
  • 指定浮动元素的方向后,当浮动元素碰到父级元素边框就会停止浮动或是碰到另一个浮动元素的边框同样也会停止浮动;
  • 如果指定浮动元素后,后续非浮动块级元素会紧跟着浮动元素后面,并会自动填充元素的宽度;
  • 假如浮动在一行之上只有极少的空间可供浮动元素,那么这个元素会跳至下一行,这个过程会持续到某一行拥有足够的空间为止(待验证今天太晚了)。

补充说明:普通流(也称标准流)规定元素是从左到右、从上到下顺序排列。

下面我们通过实例来逐一进行验证,当然不排除在某种特殊的情况下我的归纳总结不成立,不过我是没有想出来的。

  1. 这个就不浪费时间;
  2. 将div1设为向左浮动,你可以看到他与div2元素重叠,且div1在最顶层,并且也验证没有占用任何空间了,与元素设为绝对定位和z-index 效果是一样,但是要不尽完全相同,你可以看到div2文字要没有被覆盖住。真是一个让人捉摸不透浮动啊!

3.  将div1的高宽度去掉,他就会根据你的文字宽度自撑了,如果不给高宽度能有多窄就有多窄,其实与元素设为inner-block且不设定高宽度效果一样都是自撑,后续还会介绍该属性。在某种意义上来讲设置元素浮动与行内块是一个道理,只不过浮动是可以改变元素方向而已。

4.  设置div1 div2 两个元素向左浮动,根据我归纳总结的,如果浮动元素碰到父级元素的边框或碰到另一个浮动元素边框停止浮动。div1就是碰到父级元素容器的边框 、div2就是碰到div1的边框停止浮动,如果猜想有问题,应该是div2元素是要覆盖div1的元素,可是没有,证明我归纳是正确的。

5. 设置div1 元素向左浮动,根据我归纳总结的,如果指定浮动元素后,后续非浮动块级元素会紧跟着浮动元素后面,并会自动填充元素的宽度。其实div2的宽度是100%了,div1是浮动在div2元素上面的。上面说过浮动元素是不占文档任何空间的。

时间: 2024-12-08 22:14:11

Css布局系列-float 浮动的相关文章

CSS布局之float浮动

之前对CSS的浮动布局总是一知半解,最近开发中用的多了,对它的用法进行一些总结,以便以后忘记时可以查到.哈哈,别说我记性不好,我可是说真的,毕竟前端的知识实在是多而杂,多做笔记,遇到问题时网上搜索资料是其一,但我觉得更重要的是把你遇到的问题和解决方法记录下来..这样以后你的开发效率是多高.言归正传,对浮动进行一些记录. 1.首先,网页是一个文档流,默认按块元素和级联元素从左到右,从上至下的依次显示.而Float浮动元素,就好比是漂浮在了文档流之上,不占据文档流的位置. 如下就是不进行任何浮动的文

转:CSS布局:Float布局过程与老生常谈的三栏布局

使用CSS布局网页,那是前端的基本功了,什么两栏布局,三栏布局,那也是前端面试的基本题了.一般来说,可以使用CSSposition属性进行布局,或者使用CSSfloat属性布局.前者适合布局首页,因为首页上的内容往往可以完全控制.后者适合布局模板,模板中填充的内容你没法控制——比如,在编辑wordpress模板时,你肯定没法考虑每篇博文的长度.这篇博文,就是总结一下怎样使用CSS中的float属性进行布局,其实网上有很多讨论这个话题的文章了,但我觉得都没说到点子上.那就来老生常谈一次吧,CSS之

Css布局系列-上下两栏应用场景

今天讲讲上下两栏布局的应用场景,在此之前稍微提一下box-sizing这个属性.该属性有三个值分别为content-box|border-box|inherit. box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素. 通常我们设置的高宽度其实是指内容的高宽度,是没有将边框的高宽度算在内的.如果设置box-sizing:content-box就是只包含盒子内容的高宽度,边框的高宽不包含在内,默认就是这种算法(图1).如果想将边框包含在我们设置的高宽度之内,设置box-sizin

Css布局系列-经典三列布局

今天给大家介绍经典三列布局和实现原理: 通过浮动(float)进行实现,如果对float不是很清楚可以去看看我上篇介绍的: 通过绝对定位布局: 通过float加margin的负值进行组合实现.  对三种情况分析: 第一种通过浮动(float)布局,特别需要注意在定义元素结构的时候要将居中元素放到right元素的后面(container->left-right-center),不能像正常那种思维去定义结构(container ->left-center-right): *{margin: 0;p

css选择器及float(浮动)

--------------------------选择器( css有就近原则)------------------------------- 选择器名称                 在css表的形态                在html中的调用 ?html标记符选择器:        p,a,img,div,span....          不用另外加任何东西 ?具有上下关系的选择器:     div span a (中间是空格)       不用另外加任何东西 ?类(class)选

CSS布局模型 之 浮动模型(浮动的工作原理和清除浮动技巧?)

浮动的工作原理 浮动是让某元素脱离文档流,在浮动框之前和之后的非定位元素会当它不存在一样,可能沿着它的另一侧垂直流动,但都为其腾出空间,块级元素也不例外(被浮动元素占据了部分行空间的块级元素,仍然被看作是占据了一整行,只不过是被浮动元素占据的那部分空间无法利用罢了). 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止:如果当前线上的水平空间不足,它将逐行向下移动,直到有空间为止(所以浮动元素不会影响页面上方布局).任何元素都可以浮动,浮动元素会生成一个块级框(拥有块级

CSS布局(四) float详解

一.float设计初衷 因为float被设计出来的初衷是用于--文字环绕效果.即,一个图片一段文字,图片float:left之后,文字会环绕图片. <div style="width: 100px;height: 100px"> <img src="image/1.jpg" style="width: 50px;height: 50px;float: left">阿斯利康大家啊胜利大街拉速度来喀什建档立卡结算单 </

Css布局系列-综合应用

年前的最后一篇,也不知道明年该何去何从.我从事信息化系统研发,已有四余载干了这么长时间,感觉什么都会一点,你让我去干我也干了出来,但是,有时候要感觉自已什么都不会,唉.我准备明年想去好好做做前端,希望有人愿意收留吧!如果你们招人也可M我哦. 废话不说了进入正题结合前面几篇所讲的,今天给介绍信息化管理系统的布局,其实我见过信息化管理系统大多都是这种布局.请看效果图: 先对效果图进行分析: 先从上往下看,可以分成上中下三个部份,再从左往右看分成左右二个部份: 从上往下看的三个部份的高度加起来正好等于

Css布局系列-上下两栏布局

上下两栏布局,这个在做信息系统的时候我感觉用得比较多.结合前面布局的介绍,改天给介绍一个稍微比较复杂的真实信息系统布局.请看效果图: 要点:最顶一栏给其固定高度,下面一栏高宽度让其自撑,如果该栏的内容溢出,设置overflow属性为auto,允许其出现滚动条.下面一栏必须给设置绝对定位,他top的距离就是等于顶栏的高度且bottom等于0,就会自动拉升高度. *{margin: 0;padding: 0;} html, body{height: 100%;} .container{height: