欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

如何在n-child中正確傳遞一個(gè)CSS變量?

目標(biāo):成功地將一個(gè)變量作為參數(shù)傳遞給n-child。在下面的例子中,第三行應(yīng)該變成綠色。

問(wèn)題:目前該參數(shù)作為變量被忽略。

問(wèn):這可能嗎?如果是,我要改變什么?

示例代碼:

:root {
  --n: 3;
}
div p:nth-child(var(--n)) {
  background: green;
  padding: 10px;
}

<div>
  <p>a</p>
  <p>b</p>
  <p>c</p>
</div>

唯一可以使用CSS自定義屬性(不是& quot變量& quot!)在聲明中,位于:。這也意味著,不幸的是,您不能在選擇器或媒體查詢中使用這些自定義屬性。

這也是人們不應(yīng)該再稱它們?yōu)镃SS & quot變量& quot。

但是,您可以使用Javascript操作樣式:

const dynamicStyles = document.getElementById('dynamicStyles');

const n = getComputedStyle(document.documentElement).getPropertyValue('--n');

dynamicStyles.textContent = `
div p:nth-child(${n}) {
  background: green;
  padding: 10px;
}
`;

:root {
  --n: 3;
}

<style id="dynamicStyles"></style>
<div>
  <p>a</p>
  <p>b</p>
  <p>c</p>
</div>

使用純CSS無(wú)法做到這一點(diǎn),但是可以嘗試編寫(xiě)一個(gè)JS函數(shù)來(lái)實(shí)現(xiàn)。

該功能:

getComputedStyle(document.documentElement)
    .getPropertyValue('--n');

將獲得您在:root{}中描述的“3”

現(xiàn)在,因?yàn)槟悴荒馨裫s放在你的css中,你必須在你的HTML文件中做所有這些。所以你的工作就是用html風(fēng)格的標(biāo)簽來(lái)包裝你用這個(gè)函數(shù)得到的變量:

<script>
  document.getElementById('custom-container'); //Select the div container

  node.innerHTML('<style> #custom-container p:nth-child('); //Wrap style around the variable

  getComputedStyle(document.documentElement)
    .getPropertyValue('--n'); //get your variable, in this case '3'

  node.innerHTML('){background: green;padding: 10px;}</style>'); // Close the wrapping and define the style
</script>

<div id="custom-container"> <!-- Mark your div container with and ID -->
  <p>a</p>
  <p>b</p>
  <p>c</p>
</div>