I want to float a paragraph next to image, but without wrapping the image. Like this:
div.img {
float: left;
display: block;
margin: 15px 2% 0 2%;
width: 26%; /* I cannot use that */
}
div.info {
float: right;
display: block;
margin: 15px 2% 0 2%;
width: 66%; /* The width should be variable */
}
The problem is that I can do it if I set width to both img and info but the image is a variable width/height. It does not have specific width/height.
I am almost lost in this situation. Please suggest to me anything.I want both divs to float next to each other without wrapping .. without specifying box width.
Any solution..workaround?
The only way I know to do it without JavaScript is to wrap your two elements in a container element whose 'overflow' property is set to 'auto', float the image, and set the 'overflow' of the paragraph to 'auto', as well.
See it working here: http://jsfiddle.net/leegee/vpjjB/
You could also set a percentage-width on the paragraphs and float them to the opposite side as the image, but I am not sure that is a good answer to your question.
By the way, as you are rendering paragraphs and images, I changed the mark-up to use the relevant 'semantic' elements of old-fashioned 'p' and 'img'.
You can do it with some js: http://jsfiddle.net/vXMkR/ .
Only float the image, not the paragraph of text:
See: http://jsfiddle.net/9WMzZ/
Here is some simple CSS for doing this job.
You can do this without JS. See my fiddle http://jsfiddle.net/VaSn6/5/
Put the image and paragraph side-by-side:
With CSS:
My jsfiddle extends the example to clearing paragraphs and right-aligned images.
I needed something like this that was CMS-friendly and marketing-team friendly (marketers are scared of divs!)
This works down to at least IE8.
If you need vertically-centered images next to text, you'll need some divs: http://jsfiddle.net/VaSn6/12/ This will only vertically center longer text than images.
Or if you're ok with CSS tables, I'd go with http://jsfiddle.net/sY4H8/1/ (also ok down to IE8). That works even if the text is less tall than the image.