将块级<span>元素放在<p>元素中

Tam*_*ser 1 html inline block paragraph

我知道这<p>是专门用于内联元素.但是,如果将内联元素更改<span>为块级元素{ display:block }并将其包含在一个块中,该<p>怎么办?

即.

<html>
<head>
<style>

  p {
    background: red;
    height: 100px;
    width: 100px;
    }

  p span {
    display: block;
    background: blue;
    height: 50px;
    width: 50px;
    }

</style>
</head>

<body>

<p>
  <span>I am a pizza</span>
</p>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

这个词的每个意义上都是错的吗?我知道这不常见(即大多数人会质疑为什么我不只是使用div),但这是一个假设的情况.它通过了验证测试,但它是不是很糟糕/糟糕的做法?如果你阅读那段代码,你会嗤之以鼻吗?

Juk*_*ela 8

span元件总是在HTML文本/内嵌/短语元件,以及限制HTML语法规则p元素含量以这种元件仅涉及HTML.因此,它们不受CSS设置的影响,CSS设置可能成为CSS(渲染)意义上span的块元素.

在CSS中,display无论元素是什么,您都可以为属性分配任何已定义的值.CSS不知道HTML或其他标记语言规范中定义的元素的含义.

因此,没有正式的反对意见.

无论是好的风格,还是其他方面都可以接受,都比较复杂.在规范中似乎没有任何关于此的陈述,但可以合理地说,您不应该徒劳地更改基本渲染功能元素.例如,在正常情况下,当使用更合理的方法时,您不应该使用span然后display: block在CSS中说div.这个原则的一个原因是它可以在非CSS渲染情况下或在未应用全部或部分样式表时使文档保持更好的形状.

另一方面,如果您有一个文本段落并且希望将其内容的一部分呈现为块,例如作为居中或缩进的行,可能具有延伸通过可用宽度的背景颜色,则不会display 徒劳地改变.你不能div在里面使用p,所以没有更自然的标记.

由于该示例不是真实示例,因此无法确定在您的案例中部署此方法是否可行.


mde*_*dev -4

它是 HTML5 有效的,并且在某些情况下还不错,例如

<p>
   This is some text <span class="highlight">I am a pizza</span> and this is some more text...
</p>

.highlight {
  background: yellow;
}
Run Code Online (Sandbox Code Playgroud)

  • 答案没有解决所提出的问题。 (7认同)