簡體   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