2017-04-26 98 views
2

首先我为我的英语道歉。如果编辑们纠正我的错误,我很高兴。如何更改div中的所有字体大小?

在这里我的div和内容。

<div data-x="182" data-y="201" class="resize-drag" contenteditable="true" id="text-giris2" style="width: 115px; height: 153px; transform: translate(182px, 201px); position: absolute; text-align: left; overflow: hidden; border: 1px solid black;"> 
    <u style="font-size: 15px;">asd</u> 
    as a<b>sd</b> 
    <span>a<span style="color: red; font-size: 18px;">s a</span>sdas a 
    <span><span style="font-size: 18px;">sdasd 
    <span style="font-size: 26px;">addddddd</span></span></span></span> 
    </div> 

我想用唯一名称“text-input2”动态更改div元素中所有字体大小的大小。但是,它会发生什么不明确。如上所述,像<span>,<u>,<b>这样的标签可以是类似的。我想采取所有我想要做的字体大小的2倍。举个例子,我想有<span style = "font-size: 18px>之后的<span style =" font-size: 36px>同样,<u style = "font-size: 15px;">之后<u style = "font-size: 30px;">这样的事情可以用CSS来完成吗?如果这是不可能的,我会尝试使用Javascript,但我不知道从哪里开始。我在等你的帮助。谢谢。

+0

是JQuery的允许吗? –

+0

ye当然。 @TobyMellor –

+0

你只需要这个CSS或者可以有更多的可能性? –

回答

2

我在下面提供的代码将遍历所有包含在div中的元素,其编号为​​。在每次迭代中,它将采用当前字体大小并加倍。

$('#text-giris2').children().css('font-size', function(i, current){ 
    return parseFloat(current) * 2; 
}); 

一个例子

$('#container').children().css('font-size', function(i, current){ 
 
    console.log('New font size for ' + $(this).text() + ' is ' + parseFloat(current) * 2); 
 
    return parseFloat(current) * 2; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="container"> 
 
    <span style="font-size: 5px;">Hello</span> 
 
    <p style="font-size: 7px;">World</p> 
 
    <span>Foobar</span> 
 
</div>

+1

Ty sir你救了我的一天:) –

+1

你可以重写(为简洁)为:'$('#container')。children()。css('font-size' ,function(i,current){return parseFloat(current)* 2;});'因为jQuery的setter方法迭代集合中的每个元素,所以不需要使用'each()',并且'this'在匿名函数指向当前DOM节点,而“当前”变量指的是要设置或更新的属性的当前值(在操作之前)。 –

+0

@DavidThomas像魅力一样工作!感谢您的建议,我不知道这一点 –