CSS diner is a game for learning CSS selectors.
But it goes "into the woods" relatively quickly, focusing more on breath of selectors than on mastery of fundamentals
Can it be productively used to teach CSS for beginers?
(as promissed in another question, this is my answer)
focus only on the starting exercices (I go from 1 to 11)
first teach the theory .class, #id, tag, and the selectors for and, or and child (ie p .some_child)
Then allow them to to the exercices; and after do them together
You can often solve one exercise in multiple ways. While this does not help the concept the exercise wants to teach, and sometimes is not very semantical (say, for example, selecting all apples inside plates and all pickes inside plates, when you wanted everything inside a plate) it helps reinforce the selectors