簡體   English   中英

如何指定不被JS中指定的樣式覆蓋的樣式

[英]How to specify a style not to be overriden by styles specified in JS

我得到了一些樣式由JS動態修改的元素。 但是,我希望其中之一不會被修改。

我怎么能指定它的樣式,它是靜態的,無論如何都不會被覆蓋。 謝謝。

這是行不通的。 在CSS加載並應用后,JavaScript將執行。 您必須更改ID和類和/或JavaScript代碼,以使其不會針對不需要更改的元素。

你不能

您能做的最好的就是覆蓋進行修改的javascript方法。

簡短的答案是你不能。 應用CSS,因為瀏覽器會遇到它。 由於對JavaScript的調用是更改該特定樣式的最新調用,因此它將應用於該元素。

您所要做的就是運行另一個JavaScript,該JavaScript會在第一個腳本之后更改該特定元素的樣式。 由於該元素有一些獨特之處,您可能可以通過其ID,類或名稱來引用它。

如您所見,您無法在CSS中執行此操作; 但是,您可以指示JavaScript不更新元素的樣式,但是需要一些手動注意。 考慮以下:

的HTML

<ul id="some-list">
    <li>A</li>
    <li>B</li>
    <li class="no-style-update">C</li>
    <li>D</li>
</ul>

JavaScript(香草)

var nodes = document.getElementById("some-list").getElementsByTagName("LI");

for ( var i=0, l=nodes.length; i<l; ++i ) {
    // If style updates are allowed
    if ( !nodes[i].className.match(/\bno-style-update\b/i) ) {
        // Update the element's style
    }
}

也許您可以將元素放入iframe中,其中src屬性引用的是其他路徑或域。 然后,容器頁面中的javascript無法修改該元素,因為相同的原產地規則不允許修改來自不同原產地的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM