Div忽略html标签

时间:2013-08-14 04:19:40

标签: html

我希望我的div中只有一个忽略所有包含html标签的内容,例如<br/><p><b>。这怎么可能?谢谢!

5 个答案:

答案 0 :(得分:7)

如果您要忽略的HTML标记当前是静态文本,请执行查找和替换(按此顺序):

Find     Replace
-----------------
&        &amp;
<        &lt;

如果您要忽略的HTML标记是使用PHP输出的,请在输出中使用htmlspecialchars()并使用UTF-8对您的页面进行编码。

echo htmlspecialchars($stringThatContainsHTML, ENT_COMPAT | ENT_HTML5, 'UTF-8');

答案 1 :(得分:1)

检查您的问题,看看Stackoverflow是如何做到的。

您会看到<br/><p><b>位于code元素中。

答案 2 :(得分:0)

你不能用HTML做这些事情。您可以使用JavaScript修改文档树,用内容替换元素节点或操作innerHTML属性。当然,搜索引擎和朋友仍会“看到”您使浏览器忽略的标签。

或者,您可以使用CSS来消除标记对渲染的影响,但这只会影响演示(当启用CSS时),而不影响浏览器可能对某些元素具有的任何功能。对于不同的元素,它需要有所不同。对于问题中提到的标记,假设您的div元素具有class=ignoreTags,为了明确,以下内容将取消对视觉呈现的任何正常影响:

<style>
.ignoreTags br { display: none; }
.ignoreTags p  { display: inline; margin: 0; }
.ignoreTags b  { font-weight: normal; }
</style>

答案 3 :(得分:0)

发现一些可能有效的黑客手段

<input value='<a href="https://www.stackoverflow.com">stack</a><br> <b>My</b> text' />
  • 根据需要设计输入大小

答案 4 :(得分:-1)

对您的html实体进行编码:

< … &lt;
> … &gt;
& … &amp;
" … &quot;
(' … &apos; xml, not html. see comments)

您可能还想使用

<pre><code>
    here comes your preformatted and escaped &lt;html&gt;-code
</code></pre>

让代码等宽并保留空格