大家可以测试发现在FF等对CSS2支持很好的浏览器中,可以显示我们所要达到的效果,但在IE6中却无法实现。
下面让我们换一种思维,所用CSS1的写法来看看,这个时候由于无法支持li元素:hover的使用,我们只好把所有文字包含到a中,对a使用:hover,并且将要显示隐藏的部分放到span元素中,首先我们对XHTML进行部分调整,调整如下:
广州网站建设,网站建设,广州网页设计,广州网站设计
XHTML部分:
ExampleSourceCode
- <ul>
- <li><ahrefahref="#"title="">鼠标移过来触发我吧!<span>哈哈,终于被你发现</span></a></li>
- </ul>
CSS中我们将a的设置成块级元素,并使a的大小和宽度和li的相同,并设置a为相对位置,用a来模拟上例中的li;而用span来模拟上例中的a,设置span在默认情况下隐藏(display:none;),当a被触发时(:hover),则span显示(display:block;)
CSS部分:
ExampleSourceCode
- *{margin:0;padding:0;}
- ul{list-style:none;margin:100px;}
- li{height:100px;width:100px;background:#000;font-size:12px;}
- lia{display:block;height:100px;width:100px;
- position:relative;color:#fff;text-decoration:none;}
- lispan{display:none;}
- lia:hoverspan{display:block;width:100px;height:100px;
- background:#c00;position:absolute;top:50px;left:50px;color:#fff;}
◆查看效果:
SourceCodetoRun
- <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <htmlxmlnshtmlxmlns="http://www.w3.org/1999/xhtml">
- <head>
- <metahttp-equivmetahttp-equiv="Content-Type"
- content="text/html;charset=gb2312"/>
- <title>css</title>
- <styletypestyletype="text/css">
- ul{list-style:none;}
- li{height:100px;width:100px;background:#000;font-size:12px;}
- lia{display:block;height:100px;width:100px;position:relative;
- color:#fff;text-decoration:none;}
- lispan{display:none;}
- lia:hoverspan{display:block;width:100px;height:100px;background:#c00;
- position:absolute;top:50px;left:50px;color:#fff;}
- </style>
- </head>
- <body>
- <h2>使用CSS1做出的效果(有BUG)</h2>
- <ul>
- <li><ahrefahref="#"title="">鼠标移过来触发我吧!
- <span>哈哈,终于被你发现</span></a></li>
- </ul>
- </body>
- </html>
[可先修改部分代码再运行查看效果]
可我们发现上例中的效果,在IE6中依然无法显示,难道我们的代码写错了,可检查来检查去一点错误也没有(不信你找个高高手问问,他们依然会回答你,这代码完全正确),难道是标准中的说明是错的?还是IE6浏览器连CSS1也不支持?
广州网站建设,网站建设,广州网页设计,广州网站设计