zoukankan      html  css  js  c++  java
  • 兼容性问题汇总

    欢迎大家提供在项目过程中遇到的兼容性问题(caijianguo1016@126.com)

    浏览器私有属性

    Google Chrome, Safari (-webkit)

    Firefox (-moz-)

    IE (-ms-)

    Opera (-o-)

    .pic {
      -webkit-transform: rotate(-3deg);
      -ms-transform: rotate(-3deg);
      transform: rotate(-3deg);
    }
    
    /*使用 http://pleeease.io/play/ ,CSS 预处理器(Sass,Less,Stylus)或编辑器插件可自动添加浏览器厂商的私有属性前缀。*/
    

      


    1、input标签在safari下的兼容问题

     a)在苹果ios系统safari下,input呈现渐变和圆角状态;
      原因:
    原来iPhone上的safari解析input[type="submit"]和input[type="reset"]按钮会以苹果浏览器的默认UI渲染,苹果一直非常注重用户体验,从苹果系统为中文单独定义了汉字的字体就可以看出来,
      所以苹果浏览器对网页元素进行渲染和美化不足为其,只是考虑到是为客户做项目,如果不能保证在各种设备上显示一致的话,是不能被客户所认可的。所以这里需要停止苹果默认对UI渲染

      解决方案:
      input[type="submit"], input[type="reset"], input[type="button"], button { -webkit-appearance: none;} /*去掉苹果的默认UI来渲染按钮*/
     b)去掉chrome、safari下, input或textarea在得到焦点时出现黄色边框的方法
      
    input{ outline:0;}

     附:去掉chrome、safari下,textarea右下角可拖动鼠标改变textarea大小的方法
      textarea{ resize:none;}
    2、文字不换行,溢出显示省略号“...”
    overflow: hidden;
    text-overflow: ellipsis; /* IE, WebKit (Safari, Chrome), Opera 11 *//*不支持Firefox*/
    -o-text-overflow: ellipsis; /* Opera 9-10 */
    -moz-binding: url("../xml/ellipsis.xml#ellipsis"); /*firefox通过XUL实现text-overflow:ellipsis的效果,其他参考资料*/
    white-space: nowrap; /* 不换行*/
    ------------------------------------------------------------------------------------------------------------
    .xml内容
    
    
    <?xml version="1.0"?>
    <bindings xmlns="http://www.mozilla.org/xbl"
              xmlns:xbl="http://www.mozilla.org/xbl"
              xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
        <binding id="ellipsis">
            <content>
                <xul:window>
                    <xul:description crop="end" xbl:inherits="value=xbl:text">
                        <children/>
                    </xul:description>
                </xul:window>
            </content>
        </binding>
    </bindings>
    
    

     多行

    p{
                width:200px;
                word-break:break-all;/*自动换行*/
                display:-webkit-box;/*盒子模型*/
                -webkit-line-clamp:3;/*行数*/
                -webkit-box-orient:vertical;/*超过部分用三个...显示*/
                overflow:hidden;/*超过隐藏*/
    
            }

    css控制英文、中文强制换行与不换行

    .p1{ word-break:break-all; width:150px;}/*只对英文起作用,以字母作为换行依据*/
    .p2{ word-wrap:break-word; width:150px;}/*--只对英文起作用,以单词作为换行依据*/
    .p3{white-space:pre-wrap; width:150px;}/*只对中文起作用,强制换行*/
    .p4{white-space:nowrap; width:10px;}/*强制不换行,都起作用*/
    .p5{white-space:nowrap; overflow:hidden; text-overflow:ellipsis; width:100px;}/*不换行,超出部分隐藏且以省略号形式出现*/
    注意,一定要指定容器的宽度,不然的话是没有用的。
     
    
    
    3、HTML5美化input属性 placeholder(背景提示文字)

    对Placeholder的浏览器支持情况

     

      各种浏览器对HTML5/CSS3里出现的新特征、新属性的支持是逐步提高的,最终所有的浏览器都会完全支持HTML5/CSS3,这是毫无疑问 的。目前,对HTML5的placeholder属性支持的浏览器有谷歌浏览器、火狐浏览器、Safari、Opera,还有IE10+。

    用CSS美化Placeholder提示信息的样式

    CSS3里有相应的通用的对Placeholder提示信息美化的方法。你可以设置提示信息文字的颜色,透明度,背景色等。

    为了最大化的兼容所有浏览器,给CSS里的placeholder属性添加浏览器引擎前缀还是有必要的。

    - 谷歌浏览器(Webkit): ::-webkit-input-placeholder pseudo-element;

    - IE10: :-ms-input-placeholder pseudo-class;

    - 火狐浏览器(Gecko18-): :-moz-placeholder pseudo-class;

    - 火狐浏览器(Gecko19+): ::-moz-placeholder pseudo-element;

    - Opera(Presto):

    <form>
    <input autofocus="autofocus" id="field1" name="fname" placeholder="请输入你的姓名..." type="text">
    <input id="field2" name="lname" placeholder="请输入你的昵称..." type="text">
    <input id="field3" name="pass" placeholder="请输入你的新密码..." type="password">
    <input id="field4" name="pass2" placeholder="请再次输入你的新密码..." type="password">
    </form>
     
    /* WebKit browsers */
    ::-webkit-input-placeholder {
        color: #777;
    }
    /* Mozilla Firefox 4 to 18 */
    :-moz-placeholder {
        color: #777;
        opacity: 1;
    }
    /* Mozilla Firefox 19+ */
    ::-moz-placeholder {
        color: #777;
        opacity: 1;
    }
    /* Internet Explorer 10+ */
    :-ms-input-placeholder {
        color: #777;
    }
     
    /* 通用 */
     ::-webkit-input-placeholder { color:#f00; }
     ::-moz-placeholder { color:#f00; } /* firefox 19+ */
     :-ms-input-placeholder { color:#f00; } /* ie */
     input:-moz-placeholder { color:#f00; } 
    /* webkit专用 */ 
    #field2::-webkit-input-placeholder { color:#00f; }
    #field3::-webkit-input-placeholder { color:#090; background:lightgreen; text-transform:uppercase; } 
    #field4::-webkit-input-placeholder { font-style:italic; text-decoration:overline; letter-spacing:3px; color:#999; } 
    /* mozilla专用 */ 
    #field2::-moz-placeholder { color:#00f; } 
    #field3::-moz-placeholder { color:#090; background:lightgreen; text-transform:uppercase; } 
    #field4::-moz-placeholder { font-style:italic; text-decoration:overline; letter-spacing:3px; color:#999; }

    效果:

    placeholder-input-css

     
     
  • 相关阅读:
    IOS开发银行系统的四舍五入的算法
    线程通信之初认识
    多线程同步机制练习之银行存钱
    解决线程安全问题方式三:loke锁
    使用同步机制解决单例模式中的懒汉式的线程安全问题
    (对于继承Thread类)线程安全问题解决方式二:同步静态方法
    (对于实现Runnable接口)线程安全问题解决方式二:同步方法
    (对于继承Thread类)线程安全问题解决方式一:同步代码块
    (对于实现Runnable接口)线程安全问题解决方式一:同步代码块
    三个窗口卖票(实现Runnable方式创建线程)之线程安全问题
  • 原文地址:https://www.cnblogs.com/suming1016/p/5369009.html
Copyright © 2011-2022 走看看