I have some div with 250px width and 500px height and here's what i want to do: - put some words in that div with br's next to it - adapt font size so that those words occupy all div width (bigger words with small font size and vice versa)
Is this possible with only css? If not, is it possible with anything?! :p
Hey, this isn't going to be achievable with CSS alone, but you could certainly do this using jquery/javascript. For example you could enclose each word in a span, measure the width of that span, divide the width of the parent div by the span width, then multiply the font-size of the span text by that number.
Thanks guys! Johnnyb, i didn't have yet time to test your solution, but it appears to be what i want. I've saved your page so i will put my feedback here when test it.
Johnyb..I see your method works on words only (no spaces in between). Is there a way i can apply the resizing to a sentence and not just a word? For example your first sentence "fits the width of the parent" would be adjusted to fit on a single line.
As far as I know (after googling vw & vh)...with vw/vh, we can only size elements to be relative to the size of the viewport and not the containing element.
I misunderstood the problem I guess. Indeed, vw and vh are relative to the viewport dimensions, and not the parent dimensions. Then it won't help much.
If find this topic is interesting so I decided to give it a shot, but I'm having some trouble. Anyone wanting to check my code and see if you can figure out what's wrong?
- put some words in that div with br's next to it
- adapt font size so that those words occupy all div width (bigger words with small font size and vice versa)
Is this possible with only css? If not, is it possible with anything?! :p
Thanks in advance!
i.e: (div width/span width) * span font-size
http://jbdes.net/dev/js/fontsize.html
Let me know if that works as you wanted!
set your html and body to height:100% on both
then make your container div height:auto and min-height:100%
John
For example your first sentence "fits the width of the parent" would be adjusted to fit on a single line.
Thanks
Want text to scale div stretching entire browser window. Want 250 px margin for picture.
note: had to use $(window).load ... otherwise the resize did not happen (guess a sequence problem) *shrugs*
That jQuery script helped fix my problem too.
cheers
Am I the only one thinking about
vwandvh?As far as I know (after googling vw & vh)...with vw/vh, we can only size elements to be relative to the size of the viewport and not the containing element.
Or am I misreading?
I misunderstood the problem I guess. Indeed, vw and vh are relative to the viewport dimensions, and not the parent dimensions. Then it won't help much.
If someone needs an example: http://jsfiddle.net/jWUU7/.
If find this topic is interesting so I decided to give it a shot, but I'm having some trouble. Anyone wanting to check my code and see if you can figure out what's wrong?
testpage: http://zhereicome.com/experiments/statics/title-justify/
code:
function resizeFont(elemToR){ parentW = elemToR.width(); elemToR.find('.row').each(function(n){ curRow = $(this); curWidth = curRow.width(); console.log(curWidth) console.log(parentW) var ratio = parentW / curWidth; console.log(ratio) $(this).css('font-size', ratio * initialSize + 'px'); }); }
$(window).load(function(){ initialSize = 10; $('.justify-this').each(function(){ resizeFont($(this)); }) })
$(window).resize(function(){ $('.justify-this').each(function(){ resizeFont($(this)) })
})
thanks!
Anyone? I created a fiddle (had problems on codepen)
http://jsfiddle.net/UwarH/
http://jsfiddle.net/UwarH/115/
Here's the best code i've come across up to date while working on sportkin I found the following to be very useful as it works well in Ie too
http://www.dhtmlgoodies.com/?whichScript=text_fit_in_box
Awesome topic and thank you for the great tips.