Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何做一个整体';分区';可在html和css中单击而不使用JavaScript?_Html_Css_Click - Fatal编程技术网

如何做一个整体';分区';可在html和css中单击而不使用JavaScript?

如何做一个整体';分区';可在html和css中单击而不使用JavaScript?,html,css,click,Html,Css,Click,我想让整个div都可以点击,并且在没有JavaScript和有效代码/标记的情况下,可以链接到另一个页面 如果我有这个,这就是我想要的结果- <a href="#"> <div>This is a link</div> </a> W3C验证器说块元素不应该放在内联元素中。有更好的方法吗?jQuery允许您这样做 查找单击()函数: 例如: $('#yourDIV').click(function() { alert('You click

我想让整个div都可以点击,并且在没有JavaScript和有效代码/标记的情况下,可以链接到另一个页面

如果我有这个,这就是我想要的结果-

<a href="#">
<div>This is a link</div>
</a>


W3C验证器说块元素不应该放在内联元素中。有更好的方法吗?

jQuery允许您这样做

查找
单击()
函数:

例如:

$('#yourDIV').click(function() {
  alert('You clicked the DIV.');
});
像这样的

<div onclick="alert('test');">

</div>


您可以添加
标记并将div放在其中,如果希望div充当链接,可以添加href。或者只需使用Javascript并定义一个“OnClick”函数。但是,从提供的有限信息来看,确定问题的背景有点困难。

AFAIK您至少需要一点JavaScript

我建议使用

您可以在一行中包含此库。然后你就可以用

$('div').click(function(){
  // do stuff here
});
并响应单击事件

在没有javascript和脚本的情况下单击时,整个div链接到另一个页面 如果代码有效,这可能吗

学究式的回答:不

由于您已经添加了另一条注释,在
a
标记中嵌套
div
是无效的

但是,除了不能在其内部嵌套其他块标记外,没有任何东西可以阻止您使
a
标记的行为与
div
非常相似。如果它适合您的标记,请在
a
标记上设置
display:block
,并根据需要调整大小/浮动它

如果您违背了问题的前提,即需要避免使用javascript,正如其他人指出的那样,您可以使用onClick事件处理程序。jQuery是一个流行的选择,它使这个过程变得容易和可维护

更新:

<div id="my-div">
    <a href="#" class="fill-div"></a>
</div>

在HTML5中,将
放在
(谢谢)

中,可以使链接填充整个div,从而使div看起来可点击

CSS:

<div id="my-div">
    <a href="#" class="fill-div"></a>
</div>
HTML:

<div id="my-div">
    <a href="#" class="fill-div"></a>
</div>

我的解决方案没有JavaScript/图像。只使用CSS。它适用于所有浏览器

HTML:

<div id="my-div">
    <a href="#" class="fill-div"></a>
</div>

HTML5中,在锚定中嵌套块级元素不再是无效的。见和。 我不是说你应该使用它,但是在HTML5中使用
是可以的

否则,公认的答案是最好的。像其他人建议的那样使用JavaScript也是不好的,因为它会使“链接”无法访问(对于没有JavaScript的用户,包括搜索引擎和其他用户)。


如果没有JS,我会这样做:

我的HTML:

<div class="container">
  <div class="sometext">Some text here</div>
  <div class="someothertext">Some other text here</div>
  <a href="#" class="mylink">text of my link</a>
</div>


我们是这样使用的

     <label for="1">
<div class="options">
<input type="radio" name="mem" id="1" value="1" checked="checked"/>option one
    </div>
</label>
   <label for="2"> 
<div class="options">
 <input type="radio" name="mem" id="2" value="1" checked="checked"/>option two
</div></label>


希望这能有所帮助。

仅针对div?定义有效代码?有无JavaScript?html和css是否包含JavaScript?别想so@KaiQing所以,根据你的计算,你可以在身体标签中嵌套一个头部标签,这样就可以了?语义标记的存在是有原因的。如果一切都是由一个DOM元素所控制,那么我们也可以只使用一个名为object的标记。只需将
设为块元素即可。虽然我通常不鼓励使用内联处理程序,在这种特定的情况下,它实际上可能是最好的选择—不需要JavaScription—我已经在使用它了,但它表示您不会大声地将块元素放入内联元素中,因此tryna找到了一个好方法(:OP要求“有效代码”(我想它们是指有效的标记)-将a标签嵌套在DIV中是无效的。正如上面其他答案所述,a标签中的DIV现在是有效的html5。OP要求否javascript@AlexNorcliffe在我提交答案后,他编辑了他的帖子。@JoshFoskett我不会显示警告框,而是重定向到另一个页面(像普通的href)。我该怎么做?我遇到了类似localation.href的东西,这有帮助吗?@DiAlex这应该适合你。Thx!我使用了非常类似的东西,也使用了click事件:
$(“#div id”)。单击(function(){location.href=“./page.html”;);
从HTML5开始,在
brilliant@Damien中有一个
,你是对的。是有效的HTML5。感谢你简化了我的生活!Alex,如果你更新了答案以反映Damien的评论,那就太好了。这是非常有价值的信息,可惜它隐藏在评论中…Damien文档的更新URL引用:,然后文本搜索“a元素现在”在页面上定位此解决方案是否会对文档中的其他标记产生潜在问题?我可能不希望所有标记都这样重新定义。正如@Damien所指出的,内部的an似乎是最优雅的。请参阅此页面,使其在Internet Explorer中正常工作(基本上只需将宽度或高度设置为1%:我相信只有
a
才需要1%的破解,它不会填充有填充的
td
,我假设
div
也是如此。我不确定除了从容器中移除填充之外是否还有其他方法。
a
上的负边距没有帮助.HTML4.
a
如果不围绕任何内容,也会收缩为零。您当然是指“仅HTML和CSS”。
在哪里?这似乎没有回答问题。他在他的
a
标记中添加了
display:block
,使其行为类似于
div
。它会得到相同的结果。这不会添加任何内容“clickable”功能。它只更改光标。True。为我的目的而工作:))OP指定为“无javascript”。OP指定为“无javascript”。我使用这个答案的时间,使我倒退了至少两年,节省了几次我的皮肤!再次感谢Hanks,这节省了我一天我认为这是最好的;)onclick使用javascript,因此这是一个可单击div的解决方案,但不是对
.clickable {
  cursor:pointer;
}
     <label for="1">
<div class="options">
<input type="radio" name="mem" id="1" value="1" checked="checked"/>option one
    </div>
</label>
   <label for="2"> 
<div class="options">
 <input type="radio" name="mem" id="2" value="1" checked="checked"/>option two
</div></label>
  <label for="1">
id=1
.clickable {
  cursor:pointer;
}