Html css常见Bug及hack

Bug和Hack描述:

   首先,先简单的描述下在css中bug和hack的概念,虽然很多人早已经对bug理解的很透彻和清晰了,但我还是写一下我对它们的描述。
   CSS Bug:CSS样式在各浏览器中解析不一致的情况,或者说CSS样式在浏览器中不能显示我们所想要的效果,这样的问题称为CSS Bug。
   CSS Hack:在CSS 中,Hack一般指某种兼容CSS在不同的浏览器中正确显示的技巧方法,对于这种方法而言,都是开发者个人对CSS代码的修改,也可以称为“非官方的补丁”。


问题描述:

问题1:图片在IE浏览器上出现边框(在IE11以下会出现):
描述:当给图片添加超链接 在IE11以下会图片四周会出现边框

可以看到箭头所指的图片四周有边框

  div a img{
            border: 0;
         /* border: none;  */
        }

代码见上👆
Hack:给图片加border: 0; 或者 border: none;   边框已经去除

在这里插入图片描述


问题2:图片间隙:
描述:给div盒子里面嵌套img标签会产生3~6像素的间隙

4像素的间隙

 div img{
            display: block;
           /*vertical-align: top;*/
        }

代码见上👆
Hack:给图片加 display: block; 或者 vertical-align: top;   间隙已经去除

在这里插入图片描述


问题3:双倍浮向(双倍边距)(只有IE6出现):
描述:当IE6及以下版本浏览器在解析浮动元素时,会错误低把浮向边界(margin)加倍显示
比如:margin-left: 50px; 在IE6以下浏览器解析出来会显示 100px 边距

 div{
            display: inline;
        } 

代码见上👆
Hack:给div加 display: inline;   双倍边距已经去除




问题4:默认高度( IE6及以下):
描述:当IE6及以下版本浏览器中,部分块元素拥有默认高度(在16px~20px左右)

在这里插入图片描述

 div{
        overflow: hidden;
        /* font-size: 0; */
     } 

代码见上👆
Hack:给元素加 overflow: hidden; 或是 fon-size: 0 ;   默认高度已经去除

在这里插入图片描述
问题5:表单元素行高对齐不一致 :
描述:表单元素行高对齐不一致

 float: left;

代码见上👆
Hack:给表单元素加 float: left; ;   解决对齐不一致



问题6:百分比Bug( IE7及以下):
描述:在IE6及以下版本中在解析百分比时,会按四舍五入方式计算从而导致50%加50%大于100%的情况。只有在50% 这个比例上会出现该Bug。(也会受系统影响)

在这里插入图片描述

 .right{
            width: 50%;
            height: 300px;
            background: gold;
            float: right;
            clear: right; /* 清除右浮动 */
            
        }

代码见上👆
hack: 给右面的浮动元素添加声明:clear:right; 意思:清除右浮动。 clear:left:清除左浮动
        clear:both; 清除两边的浮动

在这里插入图片描述


问题7:透明属性:
hack: 兼容其他浏览器写法:opacity:value;(value的取值范围0-1; 例:opacity:0.5; )
         IE浏览器写法:filter:alpha(opacity=value);取值范围 1-100(整数)



问题8:li列表的Bug
描述: 1.当父元素(li) 有float:left;子元素(a) 没设置浮动的情况下会出现垂直bug;
Hack:给父元素li和子元素a都设置浮动;
问题2:当给li中的a转成block;并且有height,并有float的,li中没设置浮动会出现阶梯显示,
hack:同时给li加float;



问题9:当前元素(父元素里面第一个子元素)与父元素没有设置任何浮动的情况下,设置margin-top后,会错误的把margin-top加在父级元素上
Hack:1.给父级元素添加overflow:hidden;(推荐使用)
Hack:2.给父元素或者子元素加浮动
Hack:3.给父元素加边框 border: 1px solid #fff;


总结:

就先把学到的解决基本Bug的方法写到这。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值