CSS bug是布局中最头疼的问题。我们需要兼顾各种浏览器,以期待获得一致的效果。
非常遗憾的是各厂商之间的竞争导致很多问题的存在。而IE6与IE7在很多问题上也存在着很大的差别。
轻松的解决CSS bug是我们必须掌握的技能。现在整理出最常用的12种CSS BUG解决方法以及CSS BUG类的小技巧。
希望对您的学习、工作有所帮助,如果您依然有疑问,

一、 针对浏览器的选择器

  这些选择器在你需要针对某款浏览器进行css设计时将非常有用.
  IE6及其更低版本
  * html {}
  IE7及其更低版本
  *:first-child+html {} * html {}
  仅针对IE7
  *:first-child+html {}
  IE7和当代浏览器
  html>body{}
  仅当代浏览器(IE7不适用)
  html>/**/body{}
  Opera9及其更低版本
  html:first-child {}
  Safari
  html[xmlns*=""] body:last-child {}
  要使用这些选择器,请将它们放在样式之前. 例如:

 Example Source Code [www.mb5u.com]
#content-box { 
width: 300px; 
height: 150px; 

 Example Source Code [www.mb5u.com]
* html #content-box { 
width: 250px; 

二、让IE6支持PNG透明

  一个IE6的Bug引起了大麻烦, 他不支持透明的PNG图片。
  你需要使用一个css滤镜

 Example Source Code [www.mb5u.com]
*html #image-style { 
background-image: none; 
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src="fil 
ename.png", sizingMethod="scale"); 
}

三、移除超链接的虚线

  FireFox下,当你点击一个超链接时会在外围出现一个虚线轮廓. 这很容易解决, 只需要在标签样式中加入:

 Example Source Code [www.mb5u.com]
outline:none.
a{ 
outline: none; 
}

四、给行内元素定义宽度

  如果你给一个行内元素定义宽度,那么它只是在IE6下有效. 所有的HTML元素要么是行内元素要么就好是块元素. 行内元素包括: <span>, <a>, <strong> 和 <em>. 块元素包括<div>, <p>, <h1>, <form>和<li> . 你不能定义行内元素的宽度, 为了解决这个问题你可以将行内元素转变为块元素.

 Example Source Code [www.mb5u.com]
span { width: 150px; display: block }

五、让固定宽度的页面居中

  为了让页面在浏览器居中显示, 需要相对定位外层div, 然后把margin设置为auto.

 Example Source Code [www.mb5u.com]
#wrapper { 
margin: auto; 
position: relative; 
}

七、IE6双倍边距的bug

  给此对象加上display:inline即可解决问题。

八、图片替换技术

  用文字总比用图片做标题好一些. 文字对屏幕阅读机和SEO都是非常友好的.

 Example Source Code [www.mb5u.com]
