一起CSS

当前位置:一起CSS

IE的条件注释

日期:2008-09-20 分类:未分类

从IE 5开始,有了IE条件注释。既然是“IE”条件注释,所以只有IE中才有效果。

IE条件注释是用来判断IE浏览器版本的。其基本结构和HTML的注释(<!-- -->)是一样的,因此IE以外的浏览器将会把它们看作是普通的注释而完全忽略它们,而IE则会根据条件显示。所以IE条件注释常用于CSS hank。

IE条件注释的基本语法是:

<!--[if IE]>
这里的内容IE浏览器才显示
< ![endif]-->

<!--[if IE]>和< ![endif]-->之间的内容在IE浏览器中能显示,而其他浏览器则会把它当作注释忽略。

IE条件注释还可以加上浏览器版本:

<!--[if IE 5]>
这里的内容IE 5才显示
< ![endif]-->
<!--[if IE 5.5]>
这里的内容IE 5.5才显示
< ![endif]-->
<!--[if IE 6]>
这里的内容IE 6才显示
< ![endif]-->
<!--[if IE 7]>
这里的内容IE 7才显示
< ![endif]-->

IE条件注释还有几个特殊语法:

1、lte  Less than or equal to的简写,也就是小于或等于的意思;

2、lt  Less than的简写,也就是小于的意思;

3、gte  Greater than or equal to的简写,也就是大于或等于的意思;

4、gt  Greater than的简写,也就是大于的意思;

5、!  不等于的意思,跟javascript里的不等于判断符相同。

举个例子:

<!--[if lte IE 6]>
lte的意思是小于或等于,所以这里面的内容只有IE 6及以下版本的IE浏览器能显示
< ![endif]-->

有一点需要注意的是:IE条件注释只适用于HTML,对CSS则没有用。不过我们可以换一个思路解决这个问题:

<!--[if IE]>
<style type="text/css">
这里的CSS语法只在IE浏览器里有效
</style>
< ![endif]-->

这个方法就可以使需要的CSS只在IE里有效果。

举一个综合的例子:

XHTML代码:

<!--[if ie]>
<p class="p1">你的浏览器是IE浏览器,并且这段文字是红色的。</p>
<![endif]-->
<p>如果你使用的是IE浏览器,那么你会看到上面还有一行红色的文字;如果你使用的不是IE浏览器,那么你只能看到这段蓝色的文字。</p>

CSS代码:

<style type="text/css">
p{
color:#00f;
}
</style>
<!--[if ie]>
<style type="text/css">
.p1{
color:#f00;
}
</style>
<![endif]-->

结果正如上面XHTML代码第二段所说。你可以点击这里查看结果。

查看:806 评论:没有评论

IE6双倍margin bug

日期:2008-09-15 分类:前端技术

IE6双倍margin bug也就是IE6双倍外边距bug是 IE6 最著名的bug之一。它出现条件是:父元素与子元素之间,子元素同时设置了浮动和外边距属性,子元素会出现此bug,兄弟元素之间则不会。看实际例子能更好的理解:

XHTML代码:

<div id="box">
<div id="left"></div>
<div id="right"></div>
<div id="footer"></div>
</div>

CSS代码:

*{
margin:0;
padding:0;
}
#box{
width:500px;
height:500px;
margin-left:20px;
background:#ff0000;
float:left;
}
#left{
width:200px;
height:400px;
background:#CCCCCC;
float:left;
margin-left:20px;
}
#right{
width:200px;
height:400px;
background:#3366CC;
float:left;
margin-left:20px;
}
#footer{
clear:both;
margin-left:20px;
background:#00FF00;
}

查看效果(用 IE6 查看)

解决的办法是给给子元素加上 display:inline 属性。如上例子给#left加上 display:inline 属性。

查看修正后的效果

查看:1,671 评论:1 标签:

浏览器兼容常见问题

日期:2008-09-11 分类:CSS

Web标准是大趋势,越来越的网站采用XHTML+CSS编写或重构。由于CSS有很多优点,所以我们有理由选择CSS。

然后在制作过程中,常常会出现问题。其实CSS并不难学,难的是做浏览器的兼容。如果你掌握了CSS的基本语法以及盒子模型浮动定位文档流,那么你所写的CSS代码在“理想的世界”里是完全没有问题的。这个“理想的世界”指的是完全符合标准的浏览器。然后这个“理想的世界”是不存在的(至少目前可以这么说),只有接近这个“理想的世界”。

虽然现在的世界不那么理想,换回具体的对象来说吧。虽然现在的浏览器不那么符合标准(当然有些还是很不错的,如:ff、opera),但有些市场占有率很高,在未来几年之内还不会淘汰(如IE6),所以我们不能放弃。我们不能改变它,那我们就了解它、适应它,也就是我们的主题:浏览器的兼容。

下面是一些常见的问题,希望对一些人有所帮助:

1、IE6双倍外边距(IE6双倍margin);

2、

查看:405 评论:没有评论 标签:

