如果我有以下HTML:
<div class="div1">
<div class="div2">
</div>
<div class="div3">
</div>
</div>
div2
和div3
拥有自己的CSS,其字体大小等已定义。有没有办法可以统一减少div1
的字体大小?也就是说,采用div2
和div3
中定义的字体大小并将其缩小为2px
?这类似于Select All -> Ctrl + Shift + <
在文字处理软件中将所选文本的大小减少1个点的方式。有什么建议吗?
答案 0 :(得分:4)
我认为这就是你想要的:
演示:http://jsfiddle.net/SO_AMK/JjutY/
HTML:
<div class="div1">
<div class="div2">
Some text, and more, and more, and more, and more, and more, and more, and more, and more.
</div>
<div class="div3">
Some text, and more, and more, and more, and more, and more, and more, and more, and more.
</div>
<button class="increaseFontSize">Increase Font Size</button>
</div>
jQuery:
$(".increaseFontSize").click(function(){
var fontSize = getFontSize($(".div3"));
var newFontSize = fontSize + 2;
$(".div3").css("font-size", newFontSize);
return false;
});
function getFontSize(element) {
var currentSize = $(element).css("font-size");
var currentSizeNumber = parseFloat(currentSize);
return currentSizeNumber;
}
答案 1 :(得分:3)
如果您使用百分比或em设置font-size,那么您可以,但不能使用像素。使用以下示例如果更改div1字体大小,它将同时影响div2和div3。有关字体大小单位类型CSS FONT-SIZE: EM VS. PX VS. PT VS. PERCENT
的比较,请参阅此文章.div1{
font-size:16px;
}
.div2{
font-size:80%;
}
.div3{
font-size:90%;
}
此外,我在我的网站中使用以设置字体大小:
/* percentage to px scale (very simple)
80% = 8px
100% = 10px
120% = 12px
140% = 14px
180% = 18px
240% = 24px
260% = 26px
*/
body
{
font-family: Arial, Helvetica, sans-serif;
font-size:10px;
}
通过设置body元素的font-size属性,设置其他所有内容的font-size变得微不足道,因为100%= 10px。这也使得使用jQuery ui库变得更容易,因为它们使用相同的字体大小设置。
答案 2 :(得分:2)
如果您在ems
中设置内部div的字体大小,那就太微不足道了。如果你有这个......
.div2 {
font-size: 1.8em; /*180% of inherited font-size */
}
.div3 {
font-size: 1.4em; /*140% of inherited font-size */
}
...然后,如果您更改div1的font-size
,则.div2和.div3的font-size
会按比例更改。
答案 3 :(得分:1)
我认为你不能用css做到这一点,但如果有人知道如何善待我。
我能想到的唯一解决方案是嵌套它们,以便div2和div3的元素不会受到影响,这只会影响嵌套在div1元素下的div2和div3。
div.div2 { font-size:14px; }
div.div3 { font-size:12px; }
div.div1 div.div2 { font-size:12px; }
div.div1 div.div3 { font-size:10px; }
答案 4 :(得分:1)
使用javascript的基本想法:
var divs = document.getElementsByTagName('div');
for(int i = 0; i < divs.Length; ++i) {
var element = divs[i];
element.style.setAttribute('font-size', '2px'); //whatever you need to set it to
}
以上将改变每个div的字体大小。显然这可能不适合你...但你可以做一些事情来修改代码。您可以使用document.getElementById('id');
获取顶级div,然后在子节点上设置样式