• 前端css兼容性与易混淆的点


     

    一.常用的骨灰级清除浮动


    复制代码
    .clearfix:after {
        content: ".";
        display: block;
        height: 0;
        clear: both;
        visibility: hidden;
        overflow: hidden;
    }
    复制代码

    解读浮动闭合最佳方案:clearfix

     

    二.使用斜杠/分割的关键字


    1.font

    H2{
        font:12px/100% sans-serif;
    }

    分割的分别是 字体大小 与 行高 ,其他关键是用空白符分割。

    2.background

    div{
     background:#fff url(../images/xx.jpg) center center/50% 50%
    }

    分割的是background-position/background-size

    3.border-radius

    div{
        border-radius: 30% / 20%;
    }

    分隔的是:水平半径/垂直半径

     

    三.内联元素相连之间存在间隙


    原因:内联元素是当做字体来处理的,字体之间是有间隔的

    解决:

    1.多个标签写在一行

    2.将要闭合标签的地方与开始标签的地方重合

    3.使用注释头尾相连

    4.在父级上写:font-size:0;

    5.使用display:block(img是内联元素)

    6.使用letter-spacing属性

    多个Img标签之间的间隙处理方法

    四.布局


    注意父元素的定位方式 是相对 还是静态 这决定了其内部绝对定位与浮动元素

    五.块级元素包裹内联元素的时候,总会出现几像素的差


    复制代码
    <!--例子1-->
    <div>
    <img src="http://images.cnblogs.com/cnblogs_com/zqzjs/757818/o_u=3986871593,628400456_fm=21_gp=0.jpg">
    </div>
    
    <!--例子2-->
    <ul>
    <li>
    <img src="http://images.cnblogs.com/cnblogs_com/zqzjs/757818/o_u=3986871593,628400456_fm=21_gp=0.jpg">
    </li>
    </ul>
    
    <!--例子3-->
    <div>
    <span>asdasdasd</span>
    </div>
    复制代码

    解决:设置内联元素属性:display:block;

     

    六.css hack(hack有风险,使用需谨慎)


    1.html hack

    <!--[if lt IE 7 ]><html class="ie6" lang="zh-cn"><![endif]-->
    <!--[if IE 7 ]><html class="ie7" lang="zh-cn"><![endif]-->
    <!--[if IE 8 ]><html class="ie8" lang="zh-cn"><![endif]-->
    <!--[if IE 9 ]><html class="ie9" lang="zh-cn"><![endif]-->

    在css中使用:

    .ie6 body{
        background-color:red;
    }


    2.选择器 hack

    * html .test{color:#090;} /* For IE6 */
    * + html .test{color:#ff0;} /* For IE7 */


    3.属性hack

    color:#fff; /*:选择IE8+和Opera*/
    color:#0909; /* For IE浏览器 */
    *color:#f00; /* For IE7 */
    _color:#ff0; /* For IE6 */


    七.box-sizing


    1.常规的盒模型: box-sizing : content-box(width == content 不包括padiing border)

    2.box-sizing : border-box width == content + padiing + border(相当于低级浏览器的怪异模式)

     

    八.图片格式区别


    格式 区别

    jpg 有损压缩
    png 无损压缩,透明图
    gif 动态图像
    webp 支持有损压缩和无损压缩的图片文件,压缩率极高,且画面丰富(有浏览器兼容性问题)


    九.px,em,rem的区别


    em,rem 相对大小

    em相对父元素font-size

    rem相对html根元素的font-size

    px 绝对大小

     

    十.不能继承的属性


    多数边框类属性:如边框,补白,背景等。

     

    十一.css中选择器的权重


    依次变小:id>class>标签

     

    十二.css颜色的问题


    尽量使用16进制的颜色,类似#fff;一位内16进制的颜色是确定的一个色值。

    而red这类的颜色值不是确定的,可能会受到用户代理即user agent stylesheet的影响。

     

    十三.ie6.7不支持box-sizing: border-box;


    解决:使用https://github.com/Schepp/box-sizing-polyfill这个垫片

    注意:*behavior: url(../resource/js/lab/boxsizing.htc);这个URL是相对于HTML页面的!!

     

    十四.IE6.7 font与font-family


    font起作用了 但是微软雅黑不起作用

    解决:必须要设置font-family:"microsoft yahei"

     

    十五.text-align text-indent vertical-align


    1.text-align:作用于块级元素

      如果要使得img居中,使用text-align是不行的,因为img不是块状元素。只需要在img外面套一层div即可。

    <div style="text-align:center">
        <img src="XXX.jpg"/>
    </div>

    2.text-indent:作用于块级元素

    3.vertical-align:作用于行内元素,基于baseline的位置调整

     

    十六.ul中li下面的间隔线用li布局边框问题


    在IE低版本下有bug,会多出li的宽高

    间隔线使用li的border去做

     

    十七.ie8及一下的浏览器不支持:befor.:after


    使用jquery的一个库:jquery.pseudo.js 做兼容 兼容低版本浏览器的时候

    注意:不要使用太高的JQuery版本,会报错!(我用的是1.10)

     

    十八.IE6不支持position:fixed


    .leftTop{
        position:absolute;
        left:expression(eval(document.documentElement.scrollLeft));
        top:expression(eval(document.documentElement.scrollTop));
    }

    position:fixed; 闪动问题

    解决: *html{ background-image:url(about:blank); background-attachment:fixed;

     

    十九.IE6双倍margin,padding边距的问题


    一旦元素浮动,就会出现双倍的bug

    解决:display:inline

     

    二十.IE6中设置宽高位10px的时候出现的是长方形


    这个现象的另一种情况是:在IE6中定义比较小的高度问题。

    原因:IE6有默认行高

    解决:使用font-size:0;line-height:0;

     

    二十一.IE6无法识别伪对象:first-letter/:first-line


    p:first-letter {}

    解决;在first-letter与"{"间增加空格

     

    二十二.IE6下忽略!important


    div{color:#f00!important;color:#000;}

    解决:分开写,并且将!important的属性且在前面

    div{color:#f00!important;}
    div{color:#000;}

    不定期更新。。。

     转载自:http://www.cnblogs.com/zqzjs/

  • 相关阅读:
    log4net配置文件详解
    Window 中杀死指定端口 cmd 命令行 taskkill
    weui获取checkbox选中值 带GIF效果演示
    动态新增行数据
    JAVA的WebService创建和使用
    Linux-20211008
    SpringBoot
    winfrom将控件保存为图片
    VB相关记录
    代码编辑说明文档
  • 原文地址:https://www.cnblogs.com/lzbk/p/6091373.html
Copyright © 2020-2023  润新知