Html 在运行时加载样式表
我有特定的主题css,只有在弹出窗口启动时才需要,其他地方我都不使用那个css。仅仅在网站发布时加载是浪费Html 在运行时加载样式表,html,asp.net,css,stylesheet,Html,Asp.net,Css,Stylesheet,我有特定的主题css,只有在弹出窗口启动时才需要,其他地方我都不使用那个css。仅仅在网站发布时加载是浪费 是否有一种方法仅在需要时加载css,即在打开弹出窗口时,我可以加载样式表?您可能希望尝试这种方法(下面的代码) 但是它确实给网站添加了大量的填充物,也许CSS占用的空间更少了 var $ = document; // shortcut var cssId = 'myCss'; // you could encode the css path itself to generate id..
是否有一种方法仅在需要时加载css,即在打开弹出窗口时,我可以加载样式表?您可能希望尝试这种方法(下面的代码) 但是它确实给网站添加了大量的填充物,也许CSS占用的空间更少了
var $ = document; // shortcut
var cssId = 'myCss'; // you could encode the css path itself to generate id..
if (!$.getElementById(cssId))
{
var head = $.getElementsByTagName('head')[0];
var link = $.createElement('link');
link.id = cssId;
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'http://website.com/css/stylesheet.css';
link.media = 'all';
head.appendChild(link);
}
使用以下命令将其添加到代码隐藏中 或
Literal cssFile=new Literal()
{Text=@”“};
page.Header.Controls.Add(cssFile);
创建这样的新元素
var lnk=document.createElement('link');
lnk.href='path/sheet.css';
lnk.rel='stylesheet';
lnk.type='text/css';
(document.head||document.documentElement).appendChild(lnk);
希望这能有所帮助。您可以通过jQuery的方式来实现:
$('head')。追加(“”)
您可以从弹出窗口(cfr)中显示的aspx页面的codebehind加载它,或者(但不太干净)在aspx中的style
标记中添加CSS。值得注意的是,$变量被许多流行的JS库使用,包括jQuery,因此,如果您正在使用其中任何一个,您可能希望尝试另一个/仅使用文档本身。Alex感谢您的回答,我需要将此代码放在我的网站弹出页面javascript的开头,在这里var cssId='myCss';//您可以对css路径本身进行编码以生成id。。如果你想保证ID的唯一性和/或可记忆性,你可以使用路径作为ID本身,例如将ID设置为website_com_css_stylesheet_css或类似。我想这就是他的意思。但是你不需要这样做:-)嗨,穆拉里,谢谢你的帮助。我想知道yourstyle.css只是css文件名,还是我需要提供相对路径?@LLL,GetWebResourceUrl()
将找到文件名的url。谢谢您的帮助,这里的“链接”是什么意思?。如果我有两个样式表,那么我需要用不同的参数重复相同的代码两次,这里,“link”是您想要创建的元素类型。代码将添加。是的,你必须重复两次。您可以将其封装在一个函数中,类似于add_stylesheet('path/sheet.css')。您还可以使用id和change href在运行时更改样式表。希望这有帮助。
Literal cssFile = new Literal()
{Text = @"<link href=""" + page.ResolveUrl("~yourstyle.css") + @"""
type=""text/css"" rel=""stylesheet"" />" };
page.Header.Controls.Add(cssFile);
var lnk=document.createElement('link');
lnk.href='path/sheet.css';
lnk.rel='stylesheet';
lnk.type='text/css';
(document.head||document.documentElement).appendChild(lnk);