CSS中常见的BUG调试

CSS中常见的BUG调试

大家好,又见面了,我是全栈君。

1、布局——layout

布局是windows提出的概念,用于控制元素的尺寸和定位。

拥有布局的元素负责自身及其子元素的尺寸及定位,而没有布局的元素仅仅能依靠近期的祖先元素进行控制。

通常在IE6中出现的BUG。非常可能是由于布局的缘故而产生的,因而修复IE中BUG的时候,第一件事就是尝试通过规则迫使元素拥有布局来看是否能修复。

默认情况下拥有布局的元素包含:body、html(标准模式下)、table、tr、td、img、hr、input、select、textarea、button、iframe、embed、object、applet、marquee

通过设置CSS属性也能够迫使元素拥有布局:

1)float:left或right

2)display:inline-block

3)width:不论什么值

4)height:不论什么值

5)zoom:不论什么值

6)writing-mode:tb-rl

在IE7中,下面属性也可迫使元素拥有布局:

1)overflow:hidden、scroll或auto

2)min-width:不论什么值

3)max-width:none之外的不论什么值

在IE6中由于布局而常出现的问题包含:

1)拥有布局的元素不会收缩:即是假设元素设定了尺寸,而元素内容超过元素尺寸时,通常是内容溢出到元素外,而IE6中是将元素进行扩展以适应内容。

2)布局元素对浮动进行自己主动清理:常见的一个样例是文字环绕图片,假设文字段落拥有布局,则文字不再环绕图片。

3)相对定位的元素没有布局

4)在拥有布局的元素之间外边距不会叠加

5)在没有布局的块级链接上,单击区域仅仅覆盖文本

6)在滚动中。列表项上的背景图片间歇性的显示和消失

2、hack和过滤器

1)IE条件凝视

a)适用于IE5及其更高版本号

<!– [if IE]

    <link rel=”stylesheet” type=”text/css” href=”ie.css” />

–>

b)适用于IE6

<!– [if IE 6]

    <link rel=”stylesheet” type=”text/css” href=”ie.css” />

–>

c)低于IE6

<!– [if lt IE 6]

    <link rel=”stylesheet” type=”text/css” href=”ie.css” />

–>

2)应用星号HTML hack

在IE6及其更低版本号中,有一个匿名的根元素。包围着html元素。因此能够利用该匿名根元素来讲特定的规则应用在IE6及其更低版本号的浏览器上,如

* html { width: 1px; }

3)应用子选择器hack

利用子选择器不被IE老版本号所理解的特性。创建仅仅适用于现代浏览器的规则

html>body { background-image: url(bg.png); }

仅仅有支持子选择器的浏览器才干应用该规则

3、常见BUG及其修复方法

1)双外边距浮动bug——IE6及其更低版本号

bug:不论什么浮动元素的外边距加倍

修复:将元素的display属性设置为inline

2)3像素文本偏移bug——IE6及其更低版本号

bug:当一个非浮动元素与一个浮动元素相邻时。两个元素之间会自己主动加入一个3像素的间隙

修复:方法一:将非浮动元素设置为浮动;方法二:为非浮动元素设置规则:_zoom: 1; margin-left: value; _margin-left: value-3px; (注:zoom是触公布局,而下划线是针对IE7更低版本号的hack)

3)IE6的躲猫猫bug

bug:一个浮动元素跟着一个非浮动元素,之后再跟着一个清除浮动元素,全部元素都包括在一个有背景颜色或背景图片的父元素中。非浮动元素会被父元素覆盖,又一次载入才会出现。

修复:方法一:去掉父元素的背景颜色或图片;方法二:避免清除浮动元素与浮动元素接触;方法三:给父元素指定一个行高;方法四:将浮动元素和父元素的position属性设置为relative。

4)相对定位的元素中绝对定位错误——IE6及其更低版本号

bug:相对定位的父元素中包括绝对定位的子元素。子元素定位时的參照物不是父元素而是视口。(IE6中相对定位的元素没有拥有布局)

修复:迫使相对定位父元素拥有布局(设置width或height,如 _height: 1%;)

    <link rel=”stylesheet” type=”text/css” href=”ie.css” />
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/116264.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python 递归函数

    Python 递归函数递归函数在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。递归函数特性:必须有一个明确的结束条件; 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就作为后一次的输入)。 递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈(stack)这种数据结构实…

    2022年6月29日
    27
  • 深信服SCSA认证过程记录

    深信服SCSA认证过程记录本次主要是记录一下深信服SCSA认证的全过程。由于本人是公司安排培训,所以可能跟自主报名的部分流程不一致。首先是考前测试部分。考前会进行一次简单测试。内容大致如下:1、报名之后会受到链接,需要先确认是否能参加考试,不会立即进入考试界面,确认之后可以自主选时间参加测试。2、测试是在牛客网上进行的,一共100题,需在100分钟内完成作答,答对60%即可过关,还是比较简单的。3…

    2022年6月20日
    51
  • 用户名为中文软件不能用_电脑用户名打不了中文

    用户名为中文软件不能用_电脑用户名打不了中文(软件必须要求路径和用户名都是英文,比如SystemVue和MATLAB)我安装matlab也是一路坎坷,一开始每次激活成功后就自动关闭,再次打开依旧提示激活,无论是在线激活还是本地选择license文件都不行(.lic文件是从Mathwork上登录后下载下来的)。讲道理是还有一年期限,不会过期的,但是试了好久启动不了。后来发现license文件放错了位置,应该放在安装目录下,如C:\Progr…

    2022年10月14日
    4
  • tomcat日志分割

    tomcat日志分割l 在Linux系统中,转到tomcat的bin目录下:cd/usr/local/Server/apache-tomcat-8.5.14/binl 在bin目录下新建clean.sh文件,并给予文件权限:chmod 777clean.sh l 编辑clean.sh文件:viclean.sh#!/bin/shsource/etc/profiled=`d

    2022年6月20日
    37
  • 房费制——报表(1)

    房费制——报表(1)

    2022年1月4日
    51
  • 你应该知道的,十二大CNN算法

    你应该知道的,十二大CNN算法大家好,我是K同学啊!今天和大家分享一下自年来,涌现出来的那些优秀的图像识别算法模型。⭐️简介模型是YannLeCun教授于1998年在论文《Gradient-basedlearningappliedtodocumentrecognition》中提出。它是第一个成功应用于手写数字识别问题并产生实际商业(邮政行业)价值的卷积神经网络。被誉为是卷积神经网络的“HelloWord”,它是最简单的架构之一。有2个卷积层和3个全连接层,有大约60,000个参数。…………..

    2025年10月3日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号