我经常使用<a>
标签包装块级元素,以使整个组可以点击。例如,假设我有一个事件列表:
<ul>
<li>
<a href="#" style="display: block;">
<div style="float: left; display: inline;">12/12/2010</div>
<div style="float: left; display: inline;">Some event information</div>
</a>
</li>
<!-- etc... -->
</ul>
注意:仅应用内联样式。
这样,整个事物都是可点击的,而不仅仅是元素中的文本。
当然,validator.w3.org的(x)html验证器不喜欢这个,因为我已经将块级元素(<div>
)置于内联级元素(<a>
)中。尽管如此,我使用CSS将<a>
标记定义为块级别,将<div>
标记定义为内联。
我总是按照经验法则编写,你应该总是努力创作有效的代码; 然而,如果您的代码未验证,您理解为什么它不验证,您有正当理由不验证 >,那就不要担心了。
所以我的问题是三方面的:
答案 0 :(得分:5)
使用span
如下所示是完全有效的,您可以达到同样的效果。
<a href="#" style="display: block;">
<span style="float: left;">12/12/2010</span>
<span style="float: left;">Some event information</span>
</a>
答案 1 :(得分:2)
我会使用<span>
代替<div>
,然后应用相同的样式。这样你就可以获得最好的世界。您仍然可以拥有更大的点击目标,但它也会验证。
答案 2 :(得分:0)
关于你的三个问题:
<span>
代码而不是div(实际上,通过制作div display:inline
可以获得什么?);或使用Javascript并将onclick事件添加到包含<li>
。答案 3 :(得分:0)
在我看来,是的。但是,如果您决定忽略验证,那么您自己就是独立的。
当然,用户可以赢得作者的利益。
使用HTML5,允许<a>
个元素包装块级元素。
答案 4 :(得分:0)
我通过向div添加onclick事件解决了这个问题,即onclick =“window.location ='redirectpage.html'”&gt;然后是样式光标:指针。像魅力一样工作,也有效。