如何在使用Tailwind时更改复选框选中时图标的颜色?

huangapple go评论63阅读模式
英文:

How can I change the color of an icon when a checkbox is checked using Tailwind?

问题

<input type="checkbox" id="darkmode-toggle" class="peer invisible h-0 w-0" />
<label for="darkmode-toggle" class="btn-toggle group peer-checked:fill-secondary-dark-300">
	<svg class="icon absolute">
		<use href="../../assets/icons/spirit.svg#sun" />
	</svg>
	<svg class="icon absolute  group-[peer-checked]:fill-secondary-dark-300">
		<use href="../../assets/icons/spirit.svg#moon" />
	</svg>
</label>

要实现你想要的效果,只需将 group-[peer-checked]:fill-secondary-dark-300 更改为 group peer-checked:fill-secondary-dark-300,以便正确选择并应用所需的样式。

英文:
<input type="checkbox" id="darkmode-toggle" class="peer invisible h-0 w-0" />
<label for="darkmode-toggle" class="btn-toggle group">
	<svg class="icon absolute">
		<use href="../../assets/icons/spirit.svg#sun" />
	</svg>
	<svg class="icon absolute  group-[peer-checked]:fill-secondary-dark-300">
		<use href="../../assets/icons/spirit.svg#moon" />
	</svg>
</label>

In the given HTML code (using Tailwind CSS), I want to change the color of the icon when the associated input checkbox is checked.

The attempted selector used is group-[peer-checked]:fill-secondary-dark-300. However, the desired icon color change is not happening.

How can I achieve the desired result of changing the color of the icon when the input checkbox is checked using the provided selector?

This is what I want to achieve with this selector:

  • group (select the parent "label")

  • [peer-checked] (when the sibling of the label "input" is checked)

  • fill-secondary-dark-300: change the icon color.

答案1

得分: 1

你可以考虑使用group-[.peer:checked+&]:

<!-- 开始代码片段:js 隐藏:false 控制台:false Babel:false -->

<!-- 语言:lang-js -->
tailwind.config = {
  theme: {
    extend: {
      colors: {
        'secondary-dark-300': 'red',
      },
    },
  },
};

<!-- 语言:lang-html -->
<script src="https://cdn.tailwindcss.com"></script>
<input type="checkbox" id="darkmode-toggle" class="peer invisible h-0 w-0" />
<label for="darkmode-toggle" class="btn-toggle group">
  <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6">
    <path d="M12 2.25a.75.75 0 01.75.75v2.25a.75.75 0 01-1.5 0V3a.75.75 0 01.75-.75zM7.5 12a4.5 4.5 0 119 0 4.5 4.5 0 01-9 0zM18.894 6.166a.75.75 0 00-1.06-1.06l-1.591 1.59a.75.75 0 101.06 1.061l1.591-1.59zM21.75 12a.75.75 0 01-.75.75h-2.25a.75.75 0 010-1.5H21a.75.75 0 01.75.75zM17.834 18.894a.75.75 0 001.06-1.06l-1.59-1.591a.75.75 0 10-1.061 1.06l1.59 1.591zM12 18a.75.75 0 01.75.75V21a.75.75 0 01-1.5 0v-2.25A.75.75 0 0112 18zM7.758 17.303a.75.75 0 00-1.061-1.06l-1.591 1.59a.75.75 0 001.06 1.061l1.591-1.59zM6 12a.75.75 0 01-.75.75H3a.75.75 0 010-1.5h2.25A.75.75 0 016 12zM6.697 7.757a.75.75 0 001.06-1.06l-1.59-1.591a.75.75 0 00-1.061 1.06l1.59 1.591z"></path>
  </svg>
  <svg class="w-6 h-6 group-[.peer:checked+&amp;]:fill-secondary-dark-300" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
    <path fill-rule="evenodd" d="M9.528 1.718a.75.75 0 01.162.819A8.97 8.97 0 009 6a9 9 0 009 9 8.97 8.97 0 003.463-.69.75.75 0 01.981.98 10.503 10.503 0 01-9.694 6.46c-5.799 0-10.5-4.701-10.5-10.5 0-4.368 2.667-8.112 6.46-9.694a.75.75 0 01.818.162z" clip-rule="evenodd"></path>
  </svg>
</label>

<!-- 结束代码片段 -->
英文:

You could consider using group-[.peer:checked+&amp;]::

<!-- begin snippet: js hide: false console: false babel: false -->

<!-- language: lang-js -->

tailwind.config = {
  theme: {
    extend: {
      colors: {
        &#39;secondary-dark-300&#39;: &#39;red&#39;,
      },
    },
  },
};

<!-- language: lang-html -->

&lt;script src=&quot;https://cdn.tailwindcss.com&quot;&gt;&lt;/script&gt;

&lt;input type=&quot;checkbox&quot; id=&quot;darkmode-toggle&quot; class=&quot;peer invisible h-0 w-0&quot; /&gt;
&lt;label for=&quot;darkmode-toggle&quot; class=&quot;btn-toggle group&quot;&gt;
  &lt;svg xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;currentColor&quot; class=&quot;w-6 h-6&quot;&gt;
    &lt;path d=&quot;M12 2.25a.75.75 0 01.75.75v2.25a.75.75 0 01-1.5 0V3a.75.75 0 01.75-.75zM7.5 12a4.5 4.5 0 119 0 4.5 4.5 0 01-9 0zM18.894 6.166a.75.75 0 00-1.06-1.06l-1.591 1.59a.75.75 0 101.06 1.061l1.591-1.59zM21.75 12a.75.75 0 01-.75.75h-2.25a.75.75 0 010-1.5H21a.75.75 0 01.75.75zM17.834 18.894a.75.75 0 001.06-1.06l-1.59-1.591a.75.75 0 10-1.061 1.06l1.59 1.591zM12 18a.75.75 0 01.75.75V21a.75.75 0 01-1.5 0v-2.25A.75.75 0 0112 18zM7.758 17.303a.75.75 0 00-1.061-1.06l-1.591 1.59a.75.75 0 001.06 1.061l1.591-1.59zM6 12a.75.75 0 01-.75.75H3a.75.75 0 010-1.5h2.25A.75.75 0 016 12zM6.697 7.757a.75.75 0 001.06-1.06l-1.59-1.591a.75.75 0 00-1.061 1.06l1.59 1.591z&quot; /&gt;
  &lt;/svg&gt;
 
  &lt;svg class=&quot;w-6 h-6 group-[.peer:checked+&amp;]:fill-secondary-dark-300&quot; xmlns=&quot;http://www.w3.org/2000/svg&quot; viewBox=&quot;0 0 24 24&quot; fill=&quot;currentColor&quot;&gt;
    &lt;path fill-rule=&quot;evenodd&quot; d=&quot;M9.528 1.718a.75.75 0 01.162.819A8.97 8.97 0 009 6a9 9 0 009 9 8.97 8.97 0 003.463-.69.75.75 0 01.981.98 10.503 10.503 0 01-9.694 6.46c-5.799 0-10.5-4.701-10.5-10.5 0-4.368 2.667-8.112 6.46-9.694a.75.75 0 01.818.162z&quot; clip-rule=&quot;evenodd&quot; /&gt;
  &lt;/svg&gt;
&lt;/label&gt;

<!-- end snippet -->

huangapple
  • 本文由 发表于 2023年6月1日 18:31:46
  • 转载请务必保留本文链接:https://go.coder-hub.com/76380987.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定