Html 可点击<;李>;使用<;a>;标记-没有要使用的JS。这合法吗?
好的,我已经读过很多次了,内联元素不应该包含块元素。我同意,这是有问题的,它可能会变得混乱后。但我发现这是唯一的解决方案,可以做到以下几点:Html 可点击<;李>;使用<;a>;标记-没有要使用的JS。这合法吗?,html,css,Html,Css,好的,我已经读过很多次了,内联元素不应该包含块元素。我同意,这是有问题的,它可能会变得混乱后。但我发现这是唯一的解决方案,可以做到以下几点: 我正在尝试创建一个HTML模板,它模仿Metro UI的“tiles”(是的,就是Windows8中的那个)。瓷砖是使用元素制作的。现在,问题是我希望平铺(整个标记)是可点击的,但是正确的HTML告诉我不能用内联元素包围块元素。此外,不能用包围。有没有什么方法可以在不违反html规则的情况下做到这一点?合法且干净的方法是对A标记使用inline block
我正在尝试创建一个HTML模板,它模仿Metro UI的“tiles”(是的,就是Windows8中的那个)。瓷砖是使用
元素制作的。现在,问题是我希望平铺(整个
标记)是可点击的,但是正确的HTML告诉我不能用内联元素包围块元素。此外,不能用
包围
。有没有什么方法可以在不违反html规则的情况下做到这一点?合法且干净的方法是对A
标记使用inline block
样式,并让它们填充整个LI
LI > A
{
display: inline-block;
}
或
这将适用于IE7+,以及所有最新版本的Firefox、Chrome、Safari、Opera等
请注意,在当前的HTML5草案中,将更多种类的元素放在锚标记中是合法的(请参阅“允许的内容”和示例):
附加文章:如果您查看stackoverflow菜单,您会发现它非常简单。将
放在
内,将其放在显示块中,并为其提供想要达到块感的填充。您介意共享代码吗?如果我这样做,将块元素放在标记中是否合法?是内联元素。@fskreuz-请参阅我的更新答案。总之,是的,它在HTML5中是合法的。在较旧的浏览器中仔细测试。确保它在HTML5中是合法的。对旧版浏览器有什么建议吗?@fskreuz-我在IE7和IE8中的锚中使用了块内容,没有问题。然而,我注意到了在IE7中使用HTML5 doctype的问题。我建议您尝试一下,如果遇到问题,可以用您的特定代码打开另一个问题。这很有效!尽管验证是不允许的(我使用的是xhtml strict)。我不是为了IE6兼容性而使用
,而是使用类。最后,
应该有溢出:隐藏修复程序来填充整个容器。与stack菜单的区别在于,它只包含
中
中的文本,这是完全合法的。然而,在我的例子中,
将不仅仅包含文本。例如,它可以包含段落,这是一个块元素。仍然,在内联场景中阻塞。
LI > A
{
display: block;
}