[英]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新颖性(例如section
和article
。
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.