It is made of 9 boxes, with the middle on has text it in.
I’ve made it so the boxes so they will resize with the screen resize so it will remain in the same place all the time.
The text, however, doesn’t resize – even when I use percentage.
- How do I resize the text so it will always be the same ratio from the entire page?
- Is this a proper solution to handle multiple resolutions? or should I have many
@mediachecks in the CSS and have many layouts for each media types?
html,
body {
height: 100%;
width: 100%;
}
#launchmain {
width: 55%;
display: inline-block;
position: relative;
top: 10%;
left: 25%;
}
#launchmain:after {
padding-top: 79.26%;
display: block;
content: '';
margin-top: 10px;
}
#box1 {
border: 1px solid #000000;
position: absolute;
width: 25.37%;
height: 21.88%
}
#box2 {
border: 1px solid #000000;
width: 48.48%;
height: 21.88%;
position: absolute;
left: 25.64%
}
#box3 {
border: 1px solid #000000;
width: 25.37%;
height: 21.88%;
position: absolute;
left: 74.39%;
}
#box4 {
border: 1px solid #000000;
width: 33.235%;
height: 53.84%;
position: absolute;
top: 22.07%;
}
#maininvite {
border: 1px solid #000000;
width: 33.53%;
height: 53.84%;
position: absolute;
top: 22.07%;
left: 33.235%;
}
#box6 {
border: 1px solid #000000;
width: 33.235%;
height: 53.84%;
position: absolute;
top: 22.07%;
left: 66.765%;
}
#box7 {
border: 1px solid #000000;
width: 25.37%;
height: 21.88%;
position: absolute;
top: 76.2%;
}
#box8 {
border: 1px solid #000000;
width: 48.48%;
height: 21.88%;
position: absolute;
left: 25.64%;
top: 76.2%;
}
#box9 {
border: 1px solid #000000;
width: 25.37%;
height: 21.88%;
position: absolute;
top: 76.2%;
left: 74.39%;
}
#maininvite h2 {
font-size: 180%;
}
p {
position: relative;
font-size: 80%;
}
<div id="launchmain">
<div id="box1"></div>
<div id="box2"></div>
<div id="box3"></div>
<div id="box4"></div>
<div id="maininvite">
<h2> header</h2>
<p>not a lot of text here but still overflowing</p>
</div>
<div id="box6"></div>
<div id="box7"></div>
<div id="box8"></div>
<div id="box9"></div>
</div>
In regards to your code, see @Coulton. You’ll need to use JavaScript.
Checkout either FitText (it does work in IE, they just ballsed their site somehow) or BigText.
FitText will allow you to scale some text in relation to the container it is in, while BigText is more about resizing different sections of text to be the same width within the container.
BigText will set your string to exactly the width of the container, whereas FitText is less pixel perfect. It starts by setting the font-size at 1/10th of the container element’s width. It doesn’t work very well with all fonts by default, but it has a setting which allows you to decrease or increase the ‘power’ of the re-size. It also allows you to set a min and max font-size. It will take a bit of fiddling to get working the first time, but does work great.
http://marabeas.io <- playing with it currently here. As far as I understand, BigText wouldn’t work in my context at all.
For those of you using Angularjs, here’s an Angular version of FitText I’ve made.
Here’s a LESS mixin you can use to make @humanityANDpeace’s solution a little more pretty:
And an SCSS version thanks to @NIXin!