我在使用php时遇到了一些麻烦。 这是我想要的HTML:
<p><h1>name</h1>surname</p>
其中name和surname是php中的变量
我得到的是:
<p></p> <h1>name</h1> "surname" <p></p>
这是我的PHP代码:
echo "<p> <h1>{$rowsList['Name']}</h1> {$rowsList['Surname']} </p>";
答案 0 :(得分:1)
基本语义:
<h1>
标记用于标题。<p>
标记用于段落。您不能在段落中包含标题。
它在语义上没有效果,没有意义。相反,您需要考虑删除周围的<p>
标记。
来自其他来源:
的StackOverflow
将标题元素放在HTML标记中的
p
元素中是不可能的,不仅仅是正式的,而是因为浏览器在遇到标题时会隐式终止打开的p
元素。所以问题毫无意义:在某个上下文中不存在的元素在该上下文中不具有任何含义(语义)。除了使用
p
将文字和标题组合在一起外,您还可以使用div
元素,或者使用常见警告,使用HTMLsection
和article
这样的HTML5新奇事物。
W3C
根据标准,段落不应包含其他块元素(包括段落和标题)。如其他答案所示,要使用段落对标题进行分组,您可以使用div标记。
您也可以在w3c的网站上找到关于此主题的大量信息:http://www.w3.org/TR/html401/struct/global.html#block-inline
将PHP代码更改为:
echo "<h1>{$rowsList['Name']}</h1> <p>{$rowsList['Surname']} </p>";
答案 1 :(得分:1)
这不是PHP的问题。这是基本的HTML。
根据documentation,<p>
标记可能包含短语内容。
Phrasing Content定义为:
由与正常字符数据混合的短语元素组成。
a,em,strong,small,mark,abbr,dfn,i,b,s,u,code,var,samp,kbd,sup,sub,q,cite,span,bdo,bdi,br,wbr ,ins,del,img,嵌入,对象,iframe,地图,区,脚本,noscript,红宝石,视频,音频,输入,textarea,选择,按钮,标签,输出,datalist,keygen,进展,命令,画布,时间,米
请注意<h1>
不在其中。
所有这些都表明文档明确暗示(???)<p><h1>...</h1></p>
无效,浏览器会将其更正为最佳猜测。特别要注意的是,如果您右键单击并选择查看源(或查看原始源),那么您在编写HTML时会看到您的HTML - 它只能在DOM检查器中显示您的#39 ;看到&#34;纠正&#34;版本