Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 在运行时加载样式表_Html_Asp.net_Css_Stylesheet - Fatal编程技术网

Html 在运行时加载样式表

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。仅仅在网站发布时加载是浪费


是否有一种方法仅在需要时加载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);