0

这一切都始于我想要一种隐藏某些内容的方法,除非有要求。我已经在一些工具提示中使用了 link:hover 方法,并且想尝试将它用于此目的。

我正在避免使用 JS,因为我的网站的性质适合在手机上使用——即使在支持 JS 的地方,它的加载也是显而易见的,并且当它失败时,会使网站使用起来令人沮丧。

因此,我在带有时间戳生成 url 的锚标签中的 div 标签中有一个 iframe。实际上隐藏 iframe 导致它无法在 IE 中加载,所以我将它的高度设置为 0,直到它处于“已访问”状态。本来我只是用了div,但是链接属性都带了过来,所以引入了frame。在 FF 中,这按预期工作(为什么要将链接状态应用于链接不驻留的框架的元素?(当然,进一步的问题是,“为什么首先将框架包装在锚标签中? ?” 足够有效))但在 IE 中,“链接”状态会部分地干扰框架的功能。

光标是正常的,但是当您尝试单击框架中的任何内容时,常规的 url 指示指针会短暂出现。框架内的链接工作正常——但形式很棘手。您只能在框架内第二次单击时在表单字段中设置插入符号。第一次点击似乎将焦点放在了框架中;之后点击表单字段就足够了。最后需要注意的是,在 iframe 中不能用鼠标选择任何内容,包括用户在表单字段中输入的任何文本。

我玩过 z-indexes 无济于事,并且还尝试在访问时将链接本身的可见性设置为隐藏(这有效,但并没有杀死 I'm-still-going-to-pretend-I IE 中的“m-a-link”行为。

想法?

相关代码:html:

<a id="t-l" href="#<?php
echo time();
?>a" class=hidebox>save/share<div><iframe src="addtoany.php?pageID=1962460927" frameborder=0></iframe></div></a>

CSS:

.hidebox {}
.hidebox iframe {height: 0px; width: 300px; background-color:#393242;}
.hidebox:visited {}
.hidebox:visited div {width:300px; height:400px; padding: 10px 0px 0px 10px;}
.hidebox:visited iframe {height: 400px; width: 285px; border: 0px solid #393242; margin: 0px auto 0px auto;}
4

1 回答 1

1

您不应该将块元素嵌套在内联元素中并使用 css 进行 dom 操作逻辑。为什么不使用 javascript 解决方案?这将允许您拥有正确结构化的文档和所需的功能,而无需依赖浏览器的怪癖。

于 2009-06-13T17:34:02.843 回答