兼容问题汇总

l元素浮动之后,能设置宽度的话就给元素加宽度.如果需要宽度是内容撑开,就给它里边的块元素加上浮动;
解决方案:给需要宽度由内容撑开的元素加上浮动
<! DOCTYPE html>
< html>
   < head>
      < meta charset= "utf-8" >
      < title></title >
      < style>
           .box{width :400px ;border: 1px solid black;overflow: hidden;}
           .left{float :left; background: red;}
          .right{float :right; background: blue;}
           h2{margin :0; height:30 px;float : left ;}
      </ style>
   </ head>
   < body>
      < div class= "box">
          < div class= "left">
             < h2>左边</h2>
          </ div>
          < div class= "right" >
             < h2>右边</h2>
          </ div>
      </ div>
   </ body>
</ html>

l第一块元素浮动,第二块元素加margin值等于第一块元素,在IE6下会有间隙问题;
解决方案:不建议这么写,用浮动解决
<! DOCTYPE html>
< html>
   < head>
      < meta charset= "utf-8" >
      < title></title >
      < style>
           .box{width :500px ;}
          .left{width :200px ;height: 200px; float:left ;background: red}
          .right{width :200px ;height: 200px; background: blue; margin-left: 200px; }
      </ style>
   </ head>
   < body>
      < div class= "box">
          < div class= "left"></div >
          < div class= "right" ></div>
      </ div>
   </ body>
</ html>

lIE6下子元素超出父级宽高,会把父级的宽高撑开
解决方案:子元素高度不要超过父级高度
<! DOCTYPE html>
< html>
   < head>
      < meta charset= "utf-8" >
      < title></title >
      < style>
           .box{
              width: 200px;
              height: 200px;
              border: 1px solid red;
           }
           .item{
              width: 100px;
              height: 460px;
              background-color: blue;
           }
      </ style>
   </ head>
   < body>
      < div class= "box">
          < div class= "item"></div >
      </ div>
   </ body>
</ html>

lp标签包含块元素嵌套规则。
解决方案:p标签不要嵌套块元素
<! DOCTYPE html>
< html>
   < head>
      < meta charset= "utf-8" >
      < title></title >
   </ head>
   < body>
      < p>
          < div>div</div >
      </ p>
   </ body>
</ html>

lmargin兼容性问题
1、父子级包含的时候子级的margin-top会传递给父级
2、同级元素上下外边距会叠压;

解决方案:
                    问题1、触发haslayout、BFC。
                    问题2、尽量使用同一方向的margin,比如都设置top或者bottom;或者用padding代替.

<! DOCTYPE html>
< html>
   < head>
      < meta charset= "utf-8" >
      < title></title >
      < style>
           .box{
              background-color: green;
           }
           .head{
              height: 30px;
              background-color: red;
              margin: 50px;
           }
           .content{
              height: 30px;
              background-color: blue;
              margin: 50px;
           }
      </ style>
   </ head>
   < body>
      < div class= "box">
          < div class= "head">head</div >
          < div class ="content">content</div >
      </ div>
   </ body>
</ html>

ldisplay:inline-block
解决方案:针对ie6、7使用hack添加display:inline和zoom:1
<! DOCTYPE html>
< html lang= "en">
< head>
   < meta charset= "UTF-8" >
   < title>inline-block</title>
   < style type= "text/css" >
       div{
           width: 100px;
           height: 100px;
           display:inline-block ;
           border:1 px solid red;
           font-size: 12px;
          *display: inline;
           *zoom: 1;
       }
       span{
           width: 100px;
           height: 100px;
           display:inline-block ;
           border:1 px solid red;
           font-size: 24px;
          *display: inline;
           *zoom: 1;
          *margin-right: -4px ;
       }
       section{
           font-size:0 ;
       }
    </style>
</ head>
< body>
   < p>块元素转内联块</p>
   < hr>
   < section>
      < div>块1</div>
      < div>块2</div>
      < div>块3</div>
   </ section>
   
   < p>内联元素转内联块</ p>
   < hr>
   < section>
      < span href= "">内联1</span>
      < span href= "">内联2</span>
      < span href= "">内联3</span>
   </ section>
   
</ body>
</ html>

lIE6 最小高度问题
解决方案:针对ie6、7使用hack添加overflow:hidden
<! DOCTYPE html>
< html>
   < head>
      < meta charset= "utf-8" >
      < title></title >
      < style>
           .box{
              height: 1px;
              background-color: red;
              overflow: hidden;
           }
      </ style>
   </ head>
   < body>
      < div class= "box"></div >
   </ body>
</ html>

lIE6 双边距
解决方案:针对ie6、7使用hack添加display:inline
<! doctype html>
< html lang= "en">
< head>
   < meta charset= "UTF-8" />
   < title></title >
   < style>
       body{margin :0}
       .box{
           width: 200px;
           height: 200px;
           margin: 100px;
           background-color: red;
           float: left;
           *display: inline;
       }
   </ style>
