我在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>";发布于 2014-10-21 10:21:38
语义学
基本语义学:
<h1>标记用于标题。<p>标记用于段落。不能将标题包含在段落中。
它在语义上是无效的,也没有意义。相反,您需要考虑删除周围的<p>标记。
来自其他来源的:
StackOverflow
在HTML中将标题元素放入
p元素是不可能的,这不仅是形式上的,而且是因为浏览器在遇到标题时隐式地终止了打开的p元素。所以这个问题是没有意义的:一个不能存在于特定上下文中的元素在这个上下文中不可能有任何意义(语义)。 与使用p将文本和标题组合在一起不同,您可以使用div元素,或者使用section和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>";参考文献:
发布于 2014-10-21 10:24:44
这并不是PHP的问题。这是基本的HTML。
根据文档,<p>标记可以包含短语内容。
短语内容被定义为:
由与正常字符数据混合的短语元素组成。
短语元素是:
a,em,强,小,标记,abbr,dfn,i,b,s,u,code,var,samp,kbd,sup,sub,q,cite,span,bdo,bdi,br,wbr,ins,del,img,embed,object,iframe,map,area,script,noscript,ruby,视频,音频,输入,文本区域,选择,按钮,标签,输出,数据列表,键盘,进度,命令,画布,时间,
请注意,<h1>不是其中之一。
所有这一切都是为了说明这些文档明确地暗示了(?)该<p><h1>...</h1></p>是无效的,浏览器将纠正它的最佳猜测。应该特别注意的是,如果您右键单击并选择View (或查看原始源代码),那么您将在编写HTML时看到它--只有在DOM检查器中才能看到“更正”版本。
https://stackoverflow.com/questions/26484314
复制相似问题