2016-05-17 159 views
0

如何根据字符数和panel-default大小增长/缩小font-size?例如,很多字符意味着font-size会更小,或者更小的屏幕也意味着更小的font-sizefont-size应该适合div。如何根据div大小缩放字体大小?

CSS

*, 
*:before, 
*:after { 
    box-sizing: border-box; 
} 

body { 
    margin: 0 
} 

.testing-here { 
    font-size: 0; 
} 

.panel-default { 
    box-sizing: border-box; 
    border-style: none; 
    position: relative; 
    width: 50%; 
    padding-bottom: 40%; 
    overflow: hidden; 
    background-color: #446CB3; 
    border-radius: 0; 
    display: inline-block; 
    margin-bottom: 0px; 
    border: 2.5px white solid; 
} 

.panel-body { 
    color: white; 
    text-align: center; 
    position:absolute; 
    font-size: 16px; 
} 

HTML

<div class="testing-here"> 
    <div class="panel panel-default"> 
    <div class="panel-body"> 
     Basic panel example 
    </div> 
    </div> 
    <div class="panel panel-default"> 
    <div class="panel-body"> 
     Basic panel example 
    </div> 
    </div> 
    <div class="panel panel-default"> 
    <div class="panel-body"> 
     Basic panel example 
    </div> 
    </div> 
    <div class="panel panel-default"> 
    <div class="panel-body"> 
     Basic panel example 
    </div> 
    </div> 
</div> 

有没有办法做到这一点没有JavaScript的?

+0

没有@ParthBhoiwala我认为是有办法做到这一点没有的JavaScript。 –

回答

1

如果您的面板从窗口width大小,你可以使用vw单位(与所有的烦恼与未来:太大或太小,无法阅读)

您可以添加媒体查询,以保持font-size最小值和最大值内尺寸。

*, 
 
*:before, 
 
*:after { 
 
    box-sizing: border-box; 
 
} 
 
body { 
 
    margin: 0 
 
} 
 
.testing-here { 
 
    font-size: 0; 
 
} 
 
.panel-default { 
 
    box-sizing: border-box; 
 
    border-style: none; 
 
    position: relative; 
 
    width: 50%; 
 
    padding-bottom: 40%; 
 
    overflow: hidden; 
 
    background-color: #446CB3; 
 
    border-radius: 0; 
 
    display: inline-block; 
 
    margin-bottom: 0px; 
 
    border: 2.5px white solid; 
 
} 
 
.panel-body { 
 
    color: white; 
 
    width: 100%; 
 
    height: 100%; 
 
    text-align: center; 
 
    position: absolute; 
 
    font-size: 5vw; 
 
    /* will be 5% of window's width so 10% of panel's width */ 
 
} 
 
@media (min-width: 1000px) { 
 
    .panel-body { 
 
    font-size: 50px; 
 
    } 
 
} 
 
@media (max-width: 320px) { 
 
    .panel-body { 
 
    font-size: 16px; 
 
    } 
 
}
<div class="testing-here"> 
 
    <div class="panel panel-default"> 
 
    <div class="panel-body"> 
 
     Basic panel example show me full page & resize window 
 
    </div> 
 
    </div> 
 
    <div class="panel panel-default"> 
 
    <div class="panel-body"> 
 
     Basic panel example font-size kept in between 16 and 50px max 
 
    </div> 
 
    </div> 
 
    <div class="panel panel-default"> 
 
    <div class="panel-body"> 
 
     Basic panel example 
 
    </div> 
 
    </div> 
 
    <div class="panel panel-default"> 
 
    <div class="panel-body"> 
 
     Basic panel example 
 
    </div> 
 
    </div> 
 
</div>

您也可以使用媒体查询,以保持字体可读或仅媒体查询在不同的破发点

+0

'vw'由于您提到的内容太小或太大而无法正常工作。 –

+0

@ AnthonyGalli.com,你需要mediaqueries覆盖字体大小低于&上限一定宽度请参阅更新片段 –

+0

谢谢。最坏的情况下,我会去那,但我正在寻找字体大小的变化符合div。媒体查询的问题是我希望文本留在div中,所以如果他们是大量的文本,那么文本会在该div中额外的小,而如果他们是一个单词,那么这个单词会很大,以填补div大小。对不起,如果我没有在问题中解释得这么好。 –