问题描述
|
标题几乎说明了我要做什么,但是要详细说明一下,我想为未启用JavaScript的用户将一些CSS应用于名为
prochart-colitem
的类。
原因?我使用百分比为等于100%的列宽,然后使用javascript从每个div中减去2个像素(也添加了边框)。
如果没有启用JavaScript,则列+边界等于父div的100%以上,我需要从一个类中减去几个像素,以使其适合no-js用户的父div。
有任何简单的方法吗?我在里面尝试了<noscript>
和<style>
,没有运气。
解决方法
一种解决方法是始终将CSS类添加到希望具有特定样式的元素上,然后在加载后运行一些JavaScript以从具有该类的元素中删除这些类。
作为一个示例(为了简单起见,我在这里使用jQuery,但是显然可以在没有JS库的情况下完成此操作):
$(document).ready(function()
{
$(\".nonJsClass\").each(function()
{
$(this).removeClass(\"nonJsClass\");
}
}
\'nonJsClass \'具有CSS规则的地方,现在仅在用户未启用JS的情况下才适用。
, 您可以将一个类添加到body标签,当未启用JS时会触发所需的CSS,然后在body标签之后,立即用JS将其删除。
因此,具有JS支持的用户将看不到特殊类的效果。
, 在HTML5之前不可能在noscript标记中包含样式表,但是现在可以了(只要您在文档的\“ head \”中完成)。
http://adapt.960.gs/
如果有意禁用或无法使用JavaScript,则可以通过来提供样式表默认设置,这对于HTML5来说是完全有效的。
, scunliffe的回答很好。另一种方法是编写CSS样式,该样式仅在启用JavaScript时显示,并且仅使用类链接定位到所需的div:
.prochart-colitem.js-enabled {
/* your JS-specific styles */
}
然后,您可以使用jQuery,例如,添加该附加类:
$(document).ready(function() {
$(\'.prochart-colitem\').addClass(\'js-enabled\');
});