【问题标题】:Is there any logical container tag in HTMl that I can use for grouping?HTMl 中是否有任何可用于分组的逻辑容器标签?
【发布时间】:2014-01-13 08:39:42
【问题描述】:

我需要一些在页面中不可见的东西、没有任何边框的东西以及根本不影响页面呈现的东西。 我需要这个来大量隐藏或显示里面的东西,比如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也变得不可见

【问题讨论】:

  • &lt;div&gt; 默认情况下,在我所知道的任何浏览器中都没有 border(您是在谈论 margin 还是 padding?)。如果你想要一个内联元素,你可以使用&lt;span&gt;。我还建议您使用 CSS 以您想要的方式设计样式。
  • 查看&lt;data&gt; 标签。
  • 我的意思是逻辑边界,但不是可见边界。 div 有边框,不管它是否可见。
  • 他们在 CSS 上是对的。添加display:none; 和任何不可见的标签,满足您的要求。
  • display:none; 确实使所有包含的东西也变得不可见,这是我不希望发生的。

标签: html containers


【解决方案1】:

我对问题的解释:你想在body元素内使用一个HTML元素,这样它就可以包含各种元素,包括像表格这样的块元素,这样页面就好像元素的开始一样呈现和结束标签不存在。也就是说,就好像元素被它的内容替换了一样。特别是,它不应导致任何换行。

HTML 中没有这样的元素。最接近的是insdel。它们可能已经足够接近了,因为它们对渲染的唯一默认效果是文本内容分别带有下划线或过度强调(浏览器对块元素内的文本不一致地实现了这一点),并且这些效果很容易被取消,使用通常的 CSS 警告:

ins, del { text-decoration: none; }

之所以有效(并且是有效的 HTML)是因为这些元素具有“透明内容模型”。例如,ins element 可能包含在元素出现的上下文中允许的任何内容。

使用这些元素是否合乎逻辑值得商榷,但事实上,ins(用于插入的内容)甚至可能被认为是合乎逻辑的,这取决于你在做什么。

请注意,某些用户代理或辅助软件可能(至少在将来)以反映其定义含义的方式实现这些元素。例如,语音浏览器可能会在 ins 元素之前和之后说出“插入文本”和“插入文本结尾”。

在某种程度上,a 元素(没有任何属性)可以以大致相同的方式使用(它在浏览器实践和 HTML5 CR 中也具有透明内容模型),但它有一些限制接近有问题。特别是,根据语法规则,a 元素不得包含另一个 a 元素或其他“交互式内容”,例如 input

【讨论】:

  • 你确实明白这一点。谢谢。
【解决方案2】:

查看&lt;data&gt;&lt;span&gt; 标签

编辑: 或者,虽然它不会构成有效的 html,但您可以提出自己的标签,例如 &lt;my group&gt;,您可以使用这些标签对元素进行分组,而无需浏览器进行任何自动格式化。

【讨论】:

  • 两者都没有分组的语义,也没有隐藏其内容。
  • OP 似乎认为这很好。 I don't want anything invisible, as I told I need this for grouping purpose, but the container itself should not be visible on the page or affect it's rendering in any way. table bad, div pad, data and span cool.
  • dataspan 元素肯定像下一个元素一样可见。也许问题真的需要一个元素来渲染其内容,但这根本不是它所说的dataspan 都不能包含任意内容(例如,它们不能包含标题)。
  • 嗯嗯?那就不好了。我希望包含任何可以包含在&lt;body&gt; 中的标签。
猜你喜欢
  • 1970-01-01
  • 2012-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 2013-08-08
  • 1970-01-01
  • 2015-04-05
相关资源
最近更新 更多