我在這里讀到,當 CSS 和 JavaScript 都針對同一個元素時,那么 JavaScript 的更改將在 CSS 上應用。
但是我遇到了不同的行為。
然而,我遇到了一個不同的行為。
在這里,我們有法律案例的名稱。Johnson V United Care.
我想把所有的字都轉換為大寫,除了"V",我想把它轉換為小寫。
這就是我想要的東西。JOHNSON v UNITED CARE.
然而,在下面的代碼中,CSS的uppercase樣式似乎覆寫了Javascript代碼。
我在<head>中提到了CSS檔案,而JS檔案則是在關閉的</body>標簽之前。
我做錯了什么?
注意:在我發布這個問題后,我認為JS代碼只改變了innerHTML,隨后CSS樣式被應用于這個新的HTML。因此,這似乎并不是一個優先問題。但我還是不明白如何在CSS之后應用JS代碼,以獲得正確的結果。
。(function() {
let title = document.querySelector("h1.title> a") 。
let a = title.innerHTML;
let b = a.match(/[v]/i)。
title.innerHTML = a.replace(b, b.toString().toLowerCase() )。
})();
h1.title>a{
text-transform: 大寫。
}
<h1 class="title"_span>> <a href="https: //example. com/case/johnson-v-united-care/">Johnson V United Care< /a></h1>
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
我在這里讀到,當CSS和JavaScript都針對同一個元素時,那么JavaScript的變化就會應用于CSS之上。
那篇文章是非常錯誤的。
行內樣式比規則集更有優先權。這兩種樣式如何被添加到檔案中并不重要。它只是看起來像JS有優先權,因為JS被用來添加行內樣式。
我做錯了什么?
我在做什么?
CSS 更改了內容的呈現方式。
CSS說它應該以大寫字母呈現。
如果是以大寫字母呈現并不重要。
如果在實際內容中,某個特定的字符是小寫的,這并不重要,因為它是在HTML中這樣寫的,或者是通過JS改變成這樣的。
你正在用JS改變內容,然后CSS將該內容以大寫字母呈現。
我將通過撰寫額外的標記和樣式來解決這個問題。
。h1. title>a .name {
text-transform: 大寫。
}
<h1 class="title"> <a href="https: //example. com/case/johnson-v-united-care/"><span class="name"> Johnson</span> v < span class="name"/span>> United Care</a>/span></a>
</h1>/span>
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
uj5u.com熱心網友回復:
實際上,這樣是不可能覆寫CSS屬性的,因為它們不是在同一個屬性上作業。你在CSS中設定了text-transform屬性,而在JS代碼中你只是改變了元素的HTML內容,但沒有覆寫text-transform屬性。這樣一來,優先順序就沒有影響了。 為了解決這個問題,你應該在JS中進行所有的文本轉換,并在CSS中洗掉text-transform屬性。
這里有一個例子:
。const title = document. querySelector('h1.title > a')。
const polifyText = (str, char) =>
弦外之音
.split(' '/span>)
.map(part => (part. includes(char)? part.toLowerCase() : part.toUpperCase()
.join(' '/span>)。
let newTitle = title.textContent;
let char = newTitle.match(/[v]/i) 。
title.textContent = polifyText(newTitle, char);
h1.title > a{
/* 評論這個 */
// text-transform: 大寫字母。
}
<h1 class="title"> <a href="https: //example. com/case/johnson-v-united-care/">Johnson訴United Care</a>
</h1>/span>
<iframe name="sif3" sandbox="allow-forms allow-modals allow-scripts" class="snippet-box-edit snippet-box-result" frameborder="0"></iframe>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/320459.html
標籤:
下一篇:無法在IntelliJ上添加原型
