没有封装外形的HTML元素,但可以是另一个元素的容器

没有封装外形的HTML元素,但可以是另一个元素的容器,html,css,backbone.js,templating,backbone-views,Html,Css,Backbone.js,Templating,Backbone Views,是否存在HTML元素,或者当与正确的CSS样式属性组合时,除了可以用作其他元素的容器之外,没有任何封装外形的元素 这几乎就像页面标记上的一个“标记”,jQuery应该将实际的HTML放在其中 它可能看起来像什么的示例: <span id='the_view_container' style='display:dont-do-anything'></span> 或者我必须将视图插入现有元素(通常是div)中。这会给模板制作带来困难: theView = new TheVi

是否存在HTML元素,或者当与正确的CSS样式属性组合时,除了可以用作其他元素的容器之外,没有任何封装外形的元素

这几乎就像页面标记上的一个“标记”,jQuery应该将实际的HTML放在其中

它可能看起来像什么的示例:

<span id='the_view_container' style='display:dont-do-anything'></span>
或者我必须将视图插入现有元素(通常是div)中。这会给模板制作带来困难:

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

$(“#视图容器”).addClass('theViewClass');// 没有附加到文档流的DOM元素应该可以做到这一点。 尝试
div
,例如:

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

theView = new TheView({
    el:    detachedDiv
});
$('body').append(detachedDiv);

最好是动态创建一个元素

但是,您可以创建如下“nothing”元素:

<div id="nothing" style="display: none; visibility: hidden; width: 0; height: 0; line-height: 0"></div>
(假设您的CSS没有异常重置,)只需使用一个带有ID的空

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

因此,如果我正确理解您的要求,您希望HTML元素在充满内容之前保持大小不变(并且对页面呈现没有影响),并且可以通过CSS样式选择器进行选择?@Nightfirecat-是的,它只是指向页面上应放置其内部内容的位置。如果元素的开始标记和结束标记被注释掉,页面看起来会完全相同。@ChrisDutrow然后使用具有
display:none
visibility:hidden
的元素将是您的目标。@mariusn-这不会在添加div时也隐藏div的内容吗?@ChrisDutrow True,但是,当用户看到它们时(不是在生成内容时),您不想控制您的问题吗?问题在于视图的模板不能包含所有必要的CSS。程序逻辑必须包括顶级类。为什么不呢?你能包含一个样式表并通过
类应用CSS吗?当一个div被赋予内容时,它就被赋予了空间,因此在DOM流中向一个空div添加内容会给它带来大小(除非样式设置为
display:none
|
jQuery.hide()
),询问者只需要它在被内容填满之前保持大小不变,这是默认行为。
$('#nothing').css('');
<div id="backboneJScontent"></div>
$("#backboneJScontent");