css里没法写条件判断的,但是根据各个浏览器支持的调试命令不同,可以用来区分,比如ie系列支持*号.你写个样式
.style1 { padding:1px*padding:10px}
这样就相当于所有ie浏览器下padding都是10px非ie就是1px
因为其他浏览器不识别*,所以*padding:10px就失效了,而ie下识别,所以则覆盖掉之前的1px了.
不同浏览器都有自己专用的hack,这样就可以实现判断了
区分IE6,IE7,firefox background:orange*background:green_background:blue
因为IE各版本的浏览器对我们制作的WEB标准的页面解释不一样,具体就是对CSS的解释不同,我们为了兼容这些,可运用条件注释来各自定义,最终达到兼容的目的
可使用如下代码检测当前IE浏览器的版本(注意:在非IE浏览器中是看不到效果的)
/*判断浏览器的版本*/<!––[if IE]>
<h1>您正在使用IE浏览器</h1> <!––[if IE 5]>
<h2>版本 5</h2> <![endif]––>
<!––[if IE 5.0]>
<h2>版本 5.0</h2> <![endif]––>
<!––[if IE 5.5]>
<h2>版本 5.5</h2> <![endif]––>
<!––[if IE 6]>
<h2>版本 6</h2> <![endif]––>
<!––[if IE 7]>
<h2>版本 7</h2> <![endif]––>
<![endif]––>
那如果当前的浏览器是IE,但版本比IE5还低,该怎么办呢,可以使用<!–[if ls IE 5]>,当然,根据条件注释只能在IE5+的环境之下,所以<!–[if ls IE 5]>根本不会被执行。
< !–- 默认先调用css.css样式表 –->
<link rel="stylesheet" type="text/css" href="css.css" />< !-–[if IE 7]>
<!–- 如果IE浏览器版是7,调用ie7.css样式表- –>
<link rel="stylesheet" type="text/css" href="ie7.css" />< ![endif]–->
<!–-[if lte IE 6]>
<!–- 如果IE浏览器版本小于等于6,调用ie.css样式表 -–>
<link rel="stylesheet" type="text/css" href="ie.css" />< ![endif]–>
最常见的失败原因有以下几类:
网络原因:IIS空间不足、浏览者网速慢、空间速度慢等网络因素是造成CSS加载失败的原因之一,其具体表现为:当我们打开网页时,网页布局完整,但却没有任何布局样式显示。
路径错误或者代码不兼容:果网页打开时,没有显示CSS设定的样式,只以原始状态显示。那么就可能是我们CSS文件路径出错或者CSS代码不兼容了。
if造成失败:第三个原因是,我们编在写CSS时,可能使用了if判断语句对什么浏览器调用什么CSS文件时疏忽造成if调用的混乱,导致在某些浏览器上能正常显示,在某些浏览器上不能正常显示。对于这个原因,解决方法就是好好检查造成CSS加载失败的if判断设置。
另类CSS加载失败 :何为另类CSS加载失败?这是由于我们本身的CSS代码写法有问题,没有设置好造成在各浏览器显示不同布局差距效果。在CSS里面,我们称为css hack。
浏览器导致:在Chrome浏览器的错误控制台下看看css文件有没有加载进来,确定已加载的话,检查元素的类名与CSS中定义的类名是否相同。可能局限于ie浏览器,你用谷歌浏览器就会出现错误。所以尝试换个浏览器,然后等会在用,也可能修复故障。
编码不对:如果不是上述问题则看一看你的CSS文件的字符集是否和你的调用CSS文件的网页的字符集是否一致,就是charset属性那里。在你使用浏览器进行浏览效果的时候,ie浏览器中菜单栏上有一个“查看--编码”,在查看编码上面UTF-8或者GBK看看是不是同一个编码。可能是编码不一致所造成。