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