我有一個在別處生成的列表,我無法更改。 縮進級別通過& nbsp;,但是每個縮進的字體大小是相同的,我想根據縮進級別改變字體大小。 因此,我需要複製一個css規則並更改新的id和字體大小。僅使用JavaScript複製CSS規則
下面是HTM生成的代碼,這是我無法改變:
<style type="text/css">
span.text12Font1 {
font-size:14px;
font-family:"Arial", sans-serif;
color:#010101;
font-weight:normal;
font-style:normal;
text-decoration:normal;
}
</style>
<div id="text12">
</a>
<ul style="margin-left:4px;text-align:left;" >
<li>
<span class="text12Font1">Emphasize the beginning of the bullet point</span>
</li>
<li>
<span class="text12Font1"> </span >
<span class="text12Font1">As in this list, when the first few words capture the main idea</span >
</li>
<li>
<span class="text12Font1"> That way, readers can skim easily</span>
</li>
</ul>
</div>
我可以得到每一個點,我可以找到所有在每個點的類名。 我需要的是能夠複製一個CSS類,給它一個新的ID,只是改變字體大小。
我見到目前爲止以下內容:
function getNewClassName(className, newName, fSize){
var spanID = 'span.' + className;
//e.g.: span.text12Font1
for(var i=0; i<document.styleSheets.length; i++){
var sheet = document.styleSheets[i];
var cssText = sheet.ownerNode.innerText;
var posn = cssText.indexOf(spanID);
if(posn!=-1){
var oSheet = document.styleSheets[i];
var oRules = oSheet.cssRules ? oSheet.cssRules : oSheet.rules;
for(var r=0; r<oRules.length; r++){
if(oRules[r].cssText.indexOf(spanID)!=-1){
// Here I have the rule that I want to duplicate, change it's name to newName and change the font-size.
// I must not change the existing rule and it must remain as it could be used elsewhere
return true;
}
}
}
}
return false;
}
屏幕閱讀器無法捕獲由此類手段表達的層次結構。嵌套列表應在需要層次結構的地方使用。 – RobG
爲什麼你需要複製CSS類?爲什麼不使用相同的CSS類,只是覆蓋字體大小? –
是否確定無法修改生成代碼的代碼......因爲這將會100%簡化 – Seabizkit