品牌创意企业推荐 推荐: 网站建设 网站建设 上海网站建设  
 
搜索 竞赛 产业 文案 论吧 论坛 酷站 矢量库 图片库 设计网址 作品集> 注册 - 登陆
首 页设计资讯大赛征集平面设计UI设计CG/动画工业设计建筑环境数码影像教程区设计访谈 精品欣赏会员作品集
>> 行业资讯设计竞赛网页设计软件界面ICON设计桌面设计设计资源精品欣赏设计教程
推荐:经典素材资源
滚动新闻:[6-10]融于意,形于展!---52design作品集、设计师网上联展!
当前位置: 首页 >> UI设计 >> 网页设计 >>正文
IE中伪类:hover的使用及BUG
资讯/教程/作品在线投稿  - 进入素材基地 - 论坛讨论 - 查看更多相关内容
时 间:2007-8-27 17:19:30   作者:blank   来 源:蓝色理想   浏览:

:hover是我们在CSS设计中最常运用的伪类之一,许多绚丽效果的实现离不开伪类:hover,比如我们常见的纯CSS菜单、相册效果等等。

或许用了这么久的伪类:hover,还有部分朋友还不完全了解hover的规则:

·设计师个人作品集火热申请中!
·查询网站排名推荐您用Chianz排名查询
·“论吧”正式上线 欢迎参与主题讨论
·全球经典酷站推荐欣赏
·矢量素材 给设计师提供强大后盾
·加入设计师论坛,精彩无限
·设计网址大全,免费收录所有设计站点

引用:
在CSS1中此伪类仅可用于a对象。且对于无href属性(特性)的a对象,此伪类不发生作用。
在CSS2中此伪类可以应用于任何对象。

但目前IE5.5、IE6仅支持CSS1中的:hover,不过新出的IE7是支持CSS2中的:hover。

当我们用伪类:hover做某些特殊效果时,依据CSS2很好完成,但为了现在占据主流浏览器的IE6,我们又不得不做很多工作,比如给添加a元素等来模拟完成最终的效果。

或许这样讲太空洞,请看下面一个常见的触发显示的例子(仅选择IE6为例讲解)。

我们先用CSS2的写法来实现:

XHTML部分:

<ul>
<li>鼠标移过来触发我吧!<a href="#" title="">哈哈,终于被你发现了!</a></li> 
</ul>

CSS部分:

