HTML/CSS is portable across all browsers, but you aren't guaranteed absolute control over the final rendering. This is by design, and there are a lot of good reasons for it. Most of these abstraction layers sacrifice all of that so you can get more control on the 2 or 3 supported browsers instead of the giant universe of alternate user agents.