I always found it strange that when you set the font size to 50% in css, letters don't take 50% of the width of the page.
This script makes text behave in that way.
I always found it strange that when you set the font size to 50% in css, letters don't take 50% of the width of the page.
This script makes text behave in that way.
onresize=onload=function(){document.body.style.fontSize=window.innerWidth+"px"} |
onresize=onload=function(){document.body.style.fontSize=window.innerWidth+"px"} |
{ | |
"name": "textPercentagr", | |
"description": "This script makes font size behave like boxes when set in percents", | |
"keywords": [ | |
"css", | |
"fluid", | |
"responsive", | |
"text", | |
"font" | |
] | |
} |
<!DOCTYPE html> | |
<script> | |
onresize=onload=function(){document.body.style.fontSize=window.innerWidth+"px"} | |
</script> | |
<body> | |
<style> | |
img{width:45%;float:left;margin:5%} | |
body{margin:5%} | |
</style> | |
<h1 style="font-size:6%">This is a big heading!!!!!!</h1> | |
<p style="font-size:3%;text-align:justify"> | |
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse congue libero nec nunc condimentum vitae scelerisque nulla bibendum. Praesent eu tellus lectus, eu malesuada magna.<img src="http://images4.fanpop.com/image/photos/19500000/Red-Pandas-the-alliance-of-red-panda-believers-19591990-1024-768.jpg"> Fusce cursus, mauris eu fermentum pretium, dolor eros ultricies neque, a venenatis turpis sem at odio. Morbi vitae odio at metus tristique ornare. Nulla consectetur cursus luctus. Vivamus nec iaculis risus. Donec vel risus ac mi eleifend eleifend sit amet eu orci. Duis consequat nunc eleifend dolor tincidunt egestas. Phasellus at lacus orci. Etiam euismod suscipit ante eu tempor. Vestibulum sed urna et purus dignissim hendrerit. Nam eu dignissim ligula. Ut imperdiet pretium magna non pellentesque. Aliquam vel lacus eros. | |
</p> |
@atk
I NEVER heard of these units before!
Wow! Thats gonna help me alot! Gotta check the browser support first.
Wow. Good to know. To bad no browser supports vw
and vh
except for IE9 (really?).
...yes, really - and the experimental versions of firefox and chrome have support, too.
One-liners are cute and all that but defining a property instead of using event listeners is bad practice.
var fontFix = function () {
var width = window.innerWidth || document.documentElement.clientWidth;
document.body.style.fontSize = width + "px";
};
window.addEventListener('resize', fontFix);
window.addEventListener('load', fontFix);
We need a small refinement to make it work.
var fudgeFactor = 24 / 1920; // defines the size of the body text for the maximum screen width
function fontFix() {
var width = window.innerWidth || document.documentElement.clientWidth;
document.body.style.fontSize = Math.max(14, fudgeFactor * width ) + "px";
};
window.addEventListener('resize', fontFix);
window.addEventListener('load', fontFix);
i want to use it on my specific div i want to change the size of text inside the specific div, how to do this?
In CSS3, you have viewport relative units: http://www.w3.org/TR/css3-values/#viewport-relative-lengths; Still one could use this to provide two measurements (style="font-size: 6%; font-size: 6vw;") and run the script only when the unit vw is not supported.