热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

css兼容性写法的实例讲解-html教程

常见的浏览器内核引擎以及具体应用:   Trident:IE;   Gecko:Firefox;   webkit:Safari,GoogleChrome,遨游3,猎豹,百度;   Presto:Opera——Operamini 书
常见的浏览器内核引擎以及具体应用:

Trident: IE;

Gecko: Firefox;

webkit: Safari,Google Chrome,遨游3,猎豹,百度;

Presto:Opera——Opera mini

书写顺序:firefox,IE8,IE7,IE6

IE6:*,_

IE7:*,+

IE8:\9,\0

chrome:-webkit-

firefox:-moz-,root(仅ff认)

  • *和_ , ie6可以识别;

  • * , ie6,ie7可以识别;

  • !important ,表示高优先级,ie7及以上,firefox都支持,ie6认识带!important的样式属性,但不认识!important的优先级;

  • -webkit- ,针对safari,chrome浏览器的内核CSS写法

  • -moz-,针对firefox浏览器的内核CSS写法

  • -ms-,针对ie内核的CSS写法

  • -o-,针对Opera内核的CSS写法

    如果只让ie6看见用        *html .head{color:#000;}
  如果只让ie7看见用        *+html .head{color:#000;}
  如果只让ff看见用:         root body .head{color:#000;}
  如果只让ff、IE8看见用     html>/**/body .head{color:#000;}
  如果只是不让ie6看见用     html>body .head{color:#000;} 即对IE 6无效
  如果只是不让ff、IE8看见用 *body .head{color:#000;}    即对ff、IE8无效
  1. .p1{

  2. *position:relative;

  3. -moz-background-size:50%;

  4. -ms-content-zoom-limit-max:50%;

  5. -o-box-shadow:5px10px20px#f0f;

  6. }

  7. .p2{

  8. position:absoulte!important;

  9. }

 

第一问:宽度问题

给p一个 width:300px;padding:10px;

Firefox实际宽度320px,padding是填上去的;支持!important,IE忽略

IE6实际宽300px,padding是300px里面的,把content往里面挤;

页面的最小宽度
IE不认得min-,而它实际上把 width当做最小宽度来使。为了让这一命令在IE上也能用,可以把一个

放到 标签下,然后为p指定一个类,然后CSS这样设计:
#container{ min-width: 600px; width:expression(document.body.clientWidth <600? "600px": "auto" );}
第一个min-width是正常的;但第2行的width使用了Javascript,这只有IE才认得,这也会让你的HTML文档不太正规。它实际上通过Javascript的判断来实现最小宽度。

第二问:水平居中问题

IE下只要设置body{text-align:center;}这样就可以居中显示。

Firefox不行 解决:body:{text-align:center;margin:0px auto;}

第三问:在mozilla firefox和IE中的BOX模型解释不一致导致相差2px

p{margin:30px!important;margin:28px;}

第四问:CSS透明问题

IE:filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。
FF:opacity:0.6。
[注] 最好两个都写,并将opacity属性放在下面。

第五问:圆角问题

IE:ie7以下版本不支持圆角。
FF: -moz-border-radius:4px

浏览器bug
IE的双边距bug

设置为float的p在ie下设置的margin会加倍。这是一个ie6都存在的bug。

解决方案:在这个p里面加上display:inline;

浮动

DIV浮动IE文本产生3象素的bug
左边对象浮动,右边采用外补丁的左边距来定位,右边对象内的文本会离左边有3px的间距.

#box{ float:left; width:800px;}
#left{ float:left; width:50%;}
#right{ width:50%;}
*html #left{ margin-right:-3px; //这句是关键}




IE捉迷藏的问题
当p应用复杂的时候每个栏中又有一些链接,DIV等这个时候容易发生捉迷藏的问题。
有些内容显示不出来,当鼠标选择这个区域是发现内容确实在页面。 解决办法:对#layout使用line-height属性 或者给#layout使用固定高和宽。页面结构尽量简单。

IE的layout私有属性

作为外部 wrapper 的 p 不要定死高度,为了让高度能自动适应,要在wrapper里面加上overflow:hidden; 当包含float的box的时候,高度自动适应在IE下无效,这时候应该触发IE的layout私有属性(万恶的IE啊!)用zoom:1;可以做到,这样就达到了兼容。

.colwrapper{ overflow:hidden; zoom:1; margin:5px auto;}

排版

我们用得最多的css描述可能就是float:left.有的时候我们需要在n栏的float p后面做一个统一的背景,譬如:





我们要将page的背景设置成蓝色,以达到所有三栏的背景颜色是蓝色的目的,但是我们会发现随着left center right的向下拉长,而page居然保存高度不变,问题来了,原因在于page不是float属性,而我们的page由于要居中,不能设置成 float,所以我们给他加个父元素 page变成爷爷;

高度不适应
高度不适应是当内层对象的高度发生变化时外层高度不能自动进行调节,特别是当内层对象使用margin 或paddign 时。
例:
#box { }
#box p {margin-top: 20px;margin-bottom: 20px; text-align:center; }


p对象中的内容



解决技巧:在P对象上下各加2个空的p对象CSS代码:.1{height:0px;overflow:hidden;}或者为DIV加上border属性。

IE6下为什么图片下有空隙产生
解决这个BUG的技巧也有很多,可以是改变html的排版,或者设置img 为display:block 或者设置vertical-align 属性为vertical-align:top   bottom  middle  text-bottom 都可以解决.

IE的css bug

在p:first-letter和{font-size:300%}加上空格,也就是p:first-letter {font-size:300%}后,显示就正常了。但是同样的代码,在FireFox下看是正常的。按道理说,p:first-letter{font-size:300%}的写法是没错的。那么问题出在哪里呢?答案是伪类中的连字符”-”。IE有个BUG,在处理伪类时,如果伪类的名称中带有连字符”-”,伪类名称后面就得跟一个空格,不然样式的定义就无效。而在FF中,加不加空格都可以正常处理。

p设置 margin-left, margin-right 为 auto 时已经居中,IE 不行,IE需要设定body居中,首先在父级元素定义text-algin: center;这个的意思就是在父级元素内的内容居中。

垂直居中=>内容换行问题

一个高30px的p,默认显示左上角,如果想垂直居中对其可以加个line-height:30px;样式。如果你想让他居下方则修改line-height

数值越大越下,为了防止撑破,还需要再给一个样式overflow:hidden;

块级对象设置三个样式解决浏览器默认值:宽高overfl

LI中内容超过长度后以省略号显示的技巧

此技巧适用与IE与OP浏览器

li {

width:200px;
white-space:nowrap;
text-overflow:ellipsis;
-o-text-overflow:ellipsis;
overflow: hidden;
}

为什么web标准中IE无法设置滚动条颜色了
解决办法是将body换成html

html {
scrollbar-face-color:#f6f6f6;
scrollbar-highlight-color:#fff;
scrollbar-shadow-color:#eeeeee;
scrollbar-3dlight-color:#eeeeee;
scrollbar-arrow-color:#000;
scrollbar-track-color:#fff;
scrollbar-darkshadow-color:#fff;
}

为什么无法定义1px左右高度的容器
IE6下这个问题是因为默认的行高造成的,解决的技巧也有很多,例如:overflow:hidden   zoom:0.08   line-height:1px

css初始化

其中margin属性对IE有效,padding属性对FireFox有效。

  1. body,p,dl,dt,dd,ol,h1,h2,h3,h4,h5,h6,form,input,p,th,td{margin:0;padding:0;}

  2. img{border:0px;}

  3. ul {margin:0px;padding:0px;}/

  4. ul li {list-style:none;}

/* Clear Fix */
.clearfix:after {
content:”.”;
display:block;
height:0;
clear:both;
visibility:hidden;
}
.clearfix {
display:inline-block;
}
/* Hide from IE Mac */
.clearfix {display:block;}
/* End hide from IE Mac */
/* end of clearfix */

或者这样设置:.hackbox{ display:table; //将对象作为块元素级的表格显示}

太多了 参考:

以上就是css兼容性写法的实例讲解的详细内容,更多请关注 第一PHP社区 其它相关文章!


推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
  • CSS|网格-行-结束属性原文:https://www.gee ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • ECMA262规定typeof操作符的返回值和instanceof的使用方法
    本文介绍了ECMA262规定的typeof操作符对不同类型的变量的返回值,以及instanceof操作符的使用方法。同时还提到了在不同浏览器中对正则表达式应用typeof操作符的返回值的差异。 ... [详细]
  • mui框架offcanvas侧滑超出部分隐藏无法滚动如何解决
    web前端|js教程off-canvas,部分,超出web前端-js教程mui框架中off-canvas侧滑的一个缺点就是无法出现滚动条,因为它主要用途是设置类似于qq界面的那种格 ... [详细]
  • css元素可拖动,如何使用CSS禁止元素拖拽?
    一、用户行为三剑客以下3个CSS属性:user-select属性可以设置是否允许用户选择页面中的图文内容;user-modify属性可以设置是否允许输入 ... [详细]
  • css,背景,位置,y,background, ... [详细]
  • pyecharts 介绍
    一、pyecharts介绍ECharts,一个使用JavaScript实现的开源可视化库,可以流畅的运行在PC和移动设备上,兼容当前绝大部 ... [详细]
  • JavaWeb介绍概念JavaWeb,是用Java技术来解决相关web互联网领域的技术总和。web包括:web服务器和web客户端两部分。Java在客户端的应用有javaapplet,不过使 ... [详细]
  • 前端提高篇(七十):SVG基本使用、基本样式、路径path
    SVG是使用XML来描述二维图形和绘图程序的语言。SVG遵循的是xml的规范,与html5的使用有所区别SVG绘制出来的是矢量图,放大之后不会失真官方文 ... [详细]
  • javascript  – 概述在Firefox上无法正常工作
    我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ... [详细]
  • 使用chrome编辑器实现网页截图功能的方法
    本文介绍了在chrome浏览器中使用编辑器实现网页截图功能的方法。通过在地址栏中输入特定命令,打开控制台并调用命令面板,用户可以方便地进行网页截图操作。 ... [详细]
  • 说到C语言的语句块,真是一堆血泪史。第一大坑就是优先级。刚工作那会儿,C的书没看几本,自信满满的认为C语言都会了,拿出搞ACM培养的豪情壮志,代码倒是写得爽,却到处留 ... [详细]
  • 这个问题发生在重新安装系统后,丢失了之前的privatekey等。所以解决方法就是提示的revokeandrequest。到developercenter中找到certificat ... [详细]
author-avatar
gengjiang3_946
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有