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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CAD图纸转换成白色背景SVG格式如何设置其页面大小?

    CAD图纸转换成白色背景SVG格式如何设置其页面大小?

    2021年7月6日
  • 《大话数据结构》边读边感

    《大话数据结构》边读边感第一章:数据结构绪论数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。数据:是描述客观事物的符号,式计算机可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据输入有两个前提:1、可以输入的计算机中;2、能被计算机程序处理数据元素:是组成数据的,有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。数据项:一个数据元素可以由若干个数据项组成;数据项数据不可

    2022年6月24日
  • concurrent.futures模块(进程池/线程池)

    一、Python标准模块–concurrent.futures(并发未来)那么什么是线程池呢?我们来了解一下二、线程池1#1.同步执行2fromconcurrent.futures

    2022年3月29日
  • 网上常见的分享功能, 比如 点击分享到 人人 微博 空间 等都是怎么做的…

    网上常见的分享功能, 比如 点击分享到 人人 微博 空间 等都是怎么做的…

    2021年9月19日
  • 光流法原理与实现「建议收藏」

    光流法原理与实现「建议收藏」以下内容摘自一篇硕士论文《视频序列中运动目标检测与跟踪算法的研究》:1950年Gibson首先提出了光流的概念,光流(opticalflow)法是空间运动物体在观测成像面上的像素运动的瞬时速度。物体在运动的时候,它在图像上对应点的亮度模式也在做相应的运动,这种图像亮度模式的表观运动就是光流。光流的研究就是利用图像序列中像素的强度数据的时域变化和相关性来确定各自像素位置的“运动”。光流表达

    2022年7月23日
  • Spring Boot集成AD域实现统一用户认证

    1.引言由于近期需要开发基于JWTToken的统一身份认证服务项目,因此需要集成公司原有的AD域实现用户的身份认证问题,项目采用SpringBoot框架进行开发,在此将相应的集成开发步骤进行记录。1.1LDAP简介目录是一个为查询、浏览和搜索而优化的专业分布式数据库,它呈树状结构组织数据,就好象Linux/Unix系统中的文件目录一样。目录数据库和关系数据库不同,它有…

    2022年4月8日

发表回复

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

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