繁体   English   中英

HTML元素没有足迹,但可以是另一个元素的容器

[英]HTML element with no footprint, but can be a container for another element

是否有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

非常感谢任何投入,非常感谢!

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

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

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

然后,当您想要附加视图时,您会将其附加到<body> ,例如:

$('body').append(detachedDiv);

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

但是,您可以创建一个'nothing'元素,如下所示:

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

然后在需要时设置style

$('#nothing').css('');

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

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

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

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

$("#backboneJScontent");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM