2016-05-17 160 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大小。對不起,如果我沒有在問題中解釋得這麼好。 –