正在链接a<;部门>;使用javascript是否可以接受?

正在链接a<;部门>;使用javascript是否可以接受?,javascript,html,css,Javascript,Html,Css,我想链接整个,但CSS2不支持将href添加到div(或span)。我的解决方案是使用onClick属性添加链接。这对现代浏览器来说可以接受吗 示例代码: <div class="frommage_box" id="about_frommage" onclick="location.href='#';"> <div class="frommage_textbox" id="ft_1"><p>who is Hawk Design?<

我想链接整个
,但CSS2不支持将href添加到div(或span)。我的解决方案是使用onClick属性添加链接。这对现代浏览器来说可以接受吗

示例代码:

<div class="frommage_box" id="about_frommage" onclick="location.href='#';">
            <div class="frommage_textbox" id="ft_1"><p>who is Hawk Design?</p></div>

谁是霍克设计公司

我的测试页面在。每日更新


感谢您的帮助。

它可以在所有浏览器(甚至IE6)中使用。唯一的问题是搜索引擎可能无法获取它,因为它是javascript。我认为没有其他方法可以使整个div成为可点击的。在其周围放置一个“a”标记并不适用于所有浏览器。

将单击事件处理程序附加到
元素将适用于启用JavaScript的用户


但是,如果您正在寻找一种渐进式增强解决方案,您将希望坚持使用
元素。

这是可以接受的,只是它对SEO不好


也许您可以使
元素像div一样工作?(设置显示的样式:块等)

您不需要这样做。有一种非常简单且符合标准的方法可以做到这一点

默认情况下,块级元素将占据整个可用宽度
a
元素在默认情况下不是块级别,但您可以使用CSS中的
display:block
使其成为块级别

请参阅(无Javascript!)。您可以单击div中的任意位置来访问链接,即使链接文本不占整个宽度。您只需删除该
p
元素,并将其设置为
a

HTML:

<div class='frommage_box'>
    <a href='location.html'>CONTENT GOES HERE</a>
</div>

默认情况下,块元素占据100%的宽度。我们把高度调整到100%。这将允许爬行器抓取您的页面。

如果您想要实现的只是一个大的可点击框,请尝试在锚上设置以下CSS:

a {
   display: block;
   padding: 10px;
   width: 200px;
   height: 50px;
}

?@JCOC611
a
元素是内联的,因此不能包含块级元素,例如
div
。浏览器将尝试为您“修复”此问题,但无法保证他们会做什么。询问和回答了太多次。。。看:甚至。。。(简短回答:你没有。你把一个链接变成了一个div…)在他的例子中,他把一个div放在了他连接点击处理程序的div里面。我不认为在a中放置DIV是个好主意,即使a有display:block。W3C验证器接受了吗?是的,这是一个有效的观点-您不能将块级元素放入内联元素(
a
),但我只是建议-如果设计允许,为什么不?如果没有设计的截图,或者至少一些CSS,很难判断。也许内部的
div
p
可以很容易地替换为
span
I可能是错误的,但是不管CSS如何,在
标记中包含块元素的页面永远不会被验证。(编辑我没有错,但是这个答案并不建议这样做:-)@Pointy:他的例子显示了
div
中的
a
——但是样式设置为块元素(全宽)。您还可以将
span
s嵌套在
a
s中,并将它们都设置为块的样式…@Pointy在我的
a
标记中没有块元素。。。(虽然我确实有一个不匹配的

在那里--)哦,杜尔。我知道你现在在做什么。对不起@然后在
a
上执行
高度:100%
。这将使所有定位标记成为块元素。你显然不想这么做。是的,当然。很明显,我的意思是设计师要添加特定的样式来适应他们的页面设计。你说得对。编辑。不知道我脑子里想的是什么lmao。既然谷歌现在索引flash文件中的文本,谁知道他们还能做什么,包括嗅探未执行的代码:PGoogle现在几乎索引了大多数javascript和ajax(如果它有足够的理由,例如高信任系数),但是,如果您对SEO感到烦恼,请让Google尽可能轻松地找到您的内容。
a {
   display: block;
   padding: 10px;
   width: 200px;
   height: 50px;
}