Css 如何更改a";“颜色”;单击时的名称';s按钮?

Css 如何更改a";“颜色”;单击时的名称';s按钮?,css,sass,Css,Sass,我希望根据单击的色样按钮显示$colors名称。下面是显示色样按钮的代码,但我不确定如何根据单击的内容更改$colors名称。许多大品牌零售商的网站上都有这样的例子。改变颜色时我希望发生的事情。在本例中,在颜色之间切换时,名称从“金色”更改为“灰褐色” $colors: ( 'color-Navy' #2D2F3C, 'color-Ash' #EEF0F2, 'color-Black'

我希望根据单击的色样按钮显示
$colors
名称。下面是显示色样按钮的代码,但我不确定如何根据单击的内容更改
$colors
名称。许多大品牌零售商的网站上都有这样的例子。改变颜色时我希望发生的事情。在本例中,在颜色之间切换时,名称从“金色”更改为“灰褐色”

$colors: ( 
 'color-Navy'                  #2D2F3C,
 'color-Ash'                   #EEF0F2,
 'color-Black'                 #060606,
 'color-White'                 #F6F6F6,
 'color-Charcoal'              #59545A,
);

@each $color in $colors {
 $colorName: nth($color, 1);
 $bgColor:   nth($color, 2);

#ProductSelect-option-#{$colorName} + label {
  background-color: $bgColor;
  color: $bgColor;
  width: 50px;
  height: 50px;
  overflow: hidden;
  border-radius: 25px;
  margin: 5px;
  text-indent: 100%;
  white-space: nowrap;
 }

#ProductSelect-option-#{$colorName}:checked + label {
 border-color: #555;
 border-width: 3px;
 }
}

假设CSS选择器正确,只需为

#ProductSelect-option-#{$colorName}:checked + label
例如:

#ProductSelect-option-#{$colorName}:checked + label {
  color: $colorName;
}
只要选中相应的复选框,就会更新
颜色。由于使用了
:checked
伪类,当复选框未选中时,这也将更改回原色


我还注意到选择器中有变量名。虽然这很好,但这可能不是故意的。这里的键是
:选中+标签
;只要您正确地定位复选框,上面的选择器将定位下一个

假设您的CSS选择器正确,您只需为其设置
颜色

#ProductSelect-option-#{$colorName}:checked + label
例如:

#ProductSelect-option-#{$colorName}:checked + label {
  color: $colorName;
}
只要选中相应的复选框,就会更新
颜色。由于使用了
:checked
伪类,当复选框未选中时,这也将更改回原色


我还注意到选择器中有变量名。虽然这很好,但这可能不是故意的。这里的键是
:选中+标签
;只要您正确地定位复选框,上面的选择器将定位下一个看起来不像CSS的

。这是Sass吗?看起来不像CSS。这是Sass吗?用单选按钮会更好吗?我的意思是,不完全确定行为,但考虑到一次只能选择一个,这取决于期望的行为,但这肯定是可能的。事实上,它甚至使用了相同的
:checked+label
语法!请看一个例子:)太棒了,谢谢,再次阅读OP的问题。然而,我认为它的目的是显示名称本身,比如如果你选择第一种颜色,它应该在跨度上显示“Navy”或类似的内容。我认为您所做的只是将标签文本的颜色更改为变量中的颜色,使用单选按钮会更好吗?我的意思是,不完全确定行为,但考虑到一次只能选择一个,这取决于期望的行为,但这肯定是可能的。事实上,它甚至使用了相同的
:checked+label
语法!请看一个例子:)太棒了,谢谢,再次阅读OP的问题。然而,我认为它的目的是显示名称本身,比如如果你选择第一种颜色,它应该在跨度上显示“Navy”或类似的内容。我认为您所做的只是将标签文本的颜色更改为变量中的颜色