第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

設(shè)置 HTML 樣式元素的“type”屬性重置 CSS 規(guī)則

設(shè)置 HTML 樣式元素的“type”屬性重置 CSS 規(guī)則

搖曳的薔薇 2024-01-22 15:12:40
我有以下代碼:const head = document.getElementsByTagName('head')[0];const style = document.createElement('style');const rules = {  '.test': 'width: 150px; height: 100px; border: 1px solid red;',};let sheet;head.appendChild(style);sheet = style.sheet;for (const rule in rules) {  sheet.insertRule(`${rule} {${rules[rule]}}`, 0);}而且效果很好。但是,當(dāng)我在將 HTMLStyleElement 的工作表提取到變量后設(shè)置 HTMLStyleElement 的“type”屬性時(shí),工作表 css 規(guī)則將變?yōu)榭?,并且樣式將不?huì)應(yīng)用于頁(yè)面:head.appendChild(style);sheet = style.sheet;style.type = 'text/css'; // it won't work now!為什么會(huì)發(fā)生這種情況?工作表引用不應(yīng)該分配給變量嗎?JsBin 鏈接:https://jsbin.com/gehahiceza/edit?html, js,console
查看完整描述

2 回答

?
月關(guān)寶盒

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊

好的,這是供參考的,?https://developer.mozilla.org/en-US/docs/Web/HTML/Element/style

typestyle 元素上是屬性而不是屬性。任何 html 元素(如 src)內(nèi)部的內(nèi)容<img src="">都是屬性,而不是 img 元素的屬性。

因此,當(dāng)您嘗試為樣式變量(即樣式元素)的屬性賦值時(shí),js 只會(huì)在樣式變量上創(chuàng)建一個(gè)屬性(類型),然后分配您給它的值。

我實(shí)際上從我的小提琴中觀察到了這種行為,我在sheet.insertRule()調(diào)用之前和之后添加了一個(gè) console.log 語(yǔ)句,以查看 style.sheet 發(fā)生了什么。

我們很清楚,在 .insertRule() 期間,引擎將一個(gè)新的樣式元素返回到 head 元素的子元素中。在這種情況下,它會(huì)過(guò)早返回,而不會(huì)在 for in 循環(huán)中添加樣式。

有趣的是,如果你這樣做style.type2 = 'css/text'或任何你想要的文字。style.sheet (CSSStyleSheet) 的返回將具有在 中添加的樣式rules: ruleList[]。

我希望這至少可以提供一些額外的見(jiàn)解來(lái)解釋為什么樣式在執(zhí)行時(shí)沒(méi)有出現(xiàn)的原因style.type = 'css/text'



查看完整回答
反對(duì) 回復(fù) 2024-01-22
?
30秒到達(dá)戰(zhàn)場(chǎng)

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超6個(gè)贊

在將樣式元素添加到文檔之前設(shè)置 type 屬性。


const head = document.getElementsByTagName('head')[0];

const style = document.createElement('style');

style.setAttribute('type', 'text/css'); //!!!!!!!!!!!

const rules = {

  '.test': 'width: 150px; height: 100px; border: 1px solid red;',

};

let sheet;


head.appendChild(style);


sheet = style.sheet;



for (const rule in rules) {

  sheet.insertRule(`${rule} {${rules[rule]}}`, 0);

}

<!DOCTYPE html>

<html>


<head>

  <meta charset="utf-8">

  <meta name="viewport" content="width=device-width">

  <title>JS Bin</title>

</head>


<body>

  <div class="test">

  </div>

</body>




</html>


查看完整回答
反對(duì) 回復(fù) 2024-01-22
  • 2 回答
  • 0 關(guān)注
  • 160 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)