Bootstrap 中基于容器宽度的字体缩放
Font scaling based on width of container in Bootstrap
如何在 Bootstrap 框架中缩放文本块(使用字体缩放)?
列的宽度是主要的困难,因为它是流动的。
Bootstrap 使用CSS @media for Grid system [link] so you can use media queries with Bootstrap's dimensions to set another CSS properties. Check out the fiddle 调整js和display之间的bar window 看看header的效果font-size 变化中。
<div class="container">
<h1 class="header">header</h1>
<div class="row">
<div class="colDiv col-sm-6 col-md-4 col-lg-3">
<p>ColumnA</p>
</div>
<div class="colDiv col-sm-6 col-md-8 col-lg-9">
<p>ColumnB</p>
</div>
</div>
</div>
编辑:
好的,所以我写了一点 JS 函数来做到这一点。
您设置六个参数(按顺序)来操作 fontSize:
alignFont(getElement,defaultSize,defaultWidth,acceleration,min,max)
- getElement - 设置要在
内操作的 font-size 元素
- defaultSize - 字体的默认(起始)大小
- defaultWidth - window 设置了默认字体大小的宽度
- 加速度 - 1 为正常,2 - 增加两倍快,.5 - 增加较慢
- min - 最小fontSize(字号不能小于这个值)
- max - 最大字体大小(字体大小不能大于此值)
和示例(调整js框和显示框之间的栏):FIDDLE
var a = document.getElementById('flexibleHeaderA');
var b = document.getElementById('flexibleHeaderB');
var c = document.getElementById('flexibleHeaderC');
var d = document.getElementById('flexibleHeaderD');
var e = document.getElementById('flexibleHeaderE');
var settingA = alignFont.bind(this, a, 24, 600, 1, 20, 30);
var settingB = alignFont.bind(this, b, 24, 600, 1.5, 12, 60);
var settingC = alignFont.bind(this, c, 30, 600, 1, 15, 35);
var settingD = alignFont.bind(this, d, 22, 1000, .5, 12, 30);
var settingE = alignFont.bind(this, e, 16, 80, 1, 12, 26);
settingA();
settingB();
settingC();
settingD();
settingE();
window.addEventListener('resize', function() {
settingA();
settingB();
settingC();
settingD();
settingE();
});
function alignFont(getElement, defaultSize, defaultWidth, acceleration, min, max) {
var cWidth = document.body.offsetWidth;
var newSize = (Math.pow(cWidth / defaultWidth, acceleration)) * defaultSize;
var limitSize = newSize >= max ? max : newSize <= min ? min : newSize;
getElement.style.fontSize = limitSize + "px";
}
h3 {
border: dotted 1px #33aaff;
margin: 10px;
text-align: center;
}
<h3 id="flexibleHeaderA">Hello I'm flexible header</h3>
<h3 id="flexibleHeaderB">Hello I'm flexible header</h3>
<h3 id="flexibleHeaderC">Hello I'm flexible header</h3>
<h3 id="flexibleHeaderD">Hello I'm flexible header</h3>
<h3 id="flexibleHeaderE">Hello I'm flexible header</h3>
如何在 Bootstrap 框架中缩放文本块(使用字体缩放)?
列的宽度是主要的困难,因为它是流动的。
Bootstrap 使用CSS @media for Grid system [link] so you can use media queries with Bootstrap's dimensions to set another CSS properties. Check out the fiddle 调整js和display之间的bar window 看看header的效果font-size 变化中。
<div class="container">
<h1 class="header">header</h1>
<div class="row">
<div class="colDiv col-sm-6 col-md-4 col-lg-3">
<p>ColumnA</p>
</div>
<div class="colDiv col-sm-6 col-md-8 col-lg-9">
<p>ColumnB</p>
</div>
</div>
</div>
编辑:
好的,所以我写了一点 JS 函数来做到这一点。 您设置六个参数(按顺序)来操作 fontSize:
alignFont(getElement,defaultSize,defaultWidth,acceleration,min,max)
- getElement - 设置要在 内操作的 font-size 元素
- defaultSize - 字体的默认(起始)大小
- defaultWidth - window 设置了默认字体大小的宽度
- 加速度 - 1 为正常,2 - 增加两倍快,.5 - 增加较慢
- min - 最小fontSize(字号不能小于这个值)
- max - 最大字体大小(字体大小不能大于此值)
和示例(调整js框和显示框之间的栏):FIDDLE
var a = document.getElementById('flexibleHeaderA');
var b = document.getElementById('flexibleHeaderB');
var c = document.getElementById('flexibleHeaderC');
var d = document.getElementById('flexibleHeaderD');
var e = document.getElementById('flexibleHeaderE');
var settingA = alignFont.bind(this, a, 24, 600, 1, 20, 30);
var settingB = alignFont.bind(this, b, 24, 600, 1.5, 12, 60);
var settingC = alignFont.bind(this, c, 30, 600, 1, 15, 35);
var settingD = alignFont.bind(this, d, 22, 1000, .5, 12, 30);
var settingE = alignFont.bind(this, e, 16, 80, 1, 12, 26);
settingA();
settingB();
settingC();
settingD();
settingE();
window.addEventListener('resize', function() {
settingA();
settingB();
settingC();
settingD();
settingE();
});
function alignFont(getElement, defaultSize, defaultWidth, acceleration, min, max) {
var cWidth = document.body.offsetWidth;
var newSize = (Math.pow(cWidth / defaultWidth, acceleration)) * defaultSize;
var limitSize = newSize >= max ? max : newSize <= min ? min : newSize;
getElement.style.fontSize = limitSize + "px";
}
h3 {
border: dotted 1px #33aaff;
margin: 10px;
text-align: center;
}
<h3 id="flexibleHeaderA">Hello I'm flexible header</h3>
<h3 id="flexibleHeaderB">Hello I'm flexible header</h3>
<h3 id="flexibleHeaderC">Hello I'm flexible header</h3>
<h3 id="flexibleHeaderD">Hello I'm flexible header</h3>
<h3 id="flexibleHeaderE">Hello I'm flexible header</h3>