Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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
在<;之后包含CSS的正确方法;头>;_Css_Html_W3c - Fatal编程技术网

在<;之后包含CSS的正确方法;头>;

在<;之后包含CSS的正确方法;头>;,css,html,w3c,Css,Html,W3c,显然,添加只允许HTML5使用scoped属性,但请确保正确声明DOCTYPE <style type="text/css" scoped> .textbox { color: pink } </style> .文本框{ 颜色:粉红色 } 解决该问题的一种方法是加载带有and的CSS,仅在需要时才将其附加到head标记: JQUERY var css = "foobar.css"; var callback = function() { alert("CSS is

显然,添加
只允许HTML5使用scoped属性,但请确保正确声明DOCTYPE

<style type="text/css" scoped>
.textbox {
color: pink
}
</style>

.文本框{
颜色:粉红色
}

解决该问题的一种方法是加载带有and的
CSS
,仅在需要时才将其附加到head标记:

JQUERY

var css = "foobar.css";
var callback = function() {
  alert("CSS is now included");
  // your jquery plugin for a navigation menu or what ever...
};

$.get(css, function(data){
  $("<style type=\"text/css\">" + data + "</style>").appendTo(document.head);
  callback();
});
var css=“foobar.css”;
var callback=function(){
警报(“现在包括CSS”);
//你的jquery插件用于导航菜单或其他任何东西。。。
};
$.get(css,函数(数据){
$(“”+数据+“”)。appendTo(document.head);
回调();
});

callback
函数可用于允许依赖于
CSS
文件的
script
代码正确格式化,仅在添加
CSS
后运行

如果您只想在特定事件中包含CSS样式,那么没有什么可以阻止您这么做:

var linkElement = document.createElement("link");
linkElement.rel = "stylesheet";
linkElement.href = "path/to/file.css"; //Replace here

document.head.appendChild(linkElement);

这还有一个额外的好处,就是以异步方式添加样式表,这不会阻止浏览器下载任何其他内容。

我认为,一旦开始做服务器端编程或DHTML之类的事情,大多数人都会忽略这一标准

对于静态HTML文件,您肯定可以/应该遵循只在HEAD标记中包含CSS的规则,但对于条件输出和交互性,有时也可以简化事情,使其具有条件样式。考虑到最后,这会卷积得到的文档。即使浏览器可以很好地呈现它,但如果您自己查看源代码,那么如果定义布局/显示的所有样式都在头部中,那么就很容易阅读了。当然,还有很多其他的例子和原因来解释为什么这是一种不好的做法


HTML标准与服务器端脚本和DHTML等不同,也就是说,它不是HTML/SSS/JavaScript标准。

如果您谈论的是外部css表,那么正确的方法如下:

<link href="....link to your style...." rel="stylesheet">
<style>
 ....Your style here...
</style>

如果您希望包含内联css,则只需执行以下操作:

<link href="....link to your style...." rel="stylesheet">
<style>
 ....Your style here...
</style>

……你的风格。。。

您为什么要这样做?奇怪的是,在一些罕见的情况下,在后面加入样式是很有用的。在我的例子中,我有一个很好的调试函数,它输出一些CSS样式的信息。我可以随时调用这个函数,也可以不调用。但是如果没有使用CSS,我不想包含它。只要你知道它在某些情况下可能会被使用,那么包含不总是被使用的CSS是没有坏处的。如果只是为了调试,你可以将CSS直接嵌入HTML中的样式属性中。你的意思是,如果我把
作用域
放在那里,我可以在任何地方使用它?这太棒了:目前还没有浏览器支持此功能。浏览器只需忽略
scoped
属性,并将样式表解释为文档的全局样式。主体内部的
样式
元素实际上工作得很好,它在HTML规范中刚刚被宣布无效。@JukkaK.Korpela:如果我用铁锹把钉子钉在墙上,它可能也会工作。这并不意味着一切都好。由于无效,它只能工作,因为浏览器非常努力地使其正确。不要让它起作用。@事实上,你的评论对答案没有任何补充。无效是一件正式的事情,并在一股DTD中消失。@JukkaK.Korpela:不,无效不是一件正式的事情。它对浏览器解释HTML代码的方式有很大的影响。虽然在这种情况下,它可能是无害的,但在不太幸运的情况下,你会得到意想不到的行为。尽可能避免无效的HTML。这是正确的!但是当需要动态加载到头部以使文档正确响应时,如何加载
css
文件?多年来,程序员一直在用普通的老式javascript来实现这一点因为我的项目是基于PHP的,所以在任何东西进入浏览器之前,我通过服务器端脚本解决了这个问题,但是在这种情况下…请参阅我的答案。这可以通过简单的JavaScript轻松完成。我得到的代码比你的短。@Truth:而且,你这里有一个巨大的XSS漏洞。如果数据(例如)设置为
@BoltClock:这是我在达到15K:D后的测试保护