HTML哪些元素不能有后代元素?编写时应注意哪些?
时间:2021-07-01 10:21:17
帮助过:36人阅读
还有哪些元素有顺序要求?
对了 HTML5讲的是 内容类别 。
回复内容:
你说的这个叫做 void element:
http://www.w3.org/TR/html5/syntax.html#void-elementsHTML5 里面的 void element 是这些:
area
, base
, br
, col
, embed
, hr
, img
, input
, keygen
, link
, meta
, param
, source
, track
, wbr
void element 写的时候,只需要 open tag,不需要 close。
但是注意,你看到源码里面有的 tag 没有 close,不一定就是 void element,因为还有一个东西叫做 tag omission: 8 The HTML syntax
除了void element之外,你还问了哪些标签是必须按照顺序的,我举例几个:
html->head->body
table->thead->tbody->tr/td->tfoot
ul->li
dl->dt->dd
等等。。
在我的知识领域,只有单个标签的有这种限制,比如
。至于注意事项,就两点:
1,别拼错标签名。之前见过一个问题,那哥们遇到了很奇葩的 HTML 问题,浏览器渲染多了很多空白,还到处问哪里出错了。其实是标签名写错了。
2,某些标签是没法相互嵌套的。比如:a 标签下面不能嵌套 a,form 标签里面不能嵌套 form。此外就是 inline 属性的标签不能嵌套 block 属性的标签。比如:span 包裹一个 p 标签。当然也有万能标签,a 虽然是 inline 属性,但是除了 a 之外,随便套。div 是 block 的万能套标签,span 是 inline 属性的无意义标签。如果你要用 html 结构模拟什么东西,最好就是用一大群的 span 来模拟,这样模拟出来的东西,无论放到 inline 还是 block 标签下面都 OK。
HTML标签还是蛮灵活的。至于哪些元素不能有后代元素,我也无法全部所全,这方面知识我想查阅W3C有关于HTML方面的规范会更全面,也更权威。我一般情况下行内元素标签不套块元素标签。
最近在把自家产品做改版
需要一套代码覆盖全部终端
需要屏幕阅读
需要盲操
才发现w3c真是目光高远啊
不考虑语义还是图样
不好意思,我不会这个问题~
因为我写的时候,都是无脑叠加div。除了文字,链接,控件,其他所有都是用div~
然后inline元素,基本不套div(也就是block元素),我的习惯就是,所有inline元素都是最里面的元素,我刚才尝试了下,好像td这种inline标签里嵌套div会出问题的。所以把所有的inline元素都放到black里面~ 终归不会出现什么问题把。
假如哪里错了,指出~ 谢谢。
说个跑题的
这个不必刻意记住 利用编辑器的代码提示 找个好用的ide 写的多了也就记住了