I don&#x27;t like the Bootstrap approach very much.<p>I&#x27;d rather litter the markup with classes and then be able to change their order and location in the DOM without affecting styles than having to do changes both in HTML in CSS files - bear in mind that, with DOM dependency, most style changes would imply you to change or at least check the HTML file. It will also make you end up &quot;plugging&quot; exceptions on top of exceptions - element X looks like A when he&#x27;s a child of Y, but then it will have to look like B when he&#x27;s a descendant of Z (something common with a page-level class, for instance). This is way safer and maintainable with BEM-like modifiers.<p>I&#x27;d say that waiting for &quot;inherent and predictable relations between DOM elements&quot; is a disaster waiting to happen. Of course, there are exceptions (the table mark-up and table styles might be coupled, I guess), but you should try to avoid it.<p>Take a look at <a href="http:&#x2F;&#x2F;philipwalton.com&#x2F;articles&#x2F;side-effects-in-css&#x2F;" rel="nofollow">http:&#x2F;&#x2F;philipwalton.com&#x2F;articles&#x2F;side-effects-in-css&#x2F;</a>, he has a few good points.