当前位置: 首页 > 面试题库 >

如果一个块元素包含另一个块元素,将其更改为与CSS内联是错误的吗?

卢晟
2023-03-14
问题内容

我知道将block元素放入内联元素中是错误的,但是接下来呢?

想象一下这个有效的标记:

<div><p>This is a paragraph</p></div>

现在添加此CSS:

div {
   display:inline;
}

这会导致内联元素包含block元素的情况(默认情况下div变为内联,而p为block)

页面元素仍然有效吗?

在应用CSS规则之前或之后,我们如何以及何时判断HTML是否有效?

更新: 从那以后,我了解到在HTML5中将块级元素放在链接标记中是完全有效的,例如:

<a href="#">
      <h1>Heading</h1>
      <p>Paragraph.</p>
</a>

如果您想将很大的HTML链接作为链接,这实际上非常有用。


问题答案:

根据CSS 2.1规范

当一个内联框包含一个流入的块级框时,该内联框(及其在同一行框内的行内​​祖先)在该块级框(以及任何连续的或仅由以下分隔的块级同级)周围被破坏可折叠的空白和/或流出元素),将内联框分成两个框(即使任何一侧为空),在块级框的每一侧都一个。分隔符之前和之后的行框都包含在匿名块框中,而块级框成为这些匿名框的兄弟。当此类内联框受到相对位置的影响时,任何产生的平移也会影响内联框中包含的块级框。

如果遵循以下规则,此模型将在以下示例中适用:

 p    { display: inline }
 span { display: block }

与此HTML文档一起使用:

 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HEAD>
   <TITLE>Anonymous text interrupted by a block</TITLE>
 </HEAD>
   <BODY>
     <P>
       This is anonymous text before the SPAN.
       <SPAN>This is the content of SPAN.</SPAN>
       This is anonymous text after the SPAN.
     </P>
   </BODY>

P元素包含一个匿名文本块(C1),然后是一个块级元素,然后是另一个匿名文本块(C2)。生成的框将是代表BODY的框,其中包含C1周围的匿名框,SPAN框和C2周围的另一个匿名框。

匿名框的属性是从封闭的非匿名框继承的(例如,在示例下面的标题为“匿名块框”的小节下面,即DIV的框)。非继承属性具有其初始值。例如,匿名框的字体继承自DIV,但边距将为0。

在元素上设置的会导致生成匿名阻止框的属性仍然适用于该元素的框和内容。例如,如果在上面的示例中在P元素上设置了边框,则将在C1(在行的结尾处打开)和C2(在行的开头处打开)周围绘制边框。

一些用户代理已经以其他方式在包含块的内联线上实现了边界,例如,通过将这些嵌套的块包装在“匿名线框”内,从而在此类框周围绘制了内联边框。由于CSS1和CSS2没有定义此行为,因此仅CSS1和仅CSS2的用户代理可以实现此替代模型,并仍然声明符合CSS 2.1的这一部分。这不适用于在发布此规范后开发的UA。

随您便。显然,行为是在CSS中指定的,尽管目前尚不清楚它是否涵盖所有情况,还是在当今的浏览器中一致地实现。



 类似资料:
  • 问题内容: 是否可以在CSS中选择多个具有某个特定类,id等父的元素?例如: 如果不是,是否有办法选择该元素的所有子元素? 问题答案: 是否可以在CSS中选择多个具有某个特定类,id等父的元素? 当前,不幸的是,并非没有复制整个父选择器并指定所有后代,而是1: 直到选择器3最终确定后,他们才提出了伪类表示法来进行此操作,直到最近,基本实现才开始出现。 简而言之,现在已成为标准的伪类称为。在遥远的将

  • 问题内容: 我想将一个DIV元素移到另一个元素中。例如,我要移动此对象(包括所有子对象): 到这个: 这样我有: 问题答案: 曾经尝试过普通的JavaScript … 吗?

  • 问题内容: 如何检查一个DOM元素是否是另一个DOM元素的子元素?有内置的方法吗?例如,类似: 要么 如果没有,那么有什么想法怎么做?它还需要跨浏览器。我还应该提到,孩子可以嵌套在父级以下的多个级别。 问题答案: 更新: 现在有一种本地方法可以实现此目的。。在评论中也提到了答案。 旧答案: 使用该属性应该可以。从跨浏览器的角度来看,它也是非常安全的。如果已知这种关系是一级的,则可以简单地检查一下:

  • 问题内容: 我已经看过其他几个问题,但似乎无法弄清楚它们中的任何一个,所以这是我的问题,我想要一个div或span,当您将鼠标悬停在它上面时,就会出现一个区域,就像是一滴水下。 例如我有一个div,我想将鼠标悬停在上面,并让它显示有关我悬停的项目的一些信息 但这似乎不起作用,我不知道为什么…,如果有办法在CSS中做到这一点,我想知道,但是我想要任何和所有建议。 问题答案: 仅当隐藏的div是用于悬

  • 问题内容: 我想将一个DIV元素移到另一个元素中。例如,我要移动此对象(包括所有子对象): 到这个: 这样我有: 问题答案: 曾经尝试过普通的JavaScript … 吗?

  • 本文向大家介绍块级元素不能包含其他块级元素有那些?相关面试题,主要包含被问及块级元素不能包含其他块级元素有那些?时的应答技巧和注意事项,需要的朋友参考一下 嵌套规则: 块级元素可以包含内联元素或某些块级元素,但内联元素不能包含块级元素,它只能包含其它内联元素。 块级元素不能放在p里面。 有几个特殊的块级元素只能包含内联元素,不能包含块级元素。如h1,h2,h3,h4,h5,h6,p,dt li内可