</ head>
< body>
   < div class= "box"></div >
</ body>
</ html>

lli里元素都浮动 li 在IE6 7  下方会产生4px间隙问题
解决方案:针对ie6、7使用hack添加vertical-align
<! DOCTYPE html>
< html>
   < head>
      < meta charset= "utf-8" >
      < title></title >
      < style>
           .list{
              margin: 0;
              padding: 0;
              list-style: none;
              width: 300px;
           }
           .list li {
              height: 30px;
              border: 1px solid red;
              line-height: 30px;
              *vertical-align: top;
           }
           .list li a{
              float: left;
           }
           .list li span{
              float: right;
           }
      </ style>
   </ head>
   < body>
      < ul class= "list">
          < li>
             < a href= "">左侧</a>
             < span>右侧</span>
          </ li>
          < li>
             < a href= "">左侧</a>
             < span>右侧</span>
          </ li>
      </ ul>
   </ body>
</ html>

l浮动元素之间注释,导致多复制一个文字问题
解决方案:两个浮动元素中间有注释或者内嵌元素并且和父级宽度相差不超过3像素,文字就被复制。所以避免注释和内联元素的出现。
<! doctype html>
< html>
< head>
< meta charset= "utf-8" >
< title>无标题文档</title>
< style>
.wrap {width: 400px; }
.left {float: left;}
.right {float: right;width :400px ;}
</ style>
</ head>
< body>
< div class= "wrap">
   < div class= "left"></div >
    < span></span ><span></ span><!-- IE下文字溢出BUG -->
    < div class= "right" >&darr;这是多出来的一只猪</ div>
</ div>
</ body>
</ html>

lIE6 7 父级元素的overflow:hidden 是包不住子级的relative
解决方案:针对ie6、7使用hack给父级定位元素添加position:relative
<! DOCTYPE html>
< html>
   < head>
      < meta charset= "utf-8" >
      < title></title >
      < style>
           *{
              margin: 0;
              padding: 0;
           }
           .box{
              width: 200px;
              height: 200px;
              background-color: red;
              border:4 px solid black;
              overflow: hidden;
              * position: relative;
           }
           .item{
              width: 300px;
              height: 300px;
              background-color: blue;
              position: relative;
           }
      </ style>
   </ head>
   < body>
      < div class= "box">
          < div class= "item"></div >
      </ div>
   </ body>
</ html>

lIE6下绝对定位元素父级宽高是奇数,绝对定位元素的right和bottom值会有1px的偏差
解决方案:避免父级宽高出现奇数
<! DOCTYPE html>
< html>
   < head>
      < meta charset= "utf-8" >
      < title></title >
      < style>
           *{margin :0; padding:0 ;}
           .box{
              width: 308px;
              height: 408px;
              background-color: red;
              position:absolute ;
           }
           .item{
              width: 100px;
              height: 100px;
              background-color: green;
              position: absolute;
              right: 0;
              bottom: 0;
           }
      </ style>
   </ head>
   < body>
      < div class= "box">
          < div class= "item"></div >
      </ div>
   </ body>
</ html>

