zoukankan      html  css  js  c++  java
  • 深入浅出——float

    FLOAT 

    参考张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]的CSS float浮动的深入研究、详解及拓展

    1.FLOAT的特性

    float属性的初衷只是为了实现文字环绕效果。

    1.包裹性:对一个相互嵌套的两个元素的父元素设置float,父元素会包裹住子元素,并且与外界产生隔离。

    2.破坏性:对一个相互嵌套的两个元素的子元素设置float,父元素会产生塌陷效果,有被破坏的效果。

    1.1包裹性:

    1.1.1会产生包裹性的属性:

    display:inline-block/table-cell

    position:absolute/fixed/sticky

    overflow:hidden/scroll

     

    1.1.2包裹性的应用:

    display:inline-block某种意义上的作用就是包裹(wrap),而浮动也有类似的效果。举个常见例子,或许您有实现宽度自适应按钮的经验,实现宽度自适应的关键就是要让按钮的大小自适应于文字的个数,这就需要按钮要自动包裹在文字的外面。我们用什么方法实现呢?一就是display:inline-block;二就是float。例如我们要实现新浪博客中的“发表文章”之类的宽度自适应按钮(如下图):

    背景图片为:

    display:inline-block方法

    CSS代码如下:

    .btn1{display:inline-block; background:url(http://www.zhangxinxu.com/study/image/sina_gray_btn.png) no-repeat left top; padding-left:3px; color:#000000; font-size:12px; text-decoration:none;}

    .btn1 cite{display:block; line-height:26px; padding:0 13px 0 10px; background:url(http://www.zhangxinxu.com/study/image/sina_gray_btn.png) no-repeat right top;}

    HTML代码如下:

    <a href="javascript:void(0);" class="btn1"><cite>inline-block方法</cite></a>

    结果如下图:

     

    float:left方法
    此方法的CSS代码与上面的inline-block方法唯一不同之处就在于这里是float:left;

    CSS代码如下:

    .btn1{float:left; background:url(http://www.zhangxinxu.com/study/image/sina_gray_btn.png) no-repeat left top; padding-left:3px; color:#000000; font-size:12px; text-decoration:none;}

    .btn1 cite{display:block; line-height:26px; padding:0 13px 0 10px; background:url(http://www.zhangxinxu.com/study/image/sina_gray_btn.png) no-repeat right top;}

    HTML代码如下:

    <a href="javascript:void(0);" class="btn1"><cite>float方法</cite></a>

    结果如下图:

     

    您可以狠狠地点击这里:按钮宽度自适应demo

    上面这个例子旨在说明浮动属性(无论是左浮动还是右浮动)某种意义上而言与display:inline-block属性的作用是一模一样的,所以类似于display:block; float:left;的CSS代码超过95%的情况是没有道理的(display:block是多余的)。然而,float无法等同于display:inline-block,其中原因之一就是浮动的方向性,display:inline-block仅仅一个水平排列方向,就是从左往右,而float可以从右往左排列,这就是两者的差异。然而,我们又有多少情况需要元素从右往左排列呢?很少,所以,CSS中,没有浮动这一属性不是什么大不了的事情,它其实就那么回事。

     

    1.1.3说到包裹性,就得说说BFC (Block Formatting Context)

    BFC这里见我的另外一篇文章。

    2.清除浮动

  • 相关阅读:
    (转)三款Json查看小工具
    开源数据源
    关于异常
    java 线程池
    百度android面试及一些问题的讲解
    linux常用命令
    android activityManager
    Android ListView及其属性
    android listView与adapter
    android 反编译
  • 原文地址:https://www.cnblogs.com/yyyyg/p/5627391.html
Copyright © 2011-2022 走看看