Facebook uses display: table for their modal so that they can center it vertically without worrying about JS (if the height is variable and/or unknown) or negative margins. As far as making it responsive, you just need to work on your styles a bit. Check out the image detail modal I made for Stipple.com (just click on an image in the feed). This implementation leans on Backbone.js a little bit, but for the most part, the markup and styles make up a majority of the library. The actual plugin just builds the dom elements, handles events, and provides callbacks.
On iPad, starting portrait and rotating landscape redraws but same size (too small). Starting landscape and rotating portrait tries to redraw same size (too large) but breaks layout, pushing text below image.
I feel as though portrait mode on iPad might look better with white box below the otherwise extremely tiny image.