lIE6下绝对定位元素和浮动元素并列绝对定位元素消失
解决方案:浮动元素和绝对定位元素是同级的话,定位元素会消失。所以只要不是同级就可以避免这个问题。
<! doctype html>
< html>
< head>
< meta charset= "utf-8" >
< title>无标题文档</title>
< style>
.box {width: 200px; height:200 px; border :1px solid #000; position :relative; }
.box div{ width:150 px;height :150px ; background :Red;margin-left :50px ; float :left; display:inline ;}
.box span{ width :50px ;height: 50px; background:yellow; position :absolute; top:-10 px;right :-20px ;}
</ style>
</ head>
< body>
< div class= "box">
   < div></div >
   < p><span ></span></ p>
</ div>
</ body>
</ html>

lIE6 下input的空隙 和 border问题
解决方案:给input浮动清除空隙;
<! doctype html>
< html>
< head>
< meta charset= "utf-8" >
< title>无标题文档</title>
< style>
.box {width: 200px; border:1 px solid #000 ; background: Red;}
.box input {border: none;margin :0; padding:0 ;width: 200px; height:30 px; background :#fff; float:left }
</ style>
</ head>
< body>
< div class= "box">
   < input type= "text" />
</ div>
</ body>
</ html>

lIE6下输入类型表单控件背景问题
解决方案:设置background-attachment:fixed
<! DOCTYPE html>
< html>
   < head>
      < meta charset= "utf-8" >
      < title></title >
      < style>
           input{
              width: 200px;
              height: 30px;
              background: url(mail.jpg) no-repeat ;
              background-attachment : fixed ;
           }
       </style>
   </ head>
   < body>
      < input type= "text" />
   </ body>
</ html>

时间: 2024-10-13 12:44:56

兼容问题汇总的相关文章

hadoop备战:hadoop,hbase兼容版本号汇总

Hbase的安装须要考虑Hadoop的版本号,即兼容性.有不足的希望能指出. 下面考究官网得到的,关于hadoop版本号和hbase版本号可到下面网址中下载:http://mirror.bit.edu.cn/apache/hbase HBase-0.92.x HBase-0.94.x HBase-0.96.x HBase-0.98.x Hadoop-1.0.0-1.0.2 S S X S Hadoop-1.0.3+ S S S S Hadoop-1.1.x NT S S S Hadoop-0.2

Hadoop与HBase兼容版本汇总

Hbase的安装需要考虑Hadoop的版本,即兼容性.有不足的希望能指出. 以下考究官网得到的,关于hadoop版本和hbase版本可到以下网址中下载:http://mirror.bit.edu.cn/apache/hbase    HBase-0.92.x HBase-0.94.x HBase-0.96.x HBase-0.98.x Hadoop-1.0.0-1.0.2 S S X S Hadoop-1.0.3+ S S S S Hadoop-1.1.x NT S S S Hadoop-0.2

DIV+CSS IE6/IE7/IE8/FF兼容问题汇总

1.IE8下兼容问题,这个最好处理,转化成ie7兼容就可以.在头部加如下一段代码,然后只要在IE7下兼容了,IE8下面也就兼容了 <meta http-equiv="x-ua-compatible" content="ie=7" /> 2.flaot浮动造成IE6下面双倍边距问题,这个最常见,也最好处理,!important解决,比如 margin-left:10px !important;; margin-left:5px; +height:120px

IE6/IE7/IE8/FF兼容问题汇总,以及解决方案

1.IE8下兼容问题,这个最好处理,转化成ie7兼容就可以.在头部加如下一段代码,然后只要在IE7下兼容了,IE8下面也就兼容了<meta http-equiv="x-ua-compatible" content="ie=7" />2.flaot浮动造成IE6下面双倍边距问题,这个最常见,也最好处理,!important解决,比如margin-left:10px !important;;margin-left:5px;+height:120px;5.有时

浏览器CSS兼容问题汇总及解决

由于公司项目要求兼容到IE6,这之中遇到不少CSS兼容性问题,所以就在博客汇总下来,以后在项目中遇到新的兼容性问题,也会在这里更新. 1.IE6下height属性会失效 问题描述:在IE6下,即使块级元素设置了高度,但若元素内部的内容超出设置高度,内部内容会把该块级元素高度撑开,height失效. 解决方法:对该块级元素设置overflow:hidden; 2.div存在最小高度 问题描述:在IE6下,块级元素会存在大概是13px默认最小高度,即使是空的div标签或者height属性设置比13p

浏览器兼容问题汇总(持续更新)

所谓的浏览器兼容性问题,是指因为不同的浏览器对同一段代码有不同的解析,造成页面显示效果不统一的情况.在大多数情况下,我们的需求是,无论用户用什么浏览器来查看我们的网站或者登陆我们的系统,都应该是统一的显示效果.所以浏览器的兼容性问题是前端开发人员经常会碰到和必须要解决的问题. 在学习浏览器兼容性之前,我想把前端开发人员划分为两类: 第一类是精确按照设计图开发的前端开发人员,可以说是精确到1px的,他们很容易就会发现设计图的不足,并且在很少的情况下会碰到浏览器的兼容性问题,而这些问题往往都死浏览器

[转]JAVA WEB 浏览器兼容问题汇总

首 先谈一下浏览器,虽然现在ie依然是浏览器市场的老大,大约占有67%的份额,但是由于其各方面的欠缺,用户开始选择其他浏览器作为自己浏览网页的主要 工具,比如firefox.theworld.maxthon.chrome.opera等等,在用户使用比较多的浏览器中,分为2大派系 - ie内核和非ie内核,像theworld.maxthon.greenbrower等等都属于ie内核,而firefox.chrome.opera则 为非ie内核,众多的浏览器使我们的web程序就出现了兼容问题,像ie就

IE8兼容问题汇总

1.bootstrap3兼容问题,导致栅格系统失效. <!--[if lt IE 9]> <script src="https://cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.js"></script> <

js中的兼容问题汇总

在使用js的过程中,往往会发现关于IE浏览器的兼容问题,当然微软现在自己也打算抛弃IE,推出了edge浏览器,对于前端来说是个好消息. 但IE的用户占比仍然不容小觑,因此这里整理下常见的几个兼容问题附上解决方案,以免不时之需. 1.非行内样式的获取 IE浏览器:element.currentstyle+attr 正常浏览器(chrome,FF):getComputedStyle(element,false)+attr 这两类浏览器以下都简称为IE和正常 接下来封装一个函数,方便调用(兼容所有浏览