几种常见浏览器内核简介

日期:2008-09-9 分类:未分类

9月3日Google发布了Chrome浏览器,试用了一下,觉得还不错:速度快,界面简洁,正是我喜欢的风格。不过这里不是介绍Chrome浏览器,而是介绍浏览器内核

那内核是什么呢?内核只是一个通俗的说法,其英文名称为“Layout engine”,翻译过来就是“排版引擎”,也被称为“页面渲染引擎”(下文中各种说法通用)。它负责取得网页的内容(HTML、XML、图像等等)、整理信息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要排版引擎。

那浏览器的有哪些呢?事实上,有很多种(废话!),如果加上所有的几乎没有什么人在用的非商业的免费内核,那么可能大约有10款以上甚至更多,不过通常我们比较常见的大约只有以下四种,下面先简单介绍一下:

Trident

这是微软开发的一种排版引擎。该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到目前的IE7。Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现(如 Maxthon、The World 、TT、GreenBrowser、AvantBrowser等)。此外,为了方便也有很多人直接简称其为IE内核(当然也不排除有部分人是因为不知道内核名称而只好如此说)。自从发布后,Trident不断地被更新和完善:

Trident II(IE5)——增进对CSS1.0的支持及对CSS2重大的变更;

Trident III(IE5.5)——修正部分CSS的排版控制;

Trident IV(IE6)——修正了一部分box-model的错误以及增加了“兼容模式(Quirks Mode)”切换功能,以增加对文件类型描述(Document Type Definition,DTD)的支持;

Trident V(IE7)——修正许多CSS排版处理上的错误以及增加对PNG格式alpha通道(半透明)的支持。

Geckos

Gecko是套开放源代码的、以C++编写的网页排版引擎。这软件原本是由网景通讯公司开发的,Netcape6开始采用该内核。后来的Mozilla FireFox也采用了改内核,Geckos的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。Geckos现在由Mozilla基金会维护。

Presto

Presto是一个由Opera Software开发的浏览器排版引擎,该内核在2003年的Opera7中首次被使用,该款引擎的特点就是渲染速度的优化达到了极致,也是目前公认网页浏览速度最快的浏览器内核。

Webkit

苹果公司自己的内核,也是苹果的Safari浏览器使用的内核。 Webkit引擎包含WebCore排版引擎及JavaScriptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,它们都是自由软件,在GPL条约下授权,同时支持BSD系统的开发。所以Webkit也是自由软件,同时开发源代码。在安全方面不受IE、Firefox的制约,所以Safari浏览器在国内还是很安全的。

简单的总结一下:

使用Trident内核的浏览器:IE、Maxthon、TT;

使用Gecko内核的浏览器:Netcape6及以上版本、FireFox;

使用Presto内核的浏览器:Opera7及以上版本;

使用Webkit内核的浏览器:Safari、Chrome。

值得庆幸的是:Google的Chrome使用的内核并不是一个新的内核,而是苹果公司的Webkit内核,所以前端工作者的工作量没有加大。如果我们的网页在Safari中没有问题,那在Chrome里也是没有问题的。

查看:622 评论:没有评论

去除点击链接时出现的虚线框

日期:2008-09-9 分类:CSS

链接在被点击时会出现虚线框,即使松开了也仍然存在,在有的时候显得不美观。既然不好看,那就不要它。怎样去掉呢?

方法一 IE下可使用其私有的html属性:hideFoucs,在标签的结构中加入hidefocus="true"属性。即:

<a href="http://www.17css.com" hidefocus="true" title="17css-青色's Blog">17css-青色's Blog</a>

而在 Firfox 浏览器中则相对比较容易,直接给标签 a 定义样式 outline:none; 就可以了,即:

.HideFocus { outline:none; }

方法二 也可以使用CSS expression来控制,但不推荐使用,毕竟expression在性能上有问题。

.HideFocus {
	hide-focus:expression(this.hideFocus=true);  /* for ie 5+ */
	outline:none;  /* for firefox 1.5 + */
}

除链接外,该CSS同样适用于input和button标签。

方法三 将以下代码保存为link.htc文件:

<public:attach event="onfocus" onevent="hscfsy()"/>
<script type="text/javascript">
function hscfsy(){ this.blur(); }
</script>

链接样式中加入:

a { behavior:url(link.htc); }

IE中已经没有问题,但是在FF中虚线框依然存在。再增加一条样式定义来解决此问题:

a:focus { outline:0; }

这样IE、FF中虚线都不存在了。

查看:1,085 评论:2

分类

最新日志

最新评论

存档

链接

  • 亚当学院
  • CSS视频教程下载
  • 前沿视频教室
  • 前端爱好者
  • GoodText
  • Kily`s Blog
  • mymickey
  • 秦丰网站策划
  • 奥想创意
  • 我的职业生涯
  • 蜗爱CSS
  • 蜈蚣's Blog
  • web标准学习—小辉博客
  • 十字花匠

© Copyright 2010 一起CSS All Rights Reserved