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

SCSS:如果檢查了子輸入,則改變元素樣式

我以前從未使用過SCSS,我想知道它是否允許我根據(jù)里面的復(fù)選框是否被選中來設(shè)計(jì)一個(gè)元素的樣式。

例如,我有:

<label>
  <input type="checkbox"/>
</label>

我想先改變label::的內(nèi)容,然后再?zèng)Q定是否選中該框。

SCSS允許這樣的事情嗎?如果是,我該怎么做?

讓我考慮讓SCSS來執(zhí)行這個(gè)的原因是(如果我沒弄錯(cuò)的話)用SASS確實(shí)是可能的。 然而,由于我不熟悉SASS,我寧愿用SCSS做,因?yàn)檗D(zhuǎn)換我的文件顯然是非常容易的。

我對(duì)你的HTML做了一點(diǎn)改動(dòng),但是我覺得真的能幫到你。

Sass代碼:

input[type=checkbox]
  + .checkbox-label
    color: blue
  &:checked + .checkbox-label
    color: red
    &:before
      content: ""
      border: 1px solid #a3adb3

input[type=checkbox]+.checkbox-label {
  color: blue;
}

input[type=checkbox]:checked+.checkbox-label {
  color: red;
}

input[type=checkbox]:checked+.checkbox-label:before {
  content: "";
  border: 1px solid #a3adb3;
}

<input type="checkbox" id="cbox1" value="first_checkbox">
<label for="cbox1" class="checkbox-label">Hello world</label>

不,沒有CSS選擇器允許根據(jù)子元素的狀態(tài)來設(shè)計(jì)元素的樣式。

更新:2022年引入了:has()偽類,截至2023年6月,除Firefox之外的所有主流瀏覽器都支持它。

現(xiàn)在,您可以根據(jù)子狀態(tài)設(shè)置父元素的樣式,如下所示:

label::before {
  content: 'Not checked';
}

label:has(input:checked) {
  background: yellow;
}

label:has(input:checked)::before {
  content: 'Checked!';
}

<label>
  <input type="checkbox" />
</label>

你不能根據(jù)輸入的狀態(tài)改變標(biāo)簽的內(nèi)容,你需要用JS來實(shí)現(xiàn)。

但是,您可以在常規(guī)ol CSS中使用偽選擇器(通過擴(kuò)展使用SCSS ),通過input:checked{}來設(shè)置復(fù)選框本身的樣式

編輯:我承認(rèn)錯(cuò)誤,看萊昂納多·科斯塔使用兄弟姐妹選擇器的解決方案。

從今天起,您可以使用新的:has()偽類作為父選擇器:

label:has(:checked)::before {
    content: "?";
    color: blue;
}