为了账号安全,请及时绑定邮箱和手机立即绑定

在锚里放一个div是正确的吗?

在锚里放一个div是正确的吗?

绝地无双 2019-05-31 10:51:03
在锚里放一个div是正确的吗?我听说在内联元素中放置块元素是HTML的罪过:<a href="http://www.mydomain.com"><div>What we have here is a problem.  You see, an anchor element is an inline element, and the div element is a block level element.</div></a>但是如果你把外面的锚设计成display:block在样式表里?还错吗?HTML 4.01规范块级和内联元素似乎是这样认为的:样式表提供了一种方法来指定任意元素的呈现,包括元素是以块形式呈现还是以内联形式呈现。在某些情况下,例如列表元素的内联样式,这可能是适当的,但总的来说,作者不鼓励以这种方式覆盖HTML元素的传统解释。有没有人对这个问题有进一步的建议?
查看完整描述

4 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

取决于您要迎合的HTML版本:

  • HTML 5国家<a>元素“可以环绕整个段落、列表、表等,甚至整个部分,只要没有交互内容(例如按钮或其他链接)”。

  • HTML 4.01指定<a>元素只能包含内联元素。一个<div>是块元素,因此它可能不会出现在<a>.

    当然,您可以随意地将内联元素样式设置为出现作为一个块,或者实际上是一个块的样式,这样它就可以内联地呈现。术语的使用inlineblock在HTML中,元素与文档的语义结构之间的关系,而CSS中的相同术语则更多地与元素的可视化样式有关。如果以块的方式显示内联元素,那就好了。

    然而,当CSS不存在时,您应该确保文档的结构仍然有意义,例如,通过屏幕阅读器等辅助技术访问时,或者是在由强大的Googlebot检查时。


查看完整回答
反对 回复 2019-05-31
?
偶然的你

TA贡献1841条经验 获得超3个赞

不,它不会验证,但是的,它通常会在现代浏览器中工作。尽管如此,在你的锚内使用一个跨度,然后设置。display: block在它上,它肯定会在任何地方工作,它将验证!


查看完整回答
反对 回复 2019-05-31
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

本文件中的关键词“必须”、“不得”、“要求”、“应”、“不”、“建议”、“可”和“可选”应解释为[RFC 2119]所述。但是,为了可读性,这些单词并不会出现在本规范中的所有大写字母中。

考虑到这一点,我相信最后的声明是在7.5.3块级和内联元素,上面写着

通常,内联元素可能只包含数据和其他内联元素。

条件“一般”似乎引入了足够的模糊性,例如HTML 4.01确实允许内联元素包含块元素。

当然,CSS 2有一个显示属性值,内嵌块,这似乎符合你所描述的目的。我不确定它是否得到了广泛的支持,但似乎有人预见到了这种行为的必要性。

DTD在这里似乎不那么宽容,但是DTD案文服从规范:

HTML4.01规范包含额外的语法约束,不能在DTD中表示。

在另一个注释中,您建议通过将块包装在锚中来使块处于活动状态。我不认为HTML禁止这样做,CSS显然允许这样做。因此,为了回答标题中关于它是否正确的问题,我说是的。按照标准,有时是正确的。


查看完整回答
反对 回复 2019-05-31
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

有HTML 5规范.。现在可以在内联元素中放置块级元素。所以现在把‘div’或‘h1’放在‘a’元素中是非常合适的。


查看完整回答
反对 回复 2019-05-31
  • 4 回答
  • 0 关注
  • 617 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信