`
XTU_xiaoxin
  • 浏览: 239867 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

css浮动(float)

阅读更多

 

前言

关于float,我相信大家都接触过,也都用过,应该都知道float的作用以及使用float时呈现的效果。但是,如果你仅仅是停留在了解的基础上,我相信float的很多行为会让你大吃一惊。下面我将根据一些例子来描述下float的一些特性。(博客从CSDN博客导入,排版有问题,原博客可看:css浮动float


测试例子

例子1 - 所有元素使用float:

<div class="dt">
  <div>测试块一</div>
   <span class="float">
     普通流 - 非float
   </span>
</div>

css代码

float {
    /* float:right;*/  先不赋予float属性
    background-color:#FFC0CB;
    color:#fff;

测试结果

展示结果很正常,很好理解,没有什么问题。那让我们看看给元素赋上float属性会是什么样吧。

.float {
    float:right;
    background-color:#FFC0CB;
}

测试结果-float属性

  • 现象一:父元素(虚线部分)高度收缩了,为什么呢? 哦,原来是float元素会脱离文档流,不再占用父元素的空间,既然不占用空间,对父元素来说,float就好像不存在一样咯;
  • 现象二:还有个特性,不知大家注意到没,float元素和父元素(width:400px)是右边对齐的,所以我们又得出一个结论:虽然float是脱离文档流的,对父元素来说好像不存在似的,但它是不会跑到父元素边界的外面,浮动还是受到父元素的限制的
  • 现象三:如果浮动元素前面有相邻的块级元素(block)的话,会把浮动元素挤到下面。

    提示:有时我们仅仅希望使用浮动来进行文档布局,浮动元素的尺寸仍然保留,这就需要用到浮动清除(clear)了,关于浮动清除,主要应用到css元素clear: both处理,更详细的了解可以去网上搜索相关资料

    关于现象三,如果元素前面有相邻的行内元素(inline)呢,又会出现什么样的结果?测试一下,HTML代码修改如下:

<div class="dt">
   <span>测试块一</span>
    <span class="float">
      普通流 - 非float
    </span>
</div>

为了更清晰看见效果,修改css中 float值为left:

.float {
    float:left;
    background-color:#FFC0CB;
}

测试结果

看到了吧,如果浮动元素前面有相邻的行级元素(inline)的话,是不会把浮动元素挤到下面,相反浮动元素会把行级元素内容挤到后面去

例子2 - 当块级元素或行内元素遇上文档流

为了更好的演示,将HTML作以下修改:

<div class="dt">
      <div>测试块一</div>
      <span class="float">
        普通流 - float:left
      </span>
       <div style="background-color:red;color:#fff;">
          No wonder there's so much cynicism out there. No wonder there's so much disappointment.
       </div>
    </div>
float {
    float:left;
    background-color:#FFC0CB;
    border:solid 1px blue;
    /* 设置透明样式 */
     filter:alpha(opacity=50);
      -moz-opacity:0.5;
      -khtml-opacity: 0.5;
      opacity: 0.5;
}

测试结果

通过半透名的float元素可看到,float元素脱离文档流了,对块级元素框(红色北京部分)进行了覆盖,但块级元素(block)里的行内元素(英文字母)在float元素后,所以float元素并没有对这些文字进行覆盖。所以这里可得出结论:浮动是脱离文档流的,会覆盖块级元素(block)的框,但不能覆盖行内元素(inline)的框

可以参照下面例子作进一步验证:
修改HTML如下(将块级元素标签div换成行内元素标签span):

<div class="dt">
      <div>测试块一</div>
      <span class="float">
        普通流 - float:left
      </span>
       <span style="background-color:red;color:#fff;">
          No wonder there's so much cynicism out there. No wonder there's so much disappointment.
       </span>
    </div>

测试结果

看见了吧,通过半透明的float元素,已经不能看见红色的背景色了。所以浮动元素不会覆盖行内元素(inline),只会”挤压”行内元素的空间

例子3- 行内元素(inline)带上浮动属性

<div class="dt">
      <div>测试块一</div>
      <span class="float" style="width:300px;height:200px;">
        普通流 - 非float
      </span>
 </div>
.float {
    /*float:left;*/
    background-color:#FFC0CB;
}

测试结果

span是一个行内元素(inline),所以,对它设置width和height属性,是不会有任何效果的,从展示结果可以看出,确实无任何影响。那我将span元素加上浮动属性,会是什么样呢?看下面例子:

.float {
    float:left;
    background-color:#FFC0CB;
}

测试结果

看见了吧,行内元素(inline)加上浮动属性,就有了block的特性啦。


总结

float在网页设计中是用的非常广的一个特性,但它也是一个非常古怪、难琢磨的东西,要想透彻的理解它的特性,看来还是需要好好测试、验证。

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    DIV+CSS布局:CSS浮动float属性详解[归纳].pdf

    CSS浮动float属性详解 在Web开发中,布局是非常重要的一方面,浮动float属性是CSS布局中非常关键的属性。通过对浮动float属性的理解和掌握,我们可以更好地实现网页的布局和排版。 Float浮动属性基本释义 float...

    DIVCSS布局:CSS浮动float属性详解.doc

    DIVCSS布局:CSS浮动float属性详解.doc

    从零开始学前端 - 6. CSS浮动float详解 示例代码.rar

    从零开始学前端 - 6. CSS浮动float详解 示例代码 : 她不美却常驻我心 博客地址: https://blog.csdn.net/qq_39506551 CSDN 上传的资源会自动涨积分,如有需要留下邮箱

    CSS浮动属性Float详解 什么是CSS Float?

    CSS 浮动属性 Float 详解 CSS 浮动属性 Float 是一种重要的定位属性,允许页面元素浮动在其他元素旁边。Float 属性可以取四个值:Left、Right、None 和 Inherit。其中,Left 和 Right 分别浮动元素到左边和右边,...

    css浮动 float属性详解

    【CSS浮动(float属性)详解】 一、浮动的概念 浮动(float)是CSS布局中的一个重要概念,它使得元素能够脱离正常文档流,向左或向右移动,直至其边框接触到包含框或另一个浮动元素的边框。这个特性最初设计是为了...

    理解CSS浮动float、定位position

    浮动(float)和定位(position)是CSS布局中的两个关键概念,它们在网页设计中扮演着重要角色,用于控制元素的位置和排列方式。 一、浮动(float) 浮动最初设计的目的是为了实现文本环绕图片的效果,但后来发展成为一种...

    css float浮动属性使用方法和实例讲解

    css float是一个经常需要使用的css属性,该属性用于设置css块级元素的浮动方向(左右浮动)。本文向码农介绍css float使用方法和实例应用。 Css的float浮动属性,用于设置标签对象(如:标签盒子、标签、标签、标签...

    CSS浮动属性Float详解[收集].pdf

    CSS浮动属性Float详解 CSS浮动属性Float是CSS中的一种定位方式,它可以使元素在网页流中浮动,周围的元素可以围绕它排列。浮动元素仍然是网页流的一部分,这与使用绝对定位的页面元素不同。绝对定位的页面元素被从...

    css浮动和定位

    **一、CSS浮动** 浮动(Float)最初是为了实现图文混排而引入的,但现在已成为构建多列布局的基础。当一个元素被设置为浮动,它会脱离当前的正常流(normal flow),向左或向右移动,直到其边框碰到包含元素的边框...

    浮动float深入了解

    浮动(float)是CSS布局中的一个核心概念,尤其在传统网页设计中扮演了重要角色。它允许元素在容器内水平移动,直到其边缘碰到容器的边框或其他浮动元素。本篇文章将深入探讨浮动的工作原理,以及如何有效地利用它来...

    如何正确的理解CSS的float浮动属性.pdf

    如何正确的理解CSS的float浮动属性.pdf

    css 的 float 与clear

    在CSS世界中,`float`和`clear`是两个非常重要的布局属性,它们在网页设计中扮演着不可或缺的角色。这两个属性对于理解盒模型以及创建复杂的网页布局至关重要。在这篇文章中,我们将深入探讨`float`和`clear`的概念...

    CSS清除浮动_清除float浮动 - DIVCSS5.htm

    具体详细的阐述了css浮动如何解决和浮动产生的原因。

    CSS2中文参考手册+CSS浮动

    CSS浮动是网页布局中一个重要的概念,主要用于创建多列布局。当一个元素被设置为浮动(float:left或float:right),它将从当前的流中移出,向左或向右移动,直到碰到边框或者另一个浮动元素。这个特性在早期网页设计...

    CSS浮动详解及其解决方案

    内容概要:本文档全面讲解CSS浮动概念,浮动规则、实际应用及解决方案。详细讲述了通过使用float属性进行左右布局的基本方法,包括浮动的基础、浮动的常见规则以及在各种布局场合的应用示例,并着重解决了由浮动引发...

    div+css float 布局,适配手机

    在这个特定的案例中,“div+css float 布局,适配手机”指的是利用 CSS 的浮动属性 (`float`) 来创建响应式网页布局,以便在手机等移动设备上也能正常显示。 浮动布局(float layout)是 CSS 中一个经典但仍然广泛...

Global site tag (gtag.js) - Google Analytics