使用JavaScript/jQuery永久覆盖CSS

使用JavaScript/jQuery永久覆盖CSS,javascript,jquery,css,Javascript,Jquery,Css,是否可以使用JavaScript/jQuery永久覆盖CSS文件? 我只想覆盖一两行 假设我有这个CSS文件: div#box { width:100px; height:100px; } 然后,如果我应用这种JavaScript: var sheet = document.createElement('style') sheet.innerHTML = "div#box {width:200px;}"; document.body.appendChild(sheet); 只要调用JavaS

是否可以使用JavaScript/jQuery永久覆盖CSS文件? 我只想覆盖一两行

假设我有这个CSS文件:

div#box { width:100px; height:100px; }
然后,如果我应用这种JavaScript:

var sheet = document.createElement('style')
sheet.innerHTML = "div#box {width:200px;}";
document.body.appendChild(sheet);
只要调用JavaScript,div的大小就会调整(由JavaScript动态更改)

我想CSS文件会像这样被覆盖

div#box {width:100px; height:100px; }
div#box {width:200px; } //CSS added
或者更准确地说

div#box {width:200px; height:100px; } //CSS overwritten
我该怎么办


Thx:D

使用类似PHP的东西。否则,您可以使用修改css

试试下面

$(document).ready (function() {

$('div#box').css( {"border": "1px solid #7F9DB9", "width": "200px", "height": "22px"} );

});

请进行必要的更改。

JS无法单独完成此操作,您需要使用服务器端语言,如PHP,如果您愿意,我可以用PHP为您制作一种


如果您想在每页的基础上进行此操作,可以使用具有contenteditable属性的样式标记,请参见:

详细说明所说的内容(mmmshuddup和calchen是正确的):

Javascript在客户端更改文件,直到文档关闭。脚本所做的更改完全是临时的

然而,从技术上讲,javascript可以使用ajax访问服务器上挂起的perl/ruby/php/python/任何脚本,该脚本将接受参数(类是什么,它将添加到哪个元素),并将类永久应用于文档,或者编辑样式文档

另一个解决方案是创建和添加类,然后将这些类保存为用户的首选项;您将创建一个函数,该函数查看需要在加载页面时添加的元素id及其类的关联数组。如果你有用户的话,我想你会使用cookies或者最好是数据库。我只是在说假想

我很确定服务器端编辑的想法是你最好的选择。使用正则表达式定位id并用新样式替换它们可能是非常安全的


编辑:考虑到这一点,我意识到如果你想替换涉及大量选择器的样式,你的样式查找和替换功能必须非常复杂。也许有一个更优雅的解决方案,但我没有想到。我认为这最终将是一个严重的头痛问题。

CSS不能仅使用jQuery/JavaScript永久覆盖。

JavaScript是客户端脚本语言,文件位于服务器上,仅更改样式表(CSS文件)不是一个选项?实际上,我想创建动态调整大小的div,并通过覆盖cssIt来存储它,这实际上取决于对CSS文件进行此类更改的频率。如果他希望在每次页面编辑或其他更改时都对文件本身进行更改(谁知道呢),那么实际上可能值得为此编写服务器端脚本。否则,javascript是最好的解决方案(我想除了手动更改CSS文件之外)。同时,如果他使用PHP覆盖CSS文件,那么接下来要考虑的是,用户什么时候可以查看这些更改?如果文件已经缓存,那么他必须设置适当的响应头(如缓存控制等),以确保用户立即看到CSS文件的新版本。是的,我当然不主张做我所描述的事情。考虑到在不担心你提到的问题的情况下让它工作起来会有麻烦,这似乎难以置信地不切实际,我不明白为什么有必要这样做。我只是想我能为实现这一目标指明一些方向。我肯定以前从未见过有人这样做。我认为您使用服务器端脚本的两个想法都是可行的。在width/height的情况下,可能会使用jqueryui resizeable直接查看临时更改,同时通过调用php函数覆盖css来存储永久更改。我试试看。thx:)
$(document).ready (function() {

$('div#box').css( {"border": "1px solid #7F9DB9", "width": "200px", "height": "22px"} );

});