zoukankan      html  css  js  c++  java
  • 关于浮动的知识总结

    关于浮动,最主要的就是解决浮动在IE6、7下要做的兼容问题。例如:双边距bug,图片下的空隙问题等等。后面要和定位带来的兼容问题一起总结一下好了~~~
    块的特征

      1、默认独占一行

      2、没有宽度时,默认撑满一排(即父元素有多宽它就是多宽)

      3、支持所有css命令

    行内元素的特征

      1、同排可以继续跟同类的标签

      2、内容撑开宽度

      3、不支持宽高(就是写上宽高值也并没有什么卵用~)

      4、上下的margin和padding有问题(不支持上下的margin,对padding的上下设置并没有起到实际的作用。不会挤开上下的元素)

      5、代码换行被解析为一个空格

    inline-block的特点和问题

    1、在一行显示

    2、内联元素支持宽高

    3、没有宽度时默认内容撑开宽度

    4、标签之间的换行间隙被解析为空格(无论是块元素还是内联元素都会被解析)

    5、IE6/7不支持块属性标签的inline-block

    浮动的意思就是使元素脱离文档流,按照指定方向发生移动,遇到父级边界或者相邻的浮动元素停了下来。

    加上float以后的元素有如下特征:1、块在一排显示;2、内联元素支持宽高;3、无论是块元素还是内联元素没有宽度时默认内容撑开宽度;4、脱离文档流;(所以要想法设法清浮动呀~~)5、提升层级半层

    如何清浮动呢?

    1.父级加height。但是一般网页height值是依据子元素的height和得来的,所以扩展性不好,一般不采用。
    2.给所有的父级都添加浮动。但会导致margin左右自动失效

    3.给父级加display:inline-block。问题:margin左右auto失效

    4.添加<div class="clear"></div>空标签

    问题:IE6 最小高度 19px;(解决后IE6下还有2px偏差)在IE6下,高度小于19px的元素高度会被当作19px来处理~ 

    5.添加<br>清浮动。但这个方法不符合结构、样式、行为三者分离的要求
    6.after伪类 清浮动方法(现在主流方法)

    .clear:after{content:‘’;display:block;clear:both;}  必须是block才行

    .clear{zoom:1;}

    其中:

    after伪类: 是在元素内部末尾添加内容;:after{content"添加的内容";} IE6,7下不兼容,但是在IE6、7下,浮动元素父级有宽度就不用清浮动!

    zoom:1;是为了触发 IE下 haslayout,使元素根据自身内容计算宽高。但是FF 不支持
    7.overflow:hidden 清浮动方法;

    overflow有包着浮动元素的特点!但在IE6下不兼容,在IE6下包不住浮动元素,即在IE6下没有包元素的特点

    问题:需要配合 宽度 或者 zoom:1 来兼容IE6;(如果该父元素有边框,这里写宽度就会给该父级设置相应的宽度,写zoom:1仅仅达到实现轻浮动的目的,边框会包住整个页面的width)

  • 相关阅读:
    poj 2002 Squares 几何二分 || 哈希
    hdu 1969 Pie
    hdu 4004 The Frog's Games 二分
    hdu 4190 Distributing Ballot Boxes 二分
    hdu 2141 Can you find it? 二分
    Codeforces Round #259 (Div. 2)
    并查集
    bfs
    二维树状数组
    一维树状数组
  • 原文地址:https://www.cnblogs.com/ningyn0712/p/5366937.html
Copyright © 2011-2022 走看看