It works fine but I don’t really understand why and what it does.
I have some problems figuring out before and after selectors and why is content just “”. Why use both heigth and negative height, I tried without margin and I think it works fine.
Here’s a link for exercise I’m working on so you can see where I’ve use that piece of code.
margin: -90px 0 0 just moves the thing up 90 pixels.
anything along the lines of :hover or :before is a pseudo class defining something that can happen to the thing. display block is the default display, often used with display none. Also, try wrapping your content in a div (on the same level as nav), as that might help the browser. Can’t talk now, will detail later.
If the content property is not set the :before and :afterpseudo-elements are not generated (specs). The reason for the empty string is just so no text shows up.
You can use text if that is what is needed. This would give all a elements the text "Link: " before them.