* {margin:0; padding:0;}
ul {list-style:none;margin:100px;}
li {height:100px; width:100px; background:#000; font-size:12px; color:#fff; position:relative;}
li a {display:none;}
li:hover a{display:block; text-decoration:none;width:100px; height:100px; background:#c00; position:absolute; top:50px; left:50px; color:#fff;}

演示效果

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

大家可以测试发现在FF等对CSS2支持很好的浏览器中,可以显示我们所要达到的效果,但在IE6中却无法实现。

下面让我们换一种思维,所用CSS1的写法来看看,这个时候由于无法支持li元素:hover的使用,我们只好把所有文字包含到a中,对a使用:hover,并且将要显示隐藏的部分放到span元素中,首先我们对XHTML进行部分调整,调整如下:

XHTML部分:

<ul>
<li><a href="#" title="">鼠标移过来触发我吧!<span>哈哈,终于被你发现</span></a></li> 
</ul>

CSS中我们将a的设置成块级元素,并使a的大小和宽度和li的相同,并设置a为相对位置,用a来模拟上例中的li;而用span来模拟上例中的a,设置span在默认情况下隐藏(display:none;),当a被触发时(:hover),则span显示(display:block;)

CSS部分:

* {margin:0; padding:0;}
ul {list-style:none;margin:100px;}
li {height:100px; width:100px; background:#000; font-size:12px; }
li a {display:block; height:100px; width:100px; position:relative; color:#fff; text-decoration:none;}
li span {display:none; }
li a:hover span {display:block; width:100px; height:100px; background:#c00; position:absolute; top:50px; left:50px; color:#fff; }

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

可我们发现上例中的效果,在IE6中依然无法显示,难道我们的代码写错了,可检查来检查去一点错误也没有(不信你找个高高手问问,他们依然会回答你,这代码完全正确),难道是标准中的说明是错的?还是IE6浏览器连CSS1也不支持?很多疑问从四面八方跑来了……

那到底是什么问题呢

不是标准说明的错,也不是IE浏览器不支持CSS1,而是IE浏览器自身解析的问题,是IE5.5和IE6中伪类:hover的BUG。

那又该如何解决这个问题呢

这个BUG可以通过在链接的属性中增加某些特殊的CSS属性声明来消除。

下面我们对上面的第二个例子进行实验,究竟哪些属性可以帮我们来消除这些BUG。

对CSS代码我们增加:

li a:hover {}

对其属性我们仅设定width:100px;发现在IE6中依旧没有变化,我们尝试着更改width的value,比如使其width:99px,奇怪的事情发生了,在IE6中,隐藏的部分在触发的时候显示出来了。我们再对li a:hover的属性仅设定color来测试(初始值为#fff),更改color值,发现在IE6下却也不能触发显示,奇怪,奇怪,真奇怪……是不是依旧是一头雾水……没关系,继续往下实验,或许归类了我们就能发现规律了!

我们再用其他属性进行设置:width,positon,background,text-decoration,font-size,font-weight,font-family,border,float,display,font-style,margin,padding,text-align,overflow,text-transform,text-indent,z-index,vertical-align。

我们发现除了text-decoration,color,z-index不能触发显示(对于不能触发显示的部分,可以还有某些遗漏的属性,欢迎朋友补充)外,其他属性均可以做为消除伪类:hover BUG的特定属性。

说明

  • 对于dispaly不可以用本例来测试,可另外写个更简单的例子(去除ul/li,a和span中的position)。在实际应用中怿飞不建议改变display值来做为特定属性消除此BUG,而且在某些例子中此属性不一定能消除BUG。
  • 对于做为特定属性的border和background中的颜色我们还可用全写和简写来改变,如#fff和#ffffff在消除BUG中解析为2个不同的值。

最终效果

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


本文链接:


52design素材资源库52design图片库52design酷站营

我爱设计网www.52design.com
(在线编辑:morion) 】【打印】【关闭】【设计论坛】【设计师作品集
免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有异议,请联络本站!
转载要求:文章作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站地址,且不准打上各自站点的水印。

经典设计欣赏 设计关键字:VI 新锐 包装 装帧 海报 地产广告 画册 名片 标志 软件界面 ICO 网页
《萌芽》纯纯的爱精美图片展示
《萌芽》纯纯的爱
《银河铁道物语》精美图片欣赏
《银河铁道物语》
《AKIBA》大眼LOLI同人动漫欣赏
《AKIBA》大
《御伽草子》日式传统经典动画壁纸
《御伽草子》日式
《念星信度》精美动漫作品欣赏
《念星信度》精美
FRKN METAL 平面广告设计
FRKN MET
韩国站点 素材资源 艺术摄影 游戏娱乐 影视网站 建筑家居 FLASH站 旅游购物 明星网站
设计门户 优秀企业 时尚品牌 象素站点 数码通信 设计公司 汽车网站 国外优秀 儿童网站
个性展示 网站教学 工 作 室 学校教育 卡通漫画 文化艺术 体育运动 美容健身 食品饮料
当日文章推荐 查看更多相关内容
FireWorks| Fireworks绘制简洁精致的Rs [8-27]Photoshop| Photoshop实例教程调色练习: [8-27]
Photoshop| 用Photoshop蒙版制作漂亮方便 [8-27]平面设计| Nigel Evan Dennis平 [8-27]
海报设计| 封面、宣传海报设计 [8-27]平面设计| Marsans Viagens 平面 [8-27]
平面设计| CelisBernardo 平面设计 [8-27]地产广告| SHOW TOWN-阳光海岸一期 [8-27]
会展| 意大利“行走的艺术”当代艺术设计展前 [8-27]会展| 上海艺术博览会当代国际艺术展发布会在 [8-27]
工业资讯| 设计改变中国——07中国工业设计年会 [8-27]会展| 2007新视角·上海·中日韩新媒体艺 [8-27]
会员作品集推荐 查看更多推荐会员作品
平面作品 | 插画作品 | 网页作品 | 包装作品 | 软件UI | 室内设计 | 数码摄影作品 | 建筑环境 | 工业设计 | 其他
3D展示排行榜碎布娃娃—10碎布娃娃—9Smelly
干果类降落烟仔卡卡走-迷Divinedoors

数据载入中...
视觉焦点
优秀作品在线投稿
·
Nigel Evan Dennis平面作品欣赏
Nigel
封面、宣传海报设计
封面、宣传海
Marsans Viagens 平面广告设计
Marsan
CelisBernardo 平面设计
CelisB

站点新入
Fireworks教程:绘制性感CG美女教程
Firewo
Fireworks教程:绘制灯泡
Firewo
展区
·翰海博网诚聘资深网页设计师 (2-29止)
·招聘全职美工 (8-30止)
·儒林设计工作室_招聘 (6-30止)
·WEB/GUI界面设计师 (1-10止)
·高薪诚聘网页美工 (1-28止)
·招聘资深平面设计师 (1-31止)
韩国站点 素材资源 艺术摄影 游戏娱乐 影视网站 建筑家居 FLASH站 旅游购物 明星网站 个性展示 网站教学 工 作 室 学校教育
设计门户 优秀企业 时尚品牌 象素站点 数码通信 设计公司 汽车网站 国外优秀 儿童网站 文化艺术 体育运动 美容健身 食品饮料
网站名称:shrek3
网站地址:http://globosat.globo.com/telecine/webflights/shrek3/
加入时间:2008-10-9 15:23:24
网站名称:trina
网站地址:http://www.trina.pt/
加入时间:2008-10-9 15:22:32
网站名称:markfairwhale
网站地址:http://www.markfairwhale.com/
加入时间:2008-10-9 15:21:49
网站名称:pedrolamin
网站地址:http://www.pedrolamin.com.br/
加入时间:2008-10-9 15:20:48
网站名称:unileverprev
网站地址:http://www.unileverprev.com.br/
加入时间:2008-10-9 15:18:44
网站名称:wansoju-j
网站地址:http://www.wansoju-j.com/
加入时间:2008-10-9 15:15:15
关于本站 | 联系方式 | 商业服务 | 合作伙伴 | 站点地图 | 免责声明 | 版权声明 | 在线投稿