Equalize.js now equalizes height or width of child elements
github.com
github.com
Then tables are obviously the way to go.
Resorting to JavaScript hacks when HTML/CSS provides you with a solution, despite it being "non-semantic" in some people's eyes, seems unnecessary. (Of course, there are cases where tables won't work either, and JS is your only option.)
But if in need to do this kind of things with Javascript, please take a look at https://github.com/atirip/jquery.pp This repo is not solely of dimensions, but you will find many useful and normalized (all your tags may even be mixed of content-box and border-box) dimension methods inside, both to measure and to set dimensions.
Tim: A better approach would be to iterate through all children and find the maximum using elem.offset(Height|Width).
Then create a new <style> in the head for your plugin if it doesn't exist and append a new rule like:
style.innerHTML += '#' + (elem.id || (elem.id = 'eq' + (Date.now() % 1e9))) + '>*{' + equalize + ':' + val + '}';
If you don't like this you could still use elem.style.(width|height) (and maybe even detach the container beforehand to prevent unnecessary reflows), which will be faster and doesn't require a 90KB lib.Also, jQuery is 32KB minified and gzip'd AND that's if it's not already cached. Using the Google CDN helps as well, chances are you may not even be downloading it. Not looking to get into a jQuery vs. js debate.
"I don't always write jQuery, but when I do, I use Javascript"
http://caniuse.com/#feat=flexbox
Great article on the latest version of flexbox: http://github.com/doctyper/flexie
So flexbox will work, but it is a bit unstable right now.