蛊毒传说
你需要使用 JavaScript 解析 styleSheets,得到 cssRules 中每个 selectorText 和对应的 cssText。下面的例子是解析后放到一个 json 对象中。123456789101112131415<style type="text/css">#foo { background: #f00; width: 200px; height: 200px;}.bar { float: left; clear: both; padding: 20px;}div { border: 10px solid #f00;}</style> 1234567891011<script type="text/javascript">var rules = {};var ss = document.styleSheets;for(var i = 0; i < ss.length; i++) { for(var a = 0; a < ss[i].cssRules.length; a++) { var txt = ss[i].cssRules[a].cssText.match(/{(.*)}$/i), value = txt[1].replace(/^\s+|\s+$/g, ''); rules[ss[i].cssRules[a].selectorText] = value; }}</script>这样就得到一个 json 对象,console.log 输出的话会显示12345rules = { #foo: "width: 200px; height: 200px;", .bar: "float: left; clear: both, padding: 20px;", div: "border: 10px solid rgb(255, 0, 0);"}; 要改变属性值,需要对相应的 cssRule 进行操作,例如1234// 设置 div 的边框为 dotteddocument.styleSheets[0].cssRules[2].style.borderStyle = "dotted";// 设置 div 的边框颜色为 #00fdocument.styleSheets[0].cssRules[2].style.borderColor = "#00f";这种方法可行但还是建议使用写好的专门解析 CSS 的 JavaScript 库,用起来很方便。Google 一下 JSCSSP、CSS Parser、CSSOM、这些都是比较专业和成熟的 CSS 解析器。