CSS/Html has a lot of tricky corners, where you spend 1 hour to understand why things are not as you expect. My latest issue was with a webpage that when I print it to PDf the tables font was different, the cause was that for some reason the browsers rendered that page in quirks mode(I could not figureout why since I had the correct header) but not when printing to pdf.
In quirks mode the tables font styles except the font family are not cascading from the parent, I did not knew that.
In other case I remember I had to add a min-width:0 to a rule because the layout engine has a large number of paths it can take and adding that rule would push it in the correct path.
The current project I work was not started by me so please don't say I should have used X, I can't now just put a reset css in the project, it could break 100 things all over the place.
Other issue I hit sometimes is aligning checkboxes,radio buttons and labels in all browsers, I get asked to pixel perfect align them, the bootstrap css we use does not do it, so we have to add rules with padding, min-heights and other things to get the result done ,
I use flexbox for the new layouts I create but working with old css that uses float,possition:relative is a pain for me.
I have a solution, have an html6 css4 thing , that is not backward compatible, make it so if you do a stupid thing like have 2 elements with the same ID the page won't render,drop html elements that we do not need. drop all old css crap, like float should work only for floating text and images not for layout, have only 1 way to layout things, 1 way to center things, 1 way to put gap between children... at least the lucky ones that start from zero can have less problems . We still keep the old html5 for compatibility reasons.