1

是否有一个 HTML 元素,或者一个元素,当与正确的 CSS 样式属性结合使用时,除了可以用作其他元素的容器之外没有占用空间?

它几乎就像页面标记上的“标记”,实际的 HTML 应该由 jQuery 放置。

它可能是什么样子的示例:

<span id='the_view_container' style='display:dont-do-anything'></span>

我问的原因是因为我正在使用 Backbonejs,当我必须向屏幕添加视图时,我发现我要么必须指定在创建视图时应该将视图挂钩的元素,这有其缺点:

theView = new TheView({
    el:    $('#the-view-container')
});

或者我必须在现有元素中插入视图,通常是 div。这给模板带来了困难:

theView = new TheView({});
$('#the-view-container').html(theView.el);
$('#the-view-container').addClass('theViewClass');  // <-- Shouldn't have to do this

任何输入表示赞赏,非常感谢!

4

3 回答 3

1

未附加到文档流的 DOM 元素应该可以解决问题。尝试div例如:

var detachedDiv = $('<div/>');

theView = new TheView({
    el:    detachedDiv
});

然后,当您希望附加视图时,您可以将其附加到<body>例如:

$('body').append(detachedDiv);
于 2012-08-02T02:32:08.687 回答
1

你最好动态创建一个元素。

但是,您可以像这样创建一个“无”元素:

<div id="nothing" style="display: none; visibility: hidden; width: 0; height: 0; line-height: 0"></div>

然后style在需要时设置:

$('#nothing').css('');
于 2012-08-02T02:42:59.733 回答
1

(假设您的 CSS 没有异常重置,)只需使用<div>带有 ID 的空。

<div id="backboneJScontent"></div>

由于默认情况下 div 的高度为 0,因此在给定高度、边框、边距、轮廓或填充之前,它们不会在文档流中呈现任何空间。(默认情况下他们没有这些)

然后,当您需要向其中插入内容时,您可以直接将其插入到该 div 中,只需使用 ID 选择它即可。

$("#backboneJScontent");
于 2012-08-02T03:03:33.193 回答