jQuery responsive images with dynamically-generated widths

Notice how all of these images scale down perfectly as you reduce the width of your browser window or reload the page in a smaller browser window, but do not expand past their native pixel dimensions.

This is accomplished by writing a jQuery function that finds each img element within the #content div, wraps each img element in a containing div with a dynamically set width*, and then sets the max-width of the actual img element to 100% so that is scales proportionally within it's jQuery generated containing div.

* The width of the dynaically-generated containing div is calculated by taking the pixel width of each image and dividing it by the width of the #content div. The total must then be multiplied by 100 to convert it into a percentage for use as an inline style in the image's containing div.

In order to be able to center images or float images to the left or the right, I needed to make separate classes which can be applied to each desired image. The classes are as follows:

If no class is applied to an image within the #content div, the image will be restricted to the width of the #content div.


Demo

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur metus turpis, tristique in interdum tincidunt, vehicula et nulla. Vestibulum varius aliquam urna ullamcorper commodo. Nunc pulvinar eros non ante ultrices suscipit. Quisque dapibus nunc vel felis dictum quis dictum magna dapibus. Curabitur eu arcu est, et accumsan lacus. Donec posuere ultricies condimentum. Fusce ultricies ante vel justo scelerisque vitae ornare mauris suscipit. Sed feugiat, sem nec auctor molestie, leo dolor porttitor odio, eu egestas odio elit sit amet mi. Quisque suscipit commodo nisi quis consectetur. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam erat volutpat. Nam sit amet lectus nisi, at pretium lorem. Morbi consequat nunc consequat erat tristique a aliquam urna bibendum. Ut bibendum, massa eu porttitor malesuada, nisi lacus vestibulum nisl, quis fringilla lorem libero quis nisi. Cras lacinia dapibus odio, vitae euismod orci aliquam et.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur metus turpis, tristique in interdum tincidunt, vehicula et nulla. Vestibulum varius aliquam urna ullamcorper commodo. Nunc pulvinar eros non ante ultrices suscipit. Quisque dapibus nunc vel felis dictum quis dictum magna dapibus. Curabitur eu arcu est, et accumsan lacus. Donec posuere ultricies condimentum. Fusce ultricies ante vel justo scelerisque vitae ornare mauris suscipit. Sed feugiat, sem nec auctor molestie, leo dolor porttitor odio, eu egestas odio elit sit amet mi. Quisque suscipit commodo nisi quis consectetur. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam erat volutpat. Nam sit amet lectus nisi, at pretium lorem. Morbi consequat nunc consequat erat tristique a aliquam urna bibendum. Ut bibendum, massa eu porttitor malesuada, nisi lacus vestibulum nisl, quis fringilla lorem libero quis nisi. Cras lacinia dapibus odio, vitae euismod orci aliquam et.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur metus turpis, tristique in interdum tincidunt, vehicula et nulla. Vestibulum varius aliquam urna ullamcorper commodo. Nunc pulvinar eros non ante ultrices suscipit. Quisque dapibus nunc vel felis dictum quis dictum magna dapibus. Curabitur eu arcu est, et accumsan lacus. Donec posuere ultricies condimentum. Fusce ultricies ante vel justo scelerisque vitae ornare mauris suscipit. Sed feugiat, sem nec auctor molestie, leo dolor porttitor odio, eu egestas odio elit sit amet mi. Quisque suscipit commodo nisi quis consectetur. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam erat volutpat. Nam sit amet lectus nisi, at pretium lorem. Morbi consequat nunc consequat erat tristique a aliquam urna bibendum. Ut bibendum, massa eu porttitor malesuada, nisi lacus vestibulum nisl, quis fringilla lorem libero quis nisi. Cras lacinia dapibus odio, vitae euismod orci aliquam et.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur metus turpis, tristique in interdum tincidunt, vehicula et nulla. Vestibulum varius aliquam urna ullamcorper commodo. Nunc pulvinar eros non ante ultrices suscipit. Quisque dapibus nunc vel felis dictum quis dictum magna dapibus. Curabitur eu arcu est, et accumsan lacus. Donec posuere ultricies condimentum. Fusce ultricies ante vel justo scelerisque vitae ornare mauris suscipit. Sed feugiat, sem nec auctor molestie, leo dolor porttitor odio, eu egestas odio elit sit amet mi. Quisque suscipit commodo nisi quis consectetur. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam erat volutpat. Nam sit amet lectus nisi, at pretium lorem. Morbi consequat nunc consequat erat tristique a aliquam urna bibendum. Ut bibendum, massa eu porttitor malesuada, nisi lacus vestibulum nisl, quis fringilla lorem libero quis nisi. Cras lacinia dapibus odio, vitae euismod orci aliquam et.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur metus turpis, tristique in interdum tincidunt, vehicula et nulla. Vestibulum varius aliquam urna ullamcorper commodo. Nunc pulvinar eros non ante ultrices suscipit. Quisque dapibus nunc vel felis dictum quis dictum magna dapibus. Curabitur eu arcu est, et accumsan lacus. Donec posuere ultricies condimentum. Fusce ultricies ante vel justo scelerisque vitae ornare mauris suscipit. Sed feugiat, sem nec auctor molestie, leo dolor porttitor odio, eu egestas odio elit sit amet mi. Quisque suscipit commodo nisi quis consectetur. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam erat volutpat. Nam sit amet lectus nisi, at pretium lorem. Morbi consequat nunc consequat erat tristique a aliquam urna bibendum. Ut bibendum, massa eu porttitor malesuada, nisi lacus vestibulum nisl, quis fringilla lorem libero quis nisi. Cras lacinia dapibus odio, vitae euismod orci aliquam et.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur metus turpis, tristique in interdum tincidunt, vehicula et nulla. Vestibulum varius aliquam urna ullamcorper commodo. Nunc pulvinar eros non ante ultrices suscipit. Quisque dapibus nunc vel felis dictum quis dictum magna dapibus. Curabitur eu arcu est, et accumsan lacus. Donec posuere ultricies condimentum. Fusce ultricies ante vel justo scelerisque vitae ornare mauris suscipit. Sed feugiat, sem nec auctor molestie, leo dolor porttitor odio, eu egestas odio elit sit amet mi. Quisque suscipit commodo nisi quis consectetur. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam erat volutpat. Nam sit amet lectus nisi, at pretium lorem. Morbi consequat nunc consequat erat tristique a aliquam urna bibendum. Ut bibendum, massa eu porttitor malesuada, nisi lacus vestibulum nisl, quis fringilla lorem libero quis nisi. Cras lacinia dapibus odio, vitae euismod orci aliquam et.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur metus turpis, tristique in interdum tincidunt, vehicula et nulla. Vestibulum varius aliquam urna ullamcorper commodo. Nunc pulvinar eros non ante ultrices suscipit. Quisque dapibus nunc vel felis dictum quis dictum magna dapibus. Curabitur eu arcu est, et accumsan lacus. Donec posuere ultricies condimentum. Fusce ultricies ante vel justo scelerisque vitae ornare mauris suscipit. Sed feugiat, sem nec auctor molestie, leo dolor porttitor odio, eu egestas odio elit sit amet mi. Quisque suscipit commodo nisi quis consectetur. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Aliquam erat volutpat. Nam sit amet lectus nisi, at pretium lorem. Morbi consequat nunc consequat erat tristique a aliquam urna bibendum. Ut bibendum, massa eu porttitor malesuada, nisi lacus vestibulum nisl, quis fringilla lorem libero quis nisi. Cras lacinia dapibus odio, vitae euismod orci aliquam et.