JS 字体放大缩小 大家都知道 是通过改变CSS来实现。OK ,现在问题来了:
<div id="123">
 <span ID="456" style="font-size:20px">fsdfsd</span>
</div>如果ID = 123的标签里 又有标签ID=456,所以如果改变ID=123标签的字体大小 那字体就不会发生变化
我想改变ID=123标签下的所有字体大小  有好方法吗

解决方案 »

  1.   

    只需要控制 <div id="123">里面的字体大小。
    但要注意 <div id="123">里面还有会有标签
      

  2.   

    要改变某个元素标签里的字体或样式的时候,其内部元素不能再带有样式字体了,否则每增加或减少一次字体的这种改变样式的操作都会重新加一次,其内部元素如果带有该样式,改变将不起作用,所以,要产生作用就必须把
    <span ID="456" style="font-size:20px">fsdfsd</span>
    改为:
    <span ID="456">fsdfsd</span>
    不带样式的!
    这样在外层DIV 123里定义的字体就能作用到内部的SPAN里了。
      

  3.   

    如果你希望她带有样式,而又不希望它影响你的字体改变等样式操作,那么你可以把style="font-size:20px"放入CSS文件里,然后在HTML页里导入这个CSS文件即可!仅供参考,以上结论未经测试,你可以自己去测试下!
      

  4.   

    放入css文件中会比较好。
    如果一定要这样改的话,可以先设置id=123的children的fontSize为null,然后设置id=123的fontSize。
    以上结论未经测试,你可以自己去测试下。
      

  5.   

    用JS遍历<div id="123">里面的所有可能涉及到的标签,然后一一去设置其字体大小。http://www.woiweb.net
      

  6.   

    难道你问的问题不是如何让SPAN大小字体也起作用吗?给你个例子,自己测试马上起作用!
    <html>
    <head>
    <title>example</title>
    <script type="text/javascript">
    window.onload=function(){
    var btn=document.getElementById('btn');
    var ft=20;
    btn.onclick=function(){
    ft++;
    document.getElementById('div1').style.fontSize=ft+'px';
    }
    }
    </script></head>
    <body>
    <div id="div1">
     <span ID="span1" >fsdfsd</span>
    </div>
    <input type="button" value="+fonsize" id="btn">
    </body>
    </html>
    如果楼主问的不是如何让SPAN大小字体也起作用?那你到底想问的是什么呢?无语!
      

  7.   

    <style type="text/css">
    .a{ font-size:12px}
    .a .b{ font-size:14px}
    .a .c{ font-size:16px;}
    </style><div class="a">
        <div>这里是12号字体</div>
        <div class="b">这里是14号字体</div>
        <div class="b c">这里是16号字体</div>
    </div>
      

  8.   


       你问:我想改变ID=123标签下的所有字体大小 有好方法吗?
       回答:上面的代码你在DIV(ID=123)里哪怕嵌套1万个标签(只要你能)都照样能改其内部的字体大小。前提只要你不在里面设置跟字体相关的操作样式!如果一定要设置,就让它继承BODY的字体大小,不要给标签元素单独设置字体大小!
       实测,我的代码已经满足了你说的某标签下,改变所有的字体大小,所以赶快给分,别给我饶弯子啊,问完一个又一个,做人要讲诚信,不能贪心啊,否则你这样一个又一个的问题,就跟结帖率一样,没信用了!除非你否定:我想改变ID=123标签下的所有字体大小 有好方法吗?这个不是你问的!靠。哈哈!
      
      

  9.   

    lz问的是如何在子标签也具有style属性或者有外部css引用的情况下,改变字体css的执行顺序是由外向里。先执行外部css,再执行style。先执行外部的标签样式,再执行内部标签样式。换句话说,ls所说的,写在css外部文件的方法是不可能成功的。因为style属性会覆盖外部css样式,内部的style属性会覆盖外部的style属性。使外部标签的style在内部不能继承。综上,lz所说的只能通过递归来实现了。<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript">
    function zoomOut(size) {
    var test = document.getElementById('test');
    setFontSize(test, size);

    } function setFontSize(target, size) {
    target.style.fontSize = size;
    if (target.childNodes.length == 0) {
    return;
    }
    for (var index = 0; index < target.childNodes.length; index++) {
    if (target.childNodes[index].nodeType == 1) {
    setFontSize(target.childNodes[index], size);
    }
    }
    }

    </script>
    <style type="text/css">
    .child {
    font-size:20px;
    }</style>
    </head>
    <body>
    <input type="button" onclick="zoomOut('30px');"/>
    <div id="test">
     <span ID="child" class="child">fsdfsd</span>
     <div>test</div>
    </div>
    </body>
    </html>
      

  10.   

       呵呵,再给你补充2个你可能会问的问题!
       问:也许你会问,那么不能在其内部添加字体样式,我该怎么办呢?
       回答:你可以用继承,让其所有内部的元素字体继承外部的标签字体大小!
       问:也许你会问,我想在其内部添加各种字体和大小!
       回答:如果你想在其所有子元素里加各种字体大小,那么就根本不可能完成统一的字体大小变化!看看DOM和CSS的关系,以及他们的执行顺序,这些问题就一目了燃了。
      

  11.   

    这个可以解决内部带字体样式的问题,不过如果用jquery框架,会让代码更简单,核心函数就是这个:
     for (var index = 0; index < target.childNodes.length; index++) {
                if (target.childNodes[index].nodeType == 1) {
                    setFontSize(target.childNodes[index], size);
                }
    这次应该可以圆满解决你的问题了。快散分吧,刘德华兄弟!
    全给这个高手rainsilence,我也没意见!哈哈!