我需要在页面中看不到的东西,没有任何边框的东西以及根本不影响页面渲染的东西。
我需要这个用于大量隐藏或显示内部内容,例如document.getElementById("asd").innerHTML = "blah bla blah and some buttons and etc";
我希望它的标签边框不会显示在页面上或完全改变渲染。
例如,我希望渲染结果与:
相同<div>
asd
<input type = "button" value = "dsa" />
<table>
<tr>
<td>zxc</td>
</tr>
</table>
qwe
</div>
和
<div>
asd
<something id = "asd">
<input type = "button" value = "dsa" />
<table>
<tr>
<td>zxc</td>
</tr>
</table>
</something>
qwe
</div>
div很糟糕,因为它有一个边框并从html页面中的新行渲染。
<html>
<head>
<title>asd</title>
</head>
<body>
asd<div id = "test_div" style = "display: none;">dsa</div>
</body>
</html>
dsa 也变得不可见了
答案 0 :(得分:1)
查看<data>
或<span>
代码
编辑:
或者,虽然它不会构成有效的html,但您可以使用自己的标记,例如<my group>
,您可以使用这些标记对元素进行分组,而无需浏览器自动格式化。
答案 1 :(得分:1)
我对这个问题的解释:你想在body
元素中使用一个HTML元素,这样它就可以包含各种元素,包括像表这样的块元素,这样页面就会被渲染,就像元素的开始和结束标记不存在。也就是说,好像元素被其内容所取代。特别是,它不应该导致任何换行。
HTML中没有这样的元素。最接近的是ins
和del
。它们可能足够接近,因为它们对渲染的唯一默认效果是文本内容分别被加下划线或过度攻击(浏览器对块元素内的文本实现不一致),并且这些效果很容易被取消,通常的CSS警告:< / p>
ins, del { text-decoration: none; }
这有效(并且是有效的HTML)的原因是这些元素具有“透明内容模型”。例如,ins
element可以包含在元素出现的上下文中允许的任何内容。
使用这些元素是否合乎逻辑是有争议的,但事实上,ins
(对于插入的内容)甚至可能被认为是合乎逻辑的,这取决于你正在做什么。
请注意,某些用户代理或辅助软件可能(至少将来)以反映其定义含义的方式实现这些元素。例如,语音浏览器可能会在ins
元素之前和之后说出“插入文本”和“插入文本的结尾”。
在某种程度上,a
元素(没有任何属性)可以在很大程度上以相同的方式使用(它也在浏览器实践和HTML5 CR中具有透明内容模型),但它有一些限制,使这种方法有问题。特别是,根据语法规则,a
元素不得包含其他a
元素或其他“交互式内容”,例如input
。