繁体   English   中英

HTML输出不是我期望的

[英]HTML output is not what I expect it to be

我在使用PHP时遇到了一些麻烦。 这是我想要的html:

<p><h1>name</h1>surname</p>

其中名称和姓氏是php中的变量

我得到的是:

<p></p> <h1>name</h1> "surname" <p></p>

这是我的PHP代码:

echo "<p> <h1>{$rowsList['Name']}</h1> {$rowsList['Surname']} </p>";

语义学

基本语义:

  • <h1>标签用于标题
  • <p>标记用于段落

您不能在段落中包含标题

它在语义上无效,也没有意义。 相反,您需要考虑删除周围的<p>标签。

从其他来源:

堆栈溢出

无法将heading元素放置在HTML标记的p元素内,不仅是形式上的,而且因为浏览器在遇到标题时会隐式终止一个打开的p元素。 因此,这个问题是没有意义的:在特定上下文中不存在的元素在该上下文中不能具有任何意义(语义)。

除了使用p将文本和标题分组在一起之外,您还可以使用div元素,或者(通常要注意)使用HTML5新颖性(例如sectionarticle

W3C

根据标准,段落不应包含其他块元素(包括段落和标题)。 如其他答案所示,要将标题与段落分组,可以使用div标签。

您也可以在w3c的网站上找到有关此主题的很多信息: http : //www.w3.org/TR/html401/struct/global.html#block-inline

将PHP代码更改为:

echo "<h1>{$rowsList['Name']}</h1> <p>{$rowsList['Surname']} </p>";

参考文献:

这不是PHP的问题。 这是基本的HTML。

根据文档<p>标记可能包含短语内容。

短语内容定义为:

由与普通字符数据混合的短语元素组成。

短语元素是:

a,em,强,小,标记,abbr,dfn,i,b,s,u,代码,var,samp,kbd,sup,sub,q,引用,跨度,bdo,bdi,br,wbr,ins, del,img,嵌入,对象,iframe,地图,区域,脚本,noscript,红宝石,视频,音频,输入,textarea,选择,按钮,标签,输出,数据列表,keygen,进度,命令,画布,时间,仪表

注意<h1>不在其中。

所有这些说明文档明确暗示(???) <p><h1>...</h1></p>无效,浏览器将对其进行更正。 特别要注意的是,如果右键单击并选择“查看源代码”(或“查看原始源代码”),那么您将在编写HTML代码时看到您的HTML-只有在DOM检查器中,您才能看到“更正”的版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM