If you're making a pure CSS front-end, and need things to be conditionally interacted with - you likely want to use radio-button type <input> controls set to display:none, associated <label> controls wrapping click-able areas, and the [type:radio] , ~ , and :checked CSS selector tools to make things do things. Gurpreet Singh's answer to this StackOverflow question makes a good starting point.
Also the flexible box layout has been around 6 years and is generally supported ... if only there were more outreach.
The HTML Living Standard is free (though extensive), most of it is readable by mortals, and has examples, and should be at least skimmed through and a copy kept on hand. If you're skimming, look for the grey "example" areas especially.