I have a div wrapped around two children, one floated left and the other right. I want to put a border and background around the children, but the div has 0 height since it
Add overflow: hidden; to #wrap. This is a clear fix. Here's some documentation about it: http://positioniseverything.net/easyclearing.html
LE: There are also multiple ways you can achieve this, depending of the browser compatibilty:
#wrap { overflow: hidden; }
clear: both .#wrap:after { clear: both; content: ""; display: table;}
I preffer not to use the 3rd one as you get extra HTML markup.