HTML:
<h1><span>Main heading one</span></h1>
CSS:
h1 { background: url(heading-image.gif) no-repeat; } 
h1 span { 
position:absolute; 
text-indent: -5000px; 

  你可以看到我们对标题使用了标准的<h1>作为标签并且用css来将文本替换为图片. text-indent属性将文字推到了浏览器左边5000px处, 这样对于浏览者来说就看不见了.
  关掉css,然后看看头部会是什么样子的.

九、 最小宽度

  IE6另外一个bug就是它不支持 min-width 属性. min-width又是相当有用的, 特别是对于弹性模板来说, 它们有一个100%的宽度,min-width 可以告诉浏览器何时就不要再压缩宽度了.
除IE6以外所有的浏览器你只需要一个 min-width: Xpx; 例如:

 Example Source Code [www.mb5u.com]
.container { 
min-width:300px; 
}

  为了让他在IE6下工作, 我们需要一些额外的工作. 开始的时候我们需要创建两个div, 一个包含另一个:

 Example Source Code [www.mb5u.com]
<div class="container"> 
<div class="holder">Content</div> 
</div>

  然后你需要定义外层div的min-width属性,

 Example Source Code [www.mb5u.com]
.container { 
min-width:300px; 
}

这时该是IE hack大显身手的时候了. 你需要包含如下的代码:

 Example Source Code [www.mb5u.com]
* html .container { 
border-right: 300px solid #FFF; 

* html .holder { 
display: inline-block; 
position: relative; 
margin-right: -300px; 
}

  As the browser window is resized the outer div width reduces to suit until it shrinks to the border width, at which point it will not shrink any further. The holder div follows suit and also stops shrinking. The outer div border width becomes the minimum width of the inner div.

十、隐藏水平滚动条

  为了避免出现水平滚动条, 在body里加入 overflow-x:hidden .

 Example Source Code [www.mb5u.com]
body { overflow-x: hidden; }

  当你决定使用一个比浏览器窗口大的图片或者flash时, 这个技巧将非常有用.

转载于:https://www.cnblogs.com/wangbin/archive/2010/04/10/1708782.html

最常用的10种CSS BUG解决方法与技巧-浏览器兼容教程相关推荐

  1. 常用 BUG 解决方法

    扯淡   随着工作时间越来越长,对于代码的理解也越来越多!关注重点也渐渐地从代码本身转移到了代码结构性.解决问题方法性等方面.下面就来说一说,在遇到代码BUG,我们常用的一些方法! 二分定位法   通 ...

  2. 科普:Java 后端开发常用的 10 种第三方服务

    严格意义上说,所有软件的第三方服务都可以自己开发,不过从零到一是需要时间和金钱成本的.就像我们研发芯片,投入了巨大的成本,但仍然没有取得理想的成绩,有些事情并不是一朝一夕,投机取巧就能完成的. Jav ...

  3. 【转】Web 设计中最常用的 10 种色调以及它们的示例

    文章转载自:开源中国社区 [http://www.oschina.net ] 本文标题:Web 设计中最常用的 10 种色调以及它们的示例 本文地址:http://www.oschina.net/ne ...

  4. VLOOKUP函数最常用的10种用法

    VLOOKUP函数最常用的10种用法 VLOOKUP函数是工作中最常用的一种查找函数,掌握好VLOOKUP函数能够极大提高工作的效率. VLOOKUP函数的语法如下: VLOOKUP(lookup_v ...

  5. vscode 格式化某一段代码_VSCode格式化代码功能失效的bug解决方法

    VSCode格式化代码功能失效的bug解决方法 前不久我装上了 黑苹果,那么为了快速转移开发环境,我使用了VSCode(Visual Studio Code下面简称VSCode)的插件 Setting ...

  6. vscode格式化html代码失效了,VSCode格式化代码功能失效的bug解决方法

    VSCode格式化代码功能失效的bug解决方法 前不久我装上了黑苹果,那么为了快速转移开发环境,我使用了VSCode(Visual Studio Code下面简称VSCode)的插件Settings ...

  7. CPU占用内存率高的几种可能以及解决方法

    CPU占用内存率高的几种可能以及解决方法 CPU占用率高的九种可能 1.防杀毒软件造成故障 由于新版的KV.金山.瑞星都加入了对网页.插件.邮件的随机监控,无疑增大了系统负担.处理方式:基本上没有合理 ...

  8. linux lw3m多行文本使用,linux常用命令以及一些常见问题和解决方法教程.docx

    linux常用命令以及一些常见问题和解决方法教程 端口以及ip之间抓包1.监视指定网络接口的数据包tcpdump -i eth1如果不指定网卡,默认tcpdump只会监视第一个网络接口,一般是eth0 ...

  9. ArcGIS Engine 10 开发常见问题的解决方法

    ArcGIS Engine 10 开发常见问题的解决方法 You are not Licensed for 弹出提示框,点击确定,VS工程自动关闭 http://www.cnblogs.com/Ris ...

  10. Fail to connect to camera service的几种原因和解决方法

    Fail to connect to camera service的几种原因和解决方法      Will.Zhang         10-21 09:42:08.979: I/SurfaceTex ...

最新文章

  1. imgcook:各种图像一键自动生成代码的工具
  2. JavaScript学习笔记——BOM_window对象
  3. oracle数据集成产品,甲骨文推出Oracle数据集成产品
  4. api pdo php,从PHP Mysql API转换为PDO时如何处理数据类型
  5. Java成神之路——重入锁、公平非公平锁、自旋锁、读写锁
  6. cesium 原生抛物线
  7. 微信小程序调用百度云H5人脸识别
  8. RENIX 软件如何进行IP地址管理——网络测试仪实操
  9. 建立自己的kindle书库
  10. PowerBI-关系函数-RELATED RELATEDTABLE
  11. 【CSS】关键字 -webkit-fill-available 详解
  12. 境外服务器网站能挂支付宝么,支付宝如何境外改为境内?在国外可以使用吗?...
  13. 嘉应大学黄林鑫计算机学院,嘉应学院土木工程学院团总支学生会招新方案
  14. 如何重置Mac的蓝牙模块以解决连接问题
  15. Python 三大利器:迭代器、生成器、装饰器
  16. 怎么合并或注销重复LinkedIn领英帐号?
  17. Linux中的/proc文件系统详解(C/C++代码实现)
  18. Xampp/MySQL Mysql的启动失败问题(端口号被占用):Xampp port 3306 in use by“ Unable to open process“
  19. uniapp 自定义弹层时,底部页面滚动而弹层不能滚动
  20. 录屏软件Camtasia9的录屏文件存储位置/好用的免费录屏软件代替

热门文章

  1. 初步学习UITableView(摘自传智播客)
  2. Java内存模型探秘
  3. 电商网站商品图片放大镜实现
  4. 通过rsync备份静态文件
  5. centos6.2+heartbeat+mysql5.5+drbd84高可用安装
  6. Java 理论与实践: 修复 Java 内存模型,第 1 部分
  7. Cypress自动化测试系列之三
  8. Ubuntu 14.04 更换阿里云源
  9. 23-新建maven 项目
  10. js中获取时间new date()的用法和获取时间戳