Html 重写此代码:可单击divs

Html 重写此代码:可单击divs,html,css,w3c,Html,Css,W3c,我想改变这个: <a href='foo'> <div> Moo </div> </a> 符合标准(内联元素中不应该有块元素)。将javascript连接到DIV只是为了导航,这似乎是一种黑客行为,降低了可访问性。。在本例中,我的要求是在我的固定维度链接上设置两组边框,因此在应用样式后,上述不合规代码可以完美地工作 另外,“a{display:block;}”是否是规避验证的合法方式?为什么不使用而不是并在两个元素上设置displa

我想改变这个:

<a href='foo'> 
    <div> Moo </div>
</a>

符合标准(内联元素中不应该有块元素)。将javascript连接到DIV只是为了导航,这似乎是一种黑客行为,降低了可访问性。。在本例中,我的要求是在我的固定维度链接上设置两组边框,因此在应用样式后,上述不合规代码可以完美地工作

另外,“
a{display:block;}
”是否是规避验证的合法方式?

为什么不使用而不是并在两个元素上设置display:block


另外,要回答后一个问题:我不相信添加display:block发送到您的锚将使其通过验证。验证器检查你是否遵循(X)HTML规则,而不是如何向用户呈现页面。

我通常认为<代码> <代码>标签是用于此目的的特例。你应该能够将其应用到任何事情上——这是在超文本的整个观点之后(我想到了一个很好的例子)。但如果你必须通过某个验证器,我理解


你可以使用一个JavaScript <代码> OnCase<?/Cult>处理程序,并完全删除锚吗?

< P>你可能想考虑把<代码> div <代码>放在<代码> < < /代码>中,如果它只是为了显示的目的,除非外部边界是可点击的是重要的。或者:

<div class="dbl_border_links"><a href="blah">Blah text</a></div>

或者这个:

<a class="dbl_border_links" href="blah"><span>Blah text</span></a>

将起作用,您可以使用以下内容:

<style>
  .dbl_border_links, .dbl_border_links>* {
    display: block;
    border: 1px solid;
    padding: 1px;
  }
  .dbl_border_links {
    border-color: red;
  }
  .dbl_border_links > * {
    border-color: blue;
  }
</style>

.dbl\u边框链接,.dbl\u边框链接>*{
显示:块;
边框:1px实心;
填充:1px;
}
.dbl_边框_链接{
边框颜色:红色;
}
.dbl_边框链接>*{
边框颜色:蓝色;
}

以指定样式。就我个人而言,我会使用包含
a
div
,但这两种方法都有效。

首先,给出锚显示肯定没有什么错:block;我要说的是,这是人们用CSS做的比较常见的事情之一,完全符合标准。其次,有许多方法可以在HTML元素上实现双边框。首先,请查看“大纲”属性:


诚然,这只适用于更现代的浏览器,但由于大纲不占用页面的任何空间,因此应该优雅地降级。如果链接的内容是一个图像,你可以简单地给链接添加一些填充和背景颜色,以及一个普通边框(另一种颜色),以创建一个双边框的印象。或者给图像一个自己的边框。当然,您也可以按照您最初的想法做一些事情,尽管将HTML以另一种方式嵌套,只需为每个元素指定不同的边框。或者,您可以在链接内部使用一个内联元素(如a或a或其他),并将其设置为display:block;(是的,这也是有效的!)。快乐编码

如果我正确理解了您的意图,您应该像前面提到的那样,将div放置在锚之外,并且为了获得相同的演示,使锚
宽度:100%;高度:100%
。跨浏览器的差异可能会有所不同。 此外,您还可以完全转储div,并给出锚
display:block


你到底想做什么?

是的,div的背景必须是可点击的。先生,你是对的,因为html和css验证是两个独立的动物。我不得不对表单按钮做类似的事情。这种策略在表单元素中效果较差,但它仍然有效,我们获得了双刃的边界。border style:double属性在浏览器中的实现非常糟糕,这真是一个遗憾……感谢您提供的信息性建议!我实际上是用CSS来代替一个使用不同GIF改变边框颜色和字体颜色的图像滚动系统,但是我试图减少页面的重量