将一个 div 转为链接

10 浏览
0 Comments

将一个 div 转为链接

我有一个带有一些精美视觉内容的块,我不想改变它。我想要将其变成可点击的链接。\n我正在寻找类似于 ... 的东西,但它必须是有效的XHTML 1.1格式。

0
0 Comments

问题:如何将

元素变为链接?

原因:无法直接将

元素本身作为链接,但可以通过将标签作为块元素来实现类似

的行为。

解决方法:

1. 将标签的display属性设置为block,使其具有块元素的行为。

a {
    display: block;
}

2. 可以设置标签的宽度和高度,以达到与

相似的效果。

然而,这并不是将

变为链接,而是将链接变为块元素。尽管两者有点不同,但在某些情况下可以解决问题。

参与讨论的用户jjnguy认为这是一种常见的做法,可以将标签作为块元素使用,尤其适用于导航菜单等场景。他认为这是合理且语义正确的做法。

其他一些用户也认为这是一个有效的解决方案,尽管问题描述不够明确,但仍然可以根据问题的要求给出合理的答案。

然而,该解决方案存在一个问题,即当在渲染为块元素的标签中插入元素时,外部的和内部的元素的高度不一致。可以通过给元素设置display: block属性和去除HTML中的空格字符来解决这个问题。不过,如果只使用图片作为链接,实际上不需要对标签进行任何操作,因为元素本身就具有类似块元素的行为(尽管两者都是内联元素)。

要将

0
0 Comments

将一个div变为链接的问题出现的原因是,希望在不使用JavaScript和无效HTML的情况下,使一个包含内容的div表现得像一个链接。下面是解决这个问题的方法:

1. 使用普通的CSS技术和有效的HTML来构建面板。

2. 在面板中的某个位置放置一个链接,如果用户点击面板,这个链接将成为默认链接(也可以有其他链接)。

3. 在链接中放置一个空的标签(,而不是)。

4. 为面板添加position:relative样式。

5. 对空的应用以下CSS样式:

{ 
  position:absolute; 
  width:100%;
  height:100%;
  top:0;
  left: 0;
  z-index: 1;
  /* fixes overlap error in IE7/8, 
     make sure you have an empty gif */
  background-image: url('empty.gif');
}   

6. 现在,它将覆盖面板,并且作为一个可点击的链接,因为它在标签内部。

7. 对面板内部的其他链接应用position:relative样式和合适的z-index(>1),将它们置于默认的链接前面。

这个解决方法对于使用纯CSS3创建的“lightbox”非常有效,允许用户点击变暗的区域并过渡回到以前的片段。

如果在IE8中发生严重的问题(就像对我来说那样),请确保有一个打开和关闭的标签(),而不是一个空的标签()。

在IE9中,这种方法不可用,因为您可以在div的任何地方点击,除了文本。当鼠标悬停在文本上时,光标会变成标准文本光标,但在单击文本时不会发生任何操作。为了解决这个问题,可以将背景图像设置为空的gif。

如果有嵌套的div,它会知道哪个div是可点击的吗?答案是最内层具有position:relative的div。

为了使div中的其他链接可点击,可以将它们的position设为relative,并将z-index设置为大于1。

您不需要在链接中添加一个空的标签。您可以使用实际的链接名称进行SEO,然后使用text-indent: -9999px; overflow: hidden;将其隐藏起来。

如果鼠标悬停在链接覆盖层上的其他元素上,这个解决方法会阻止它们触发:hover样式。可以使用z-index来解决这个问题,与其他div内的链接相同。

通过在包装的div上添加{ position: relative },可以解决一些问题。

如果只能通过添加填充和相同数量的负边距来扩展可点击的区域,可以使链接标签周围的图标和span都可点击。

希望这些解决方法对您有帮助!

0