I had a go at at this question (this question isn\'t related at all to his question), and tried to solve it through applying CSS selectors depending on whether the checkboxe
Your CSS looks correct, but browser support, of course, varies, and where there is support, there will be bugs. Javascript would be much more reliable.
Webkit had problems with siblings and andjacents when combined with pseudoclases. I had some problems with :hover, it's possible that the same thing happens with :checked. It should be fixed in recent nightly chromium builds. If so this bug will some time end in stable chrome version.