HTML < input type = "hidden" name = "attr_stress1" value = "1" class = "stressBoxInfo" /> < button type = "action" name = "act_stress1" class = "stressBox" ></ button > CSS .stressBox { display : flex ; justify-content : center ; align-items : center ; min-width : 50px ; min-height : 50px ; max-width : 50px ; max-height : 50px ; border-width : 3% ; border-color : black ; } input.sheet-stressBoxInfo [ value = "0" ] ~ button.sheet-stressBox { background-color : white ; } input.sheet-stressBoxInfo [ value = "1" ] ~ button.sheet-stressBox { background-color : yellow ; } input.sheet-stressBoxInfo [ value = "2" ] ~ button.sheet-stressBox { background-color : red ; } I've been scratching my head at a problem I'm trying to make it so that the color of the stress boxes change depending on the "attr_stress1" value. I've been reading forum posts on something similar and came to the conclusion that what I have written in HTML/CSS. As I am testing through it, the value of the invisible "stressBoxInfo" is correctly updated. But for some reason, the color of the button isn't changing. I have plugged in almost exact (not adding the sheet- prefix to classes) into a blank html page and the results are as expected. It seems, for some reason that the Subsequent-sibling combinator (~) is just not working. I am stumped as to how to fix the issue.