首页 > 技术文章 > 兼容性问题汇总

suming1016 2016-04-08 17:23 原文

欢迎大家提供在项目过程中遇到的兼容性问题(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

 
 

推荐阅读