html中行内元素(a)中能不能放块元素(div),为什么??
发布网友
发布时间:2022-05-06 15:58
我来回答
共9个回答
懂视网
时间:2022-04-20 09:58
大意就是这类元素本身内部可以有任何类型的内容,是否合法要看其父元素的 content model 和其内容的 categories。
比如我们要看 p > ins > a > div 是否合法,过程是这样的:
p 元素的 content model 是 phrasing content,ins 本身属于 phrasing content 故可以嵌套;
ins 元素的 content model 是 transparent,故在此时里面是否能有 a 需检查 p > a 的合法性;
a 元素也属于 phrasing content,故 p > ins > a 合法;
a 元素的 content model 也是 transparent,故此时里面包含 div 的合法性向上传递,检查 ins > div 又向上传递,变成检查 p > div;
div 不属于 phrasing content,所以这个嵌套是不合法的。
路过看见
扯一嘴
非要从标准说的话
肯定跟CSS没关系的
得看HTML标准
可是这货呢 HTML4 和 HTML5 说法又完全不一样
H5的鸟规范整出一堆概念
就如同 @顾轶灵 说的一样
H4 里说的简单到爆
这部分基本就一句
“
通常情况下行内级元素不能包含块级元素”
看看通常情况下呢
所以
这句然并卵
厂商压根不鸟
厂商鸟的只有特定规定
比如
"P元素
不能包含其他块级元素(包括P自身)"
等等
所以
H4里
“不能”才有约束作用
"通常情况下不能" 就然并卵
就这样咯
原则上不行,但草坪上的小径一样,走的人多了就成了路。一般情况下,注意p,dt等特殊情况就可以了
在html的规则下确实不能包含,嵌套div只会被强行截断。不过innerHTML或appendChild则可以强行忽略,但不建议,可能有浏览器有未知问题。
html解析的步骤先于css生效。
在css环节则没有这种限制。
本来是不可以的,但是很多人都这么用的,所以就可以了。
标准也是要顺应民意的。
建议你可以观察下行内元素包含块级元素浏览器会怎么处理。标准里也明确说明了发生这种事情时应该怎样处理。
Visual formatting model
When an inline box contains an in-flow block-level box, the inline box (and its inline ancestors within the same line box) are broken around the block-level box (and any block-level siblings that are consecutive or separated only by collapsible whitespace and/or out-of-flow elements), splitting the inline box into two boxes (even if either side is empty), one on each side of the block-level box(es). The line boxes before the break and after the break are enclosed in anonymous block boxes, and the block-level box becomes a sibling of those anonymous boxes. When such an inline box is affected by relative positioning, any resulting translation also affects the block-level box contained in the inline box.
This model would apply in the following example if the following rules:
p { display: inline }
span { display: block }
我以前写样式经常这样写或者
后来才知道这是错的,因为后台快疯了,看着a标签总是包含在最外面,虽然效果是可以显示出来的,但是后台已疯
p>div, 这个不行; a>div单看可以
最新的HTML标准是a标签不能包含div,在IE下没事,但是在其它浏览器中就截断了
HTML5标准定义可以这么做:
4.5 Text-level semantics
The a
element may be wrapped around entire paragraphs, lists, tables, and so forth, even entire sections, so long as there is no interactive content within (e.g. buttons or other links). ...used to make an entire advertising block into a link
热心网友
时间:2022-04-20 07:06
1、html中行内元素(a)中能不能放块元素(div)
回答:不能。
XHTML标准是这样定义的:
*inline
*a
*inline excluding an enclosed a element
解释就是 a标签属于inline, a标签只能嵌套inline元素,并也不能再嵌套a标签。
2、那span里面能不能放div呢??
回答:不能
1、html中行内元素(a)中能不能放块元素(div)
回答:不能。
XHTML标准是这样定义的:
*inline
*span
*inline
解释就是 span是属于inline,并且span也只能嵌套inline
另外,XHTML标准还有一些我们容易疏漏的,比如所有标签都要小写,例如<html>等
我个人理解就是标准毕竟只是标准,就好像大家都走路靠右边走,但是你如果非要靠左边走,也没人拦你。所以写的时候有可能会通过浏览器的认证,但是如果在某些严格符合xhtml规范的编译器或浏览器,他们就不认账了。
所以按照xhtml规范可以培养自己良好的开发习惯。
顺便提一下,html元素分3中,顶级元素、块级元素、内联元素。
LZ一直说的行内实际上就是内敛元素...
热心网友
时间:2022-04-20 08:24
答案是可以,只是不符合W3C的所谓标准罢了,效果都是一样的,只是看你的样式怎么写,display:block之后一样是块级元素。
但是按照你的说法div中放span再放div 这么写其实和连着写3个div没有区别,并没有体现出任何所谓的结构和样式分离,所以既然效果相同,我们还是按照那该死的标准来权衡自己的代码吧。
热心网友
时间:2022-04-20 09:58
常规情况不可以,w3c规定块级元素中可以放块级元素和行内元素,特殊情况p标签不能放其他块级元素,比如p中放div,行内元素中可以放行内元素,但是可以利用行内元素转块级元素或行内块级元素,display:block或者inline-block,这样块级元素或行内块级span中可以放块级元素div
热心网友
时间:2022-04-20 11:50
其实你说的牵涉到使用哪种 文档类型定义 (DTD)
xhtml strict下 ,在没有额外css的描述下,内联元素完全无法嵌套块级元素
xhtml Transitional下面 ,这种嵌套被接受 ,但是具体的表现行为被浏览器所解释
html4.0 DTD下 ,基本同上
----------------------------
<a>是个inline元素 ,根据css规范 inline元素只能包含inline元素 ,所以不能包含块级(block)元素<div>
没有什么为什么 ,规范或者说规定而已
习惯上 我管inline叫内联元素
事实上 一个标签的默认属性可以被display属性更改 ,如果a的display属性更改为 block或者 inline-block 那么就可以嵌套了 ,默认情况下是不行的
热心网友
时间:2022-04-20 13:58
答案是能。
但是放在行内元素里面的块元素 也会被格式成行内元素 并且继承外层行内元素的行高
热心网友
时间:2022-04-20 16:22
在没有加样式之前,a标签是可以套块级元素的,他是行内元素可以套块级元素的一个特例,但不建议这样使用。
热心网友
时间:2022-04-20 19:04
<A HREF="#"><DIV>this is href</DIV></A>
是这个意思吗?可以放啊。
热心网友
时间:2022-04-20 22:02
你问的两个都是可以的
你试一下就会明白
如果你a中写一个div并给他设定好宽高 就会有一个区域是链接
html中行内元素(a)中能不能放块元素(div),为什么??
回答:不能 1、html中行内元素(a)中能不能放块元素(div)回答:不能。XHTML标准是这样定义的:inline span inline 解释就是 span是属于inline,并且span也只能嵌套inline 另外,XHTML标准还有一些我们容易疏漏的,比如所有标签都要小写,例如<html>等 我个人理解就是标准毕竟只是标准,就好像大家都走路...
TXT中行太多的话,如何迅速找到某一行.比如有1000行,我要找到第602...
装个文本编辑器,比如emeditor,按CTRL+G, 出现对话框,输入602 就跳转到602行。也可以用WORD打开文本文件 CTRL+G 出现对话框,“定位目标”选“行”,然后输入602
网页开发的a标签可以嵌套块元素吗
按照正常的规则来说是不可以加的,a是行内元素,行内元素是不能包含块级元素的。除非用样式的方法将超链接的行内样式改成块级元素就可以了。
html中内联元素和块元素的嵌套问题。 内联元素能不能嵌套块元素? 根
是可以的,罗列 XHTML 标签的嵌套规则了:1. 块元素可以包含内联元素或某些块元素,但内联元素却不能包含块元素,它只能包含其它的内联元素:<div><h1></h1><p></p></div> —— 对 <a href=”#”><span></span></a> —— 对 <span><div></div></span> —— 错 2. 块级元素不...
HTML行内元素和块状元素有哪些
div这样的块级元素,就会自动占据一定矩形空间,可以通过设置高度、宽度、内外边距等属性,来调整的这个矩形的样子;与之相反,像“span”“a”这样的行内元素,则没有自己的独立空间,它是依附于其他块级元素存在的,因此,对行内元素设置高度、宽度、内外边距等属性,都是无效的。2.行内、块状元素区别...
在HTML中的行内元素和块状元素有哪些?以及区别
1、行内元素只能容纳文本或者其他行内元素。2、宽度只与内容有关。3、和其他元素都在一行上。4、高,行高及外边距和内边距部分可改变。二、块级元素具有以下特点:1、高度,行高以及外边距和内边距都可控制。2、总是在新行上开始,占据一整行。3、它可以容纳内联元素和其他块元素。4、宽带始终是与...
HTML中行内元素与块级元素的区别
1.行内元素与块级函数可以相互转换,通过修改display属性值来切换块级元素和行内元素,行内元素display:inline,块级元素display:block。2.行内元素和其他行内元素都会在一条水平线上排列,都是在同一行的;块级元素却总是会在新的一行开始排列,各个块级元素独占一行,垂直向下排列,若想使其水平方向...
CSS中什么是块级元素?
DIV 是最常用的块级元素,元素样式的display:block都是块级元素。它们总是以一个块的形式表现出来,并且跟同级的兄弟块依次竖直排列,左右撑满。二、行内元素:inline element 也叫内联元素、内嵌元素等;行内元素一般都是基于语义级(semantic)的基本元素,只能容纳文本或其他内联元素,常见内联元素 “a...
html行内元素和块状元素
常见的行内元素包括:heda, meat, title, lable, span, br, a, style, em, b, i, strong。块级元素包括:body, form, select, textarea, h1-h6, html, table, button, hr, p, ol, ul, dl, cnter, div。行内块元素有:img, input, td。行内元素转换为块级元素或行内块元素使用...
div是不是块元素?
是的,div是一种块元素。在 HTML 中,元素可以分为块元素和行内元素两种。块元素会独占一行,并且默认宽度为父元素的宽度。常见的块元素有 div、h1-h6、p、ol、ul、li、form、header、footer、section等。而行内元素则不会独占一行,宽度随元素内容而定,常见的行内元素有 a、span、em、strong、...