CSS在不同浏览器兼容问题,margin偏移/offset溢出等

margin在垂直取值时取最大值

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>margin在垂直取值时取最大值</title>
<style type="text/css">
.a { width:300px; height:200px; border:1px solid #FFCC33; background:#FFFF99; margin:30px 0;}
.b { width:300px; height:200px; border:1px solid #99CC33; background:#DDECBF; margin:50px 0;}
</style>
</head>

<body>
<div class="a">我的上下margin值是30px</div>
<div class="b">我的上下margin值是50px<br />
  <br />
在但我们两个之间的空间只有50px而不是80px哟~~</div>
</body>
</html>

ul li高度在ie6、ie7、ie8、FF下兼容问题解决

在页面中有时候使用ul li列表时ie6、ie7、ie8、FF的高度会不一样(其中ie6与ie7高度一样,ie8与FF高度一样),设置高后使用overflow:hidden;也无济于事,这个问题一直困扰着我,以至于我后来只能使用DIV来做列表,但是这样只能说是对付上的,但没从实际上解决这个问题。

后来在网上找到了一个方法,在li样式上加上vertical-align:bottom便解决了,但原因还是不理解,希望看到的朋友能给个合理的解释,谢谢!

我查了下CSS帮助文档,里面对vertical-align的描述是这样的:

语法:

vertical-align : auto | baseline | sub | super | top | text-top | middle | bottom | text-bottom | length

取值:

auto : CSS1 根据 layout-flow 属性的值对齐对象内容

baseline : CSS1 默认值。将支持 valign 特性的对象的内容与基线对齐

sub : CSS1 垂直对齐文本的下标

super : CSS1 垂直对齐文本的上标

top : CSS1 将支持 valign 特性的对象的内容对象顶端对齐

text-top : CSS1 将支持 valign 特性的对象的文本与对象顶端对齐

middle : CSS1 将支持 valign 特性的对象的内容与对象中部对齐

bottom : CSS1 将支持 valign 特性的对象的内容与对象底端对齐

text-bottom : CSS1 将支持 valign 特性的对象的文本与对象顶端对齐

length : CSS2 由浮点数字和单位标识符组成的长度值 | 百分数。可为负数。定义由基线算起的偏移量。基线对于数值来说为0,对于百分数来说就是0%。请参阅长度单位。目前IE尚未实现此参数

说明:

设置或检索对象内容的垂直对其方式。

对于 currentStyle 对象而言此属性的默认值为 auto 。对于其他对象而言是 baseline 。

此属性对于 currentStyle 对象而言是只读的。对于其他对象而言是可读写的。

对应的脚本特性为 verticalAlign 。

关于IE8 css margin 益处问题

IE6/IE7/IE8/Firefox的CSS各种兼容margin问题解决办法来源:互联网作者:佚名时间:07-04 17:00:51

点评:IE6/IE7/IE8/Firefox的CSS各种兼容margin问题解决办法,需要的朋友可以参考下。确实不错。外置 .main{ float:left;#float:none;_float:none; html*.main *+html .main * html .main 第1行给Firefox以及其他浏览器看 第2行给safari/IE6/iE7看,如果safari/IE6/iE7 视觉效果不统一,就要在后面跟IE6/IE7的定义 第3行给IE7看 第4行给IE6以及更老的版本看 内置 .main 第1个float给Firefox以及其他浏览器看 第2个加#的float给IE7看 第3个加_的float给IE6以及更老的版本看 第4个加[的float给safari看 第5个加]的float给IE看 各种常见浏览器使用的内核 (Rendering Engine) Mozilla Firefox ( Gecko ) Internet Explorer ( Trident ) Opera ( Presto ) Konqueror ( KHTML ) Safari Swift ( WebKit ) 用css自动隐藏超出宽度内容并省略显示,浏览器兼容ie、ff text-overflow:ellipsis; -o-text-overflow:ellipsis; -icab-text-overflow: ellipsis; -khtml-text-overflow: ellipsis; -moz-text-overflow: ellipsis; -webkit-text-overflow: ellipsis; 基本非IE的浏览器的私有属性都会以-xxx-这样开始, -o-就是以Presto为引擎的 Opera私有的、 -icab-是iCab私有的, -khtml-就是以KHTML为引擎的浏览器(如Konqueror Safari)、 -moz-就是以mozilla的Gecko为引擎的浏览器(如Firefox,mozilla)、 -webkit-就是以Webkit 渲染引擎(是KHTML的衍生产品)的浏览器(如Safari、Swift)。 并不是说像-moz-text-overflow现在有用,而是一个幻想的写法,当一个浏览器的开发人员决定在浏览器支持一种还没得到公认的属性时,一般 都会在属性的前面加上-xxx-这种,表明这种是属于该浏览器私有的属性,当然,这些属性多数来自CSS3的,使用这样的写法在浏览器升级后也许才有作 用. IE、Firefox、Opera和Safari对CSS样式important和*的支持 1、IE6、IE7都支持 *,但IE8终于回归正统,放弃了对*的支持 2、IE7、IE8、Firefox、Opera、Safari都支持 important 顾名,important的优先级要高. 举例说明: 

body { background-color:#FF0000 !important; *background-color:#00FF00 !important; *background-color:#0000FF; background-color:#000000; } 

IE6选择最后一个,即:background-color:#000000; (因为IE6对important不支持) IE7选择第二个,即:background-color:#00FF00;(因为IE7开始对important支持了,同时还死守着它对 * 感情的最后一版本,但important并未起到优先级的作用) IE8和Firefox、Opera、Safari选择第一个,即:background-color:#FF0000 !important;(IE8完全支持于important,同时丢弃了对*的感情) 另外再补充一个,下划线”_“,IE6支持下划线,IE7、IE8和Firefox、Opera、Safari均不支持下划线。

关于IE6/7表单偏移问题

版本一:
给margin负(是数学里面负数的负)值,清除IE下的offset,去掉 line-height: 30px;不然其他浏览器里面也会有个一像素的空白:

<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Default</title>
<style>
* { margin: 0; padding: 0; border: 0;}
body { color: #000; font: 12px/1.5 Arial;background: #fff; }
.one .SearchBar { width: 400px; border: 3px solid blue; background: #ccc;}
.one .inputstyle {width: 300px; height: 20px; padding: 5px; *margin:-1px 0; background: gray }
</style>
</head>
<body>
<div class="one">
<form action="#" method="post" class="SearchBar">
  <table cellpadding="0" cellspacing="0">
    <tr>
        <td class="search_label">
            <input name="name" size="10" class="inputstyle" value="" />
        </td>
    </tr>
  </table>
</form>
</div>
</body>
</html>

版本二:
利用相对定位,针对不同的IE浏览器,清除offset:

<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Default</title>
<style>
* { margin: 0; padding: 0; border: 0;}
body { color: #000; background: #fff; }
.one .SearchBar { width: 400px; height:30px; border: 3px solid blue; background: #ccc;}
.one .inputstyle {width: 300px; height:20px;line-height:20px; padding:5px; background: gray; position:relative;*top:-1px;_margin-bottom:-2px}
</style>
</head>
<body>
<div class="one">
<form action="#" method="post" class="SearchBar">
  <table cellpadding="0" cellspacing="0">
    <tr>
        <td class="search_label">
            <input name="name" size="10" class="inputstyle" value="" />
        </td>
    </tr>
  </table>
</form>
</div>
</body>
</html>

版本三:清除浮动其实还有一些细节问题,比如font-size/font-family/line-height等等,这些在不同的浏览器里面都有所差别,对于input来说。

网页中插入可运行代码界面

简易版:<textarea name="Cont" cols="50" rows="10" id="Cont"></textarea><input type="button" name="Submit" value="运行代码" onClick="runCode()"><script language="javascript">function runCode(){var Code=Cont.value;var newwin=window.open(‘‘,‘‘,‘‘);newwin.opener=nullnewwin.document.write(Code);newwin.document.close();}</script>

好看点的:<script>var userAgent = navigator.userAgent.toLowerCase();var is_opera = userAgent.indexOf(‘opera‘) != -1 && opera.version();var is_saf = userAgent.indexOf(‘applewebkit‘) != -1 || navigator.vendor == ‘Apple Computer, Inc.‘;var is_webtv = userAgent.indexOf(‘webtv‘) != -1;var is_ie = (userAgent.indexOf(‘msie‘) != -1 && !is_opera && !is_saf && !is_webtv) && userAgent.substr(userAgent.indexOf(‘msie‘) + 5, 3);function runCode(obj) {         var winname = window.open(‘‘, "_blank", ‘‘);         winname.document.open(‘text/html‘, ‘replace‘);winname.opener = null; // 防止代码对论谈页面修改         winname.document.write(obj.value);         winname.document.close();}function saveCode(obj) {         var winname = window.open(‘‘, ‘_blank‘, ‘top=10000‘);         winname.document.open(‘text/html‘, ‘replace‘);         winname.document.write(obj.value);         winname.document.execCommand(‘saveas‘,‘‘,‘code.htm‘);         winname.close();}function copycode(obj) {if(is_ie && obj.style.display != ‘none‘) {   var rng = document.body.createTextRange();   rng.moveToElementText(obj);   rng.scrollIntoView();   rng.select();   rng.execCommand("Copy");   rng.collapse(false);}}</script><textarea id=code cols=80 rows=15>jldjlfdjfldjlfkdjlk</textarea>   <br /><input type="button"onclick=runCode(code) value="运行代码" style="border:1px solid #B1B4CD;background:#696D81;color:#FFFFFF; padding-top:5px;"> <input type="button"onclick=copycode(code) style="border:1px solid #B1B4CD;background:#696D81;color:#FFFFFF; padding-top:5px;"value="复制代码" onclick="copycode(runcode3)"> <input type="button"onclick=saveCode(code) style="border:1px solid #B1B4CD;background:#696D81;color:#FFFFFF; padding-top:5px;"value="另存代码" onclick="saveCode(runcode3)"> 提示:您可以先修改部分代码再运行   <br>
时间: 2025-01-20 06:58:08

CSS在不同浏览器兼容问题,margin偏移/offset溢出等的相关文章

CSS对各个浏览器兼容技巧---HACK技巧

*   ie6和ie7都可以识别_   只有ie6可以识别\0  只有ie8可以识别:root 只有ie9可以识别 关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助. 一.CSS HACK HACK概念: 不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所

在不同的浏览器使用不同的css样式,解决浏览器兼容问题

区别IE6与FF:       background:orange;       *background:blue; 区别IE6与IE7:       background:green !important;       background:blue; 区别IE7与FF:       background:orange;        *background:green;       方法一:在同一个CSS样式表中,使用 !important 来定义不同的值以适应Firefox和IE,例如:

浅谈CSS hack(浏览器兼容)

今天简单写一点关于浏览器兼容的处理方法,虽然百度上已经有很多,但是我还是要写! 先看一个图 这个图描述了2016年1月至8月网民们所使用的浏览器市场份额(来源:http://tongji.baidu.com/data/browser).令我感到欣慰的是chrome排第一,chrome一直以来对W3C标准都支持得比较友好,但是图中也反映了使用IE系列的人数也不少,所以我们日常做前端开发的时候还要考虑他们的感受. 以下是正文: 我的前任公司做前端的时候,要求兼容IE8及以上,谷歌,火狐三座大山.因为

CSS Hack (各个浏览器兼容的问题)

写css样式的时候,恐怕最头疼的就是各个浏览器下的兼容性问题,即css hack,明明感觉应该是对的,但是就是出不来效果,我根据平时所接触的,总结一下关于兼容 性的技巧,希望可以对大家有所帮助…… CSS Hack的原理是什么 由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系.我们就可以根据这个来针对不同的浏览器来写不同的CSS. CSS Hack大致有3种表现形式,CSS类内部Hack.选择器Hack以及HTML头部引用(if IE)Hack,CSS Hack主要针

关于浏览器兼容问题及hack写法

浏览器的兼容问题 1.浏览器内核: Mozilla Firefox ( Gecko ) Internet Explorer ( Trident ) Opera ( Presto ) Safari ( WebKit ) Google Chrome ( WebKit ) 2.css hack 解决浏览器兼容的主要方法是css hack 由于不同的浏览器对CSS的支持及解析结果不一样,还由于CSS中的优先级的关系.我们就可以根据这个来针对不同的浏览器来写不同的CSS. IE6 IE7 IE8 Fire

浏览器兼容与响应式布局

主流浏览器有5种:IE.chrome.firefox.safari.opera.   浏览器兼容 ?  浏览器私有前缀 -moz-            火狐浏览器 -webkit-          360.苹果.猎豹.搜狗.QQ. Chrome等浏览器 -o-               Opera/欧朋浏览器 -ms-              IE.百度等浏览器 ?  跨浏览器的默认样式 Normalize.css  是替代 Reset.css,保护有用的浏览器默认样式,修改浏览器自身B

火狐浏览器,IE11浏览器 兼容处理

火狐浏览器中的css hack /**火狐浏览器兼容处理**/ /**火狐浏览器(所有)兼容处理**/ @-moz-document url-prefix() { 在这里输入兼容样式 } /**火狐浏览器2版本兼容处理**/ html>/**/body .selector, x:-moz-any-link { 在这里输入兼容样式 } /**火狐浏览器3版本兼容处理**/ html>/**/body .selector, x:-moz-any-link, x:default { 在这里输入兼容样

常见浏览器兼容问题、盒模型2种模式以及css hack知识讲解

什么是浏览器兼容问题?所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的显示效果.所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题. 总结一下我编写代码的时候遇到的浏览器兼容问题,跟大家学习. 一.解决无法在IE6下面设置1px高的容器(div)的问题. 大家看看这一段代码: <div style="height:1px;wi

CSS实现背景透明,文字不透明(各浏览器兼容)

来自:http://www.cnblogs.com/radom/archive/2010/06/06/1752660.html /*CSS*/.waps{ background:url(07158.bmp) no-repeat top center fixed; width:1004px; text-align:center; line-height:28px; font-size:12px; font-family:Arial, Helvetica, sans-serif;}.con{ tex