0
我爲我的網站構建一個小部件,並在加載時動態添加CSS,但問題與主機網站CSS文件衝突。 下面的代碼是我的小部件已CSS文件安裝在裝載:小部件CSS與網站CSS衝突
function main() {
jQuery(document).ready(function($) {
/******* Load CSS *******/
var css_link = $("<link>", {
rel: "stylesheet",
type: "text/css",
href: "http://example.com/widget/green.css"
});
css_link.appendTo('head');
var txt;
txt='<div id="wrapper">';
txt=txt+'<ul class="tabs">';
txt=txt+'<li id="fixtures_tab"><a href="#fixtures">Hepsi</a></li>';
txt=txt+'<li id="live_tab"><a href="#live">Canlı</a></li>';
txt=txt+'<li id="finished_tab"><a href="#finished">Bitmiş</a></li>';
txt=txt+'<li id="program_tab"><a href="#program">Başlamamış</a></li>';
txt=txt+'<li id="postpond_tab"><a href="#postpond">Ertelenen</a></li>';
txt=txt+'<li id="selected_tab"><a id="f" href="#fav">Oyunlarım (0)</a></li>';
txt=txt+'</ul>';
txt=txt+'<div class="tab-container">';
txt=txt+'<div id="fixtures" class="tab-content"><script type="text/javascript">get_All_Today_Matches();</script></div>';
txt=txt+'<div id="live" class="tab-content"><script type="text/javascript"></script></div>';
txt=txt+'<div id="finished" class="tab-content"><script type="text/javascript"></script></div>';
txt=txt+'<div id="program" class="tab-content"><script type="text/javascript"></script></div>';
txt=txt+'<div id="postpond" class="tab-content"><script type="text/javascript"></script></div>';
txt=txt+'<div id="fav" class="tab-content"><script type="text/javascript"></script></div>';
txt=txt+'</div>';
txt=txt+'</div>';
$('#widget-container').html(txt);
});
}
我想知道有沒有什麼辦法來隔離部件我的CSS?
由主函數被調用的匿名函數(實現隔離)
PS的方式:我用CSS重置,但它仍然同樣的問題。
搜索命名空間。另一種解決方案可能是將你的小部件嵌入到iframe中。 – 2013-04-20 11:07:25
對不起,IFrame不適合我。 – 2013-04-20 11:16:31
您可以做的唯一事情就是查看影響代碼的頁面上的所有樣式,並抵消嵌入式CSS文件中的這些樣式。因此,如果主機頁面顯示字體大小:20像素,但您想要16像素,請在您的CSS中執行此操作,或在主機頁面之後放置!重要標誌。您也可以使用非穩定的Shadow-DOM:http://www.html5rocks.com/en/tutorials/webcomponents/shadowdom-201/ – 2013-04-20 11:38:53