Design patterns, as the wikipedia says, is "a formal way of documenting a solution to a design problem in a particular field of expertise".
So, it's a solution for a specific problem.
The main issue with HTML/CSS is that people tend to think that there's a best approach than can work with every website. But different websites require different HTML/CSS architectures, because they offer different design problems! It's not the same to create a corporate website than an application website (just to name two different problems).
I'll use the layout as an example:
There are different ways to define the layout of a website (call it grid if you want). If I want to create a secondary column, there's the "explicit" way, where I specify that my div will take 1/3rds of the main layout with a ".col-md-4" class (like http://getbootstrap.com/css/#grid does). And there's the "semantic" way, where I create a div with the "sidebar" class, and my CSS will make the div to take 1/3rds (like http://neat.bourbon.io/ does)
None of this two approaches is the best. Each one is a design pattern. And each one will be a better solution for a different problem.