请问,我想用JS分别定义同一个DIV中的中文和英文样式,如何实现啊?

解决方案 »

  1.   

    貌似这种要求无法直接设置
    不过可以实现
    将div中的字拿出来,var str=div1.innerText;
    然后再判断中英文,分别设置样式
      

  2.   

    是要使用中英文切换吗?
    写一个中文的样式,在写一个英文的样式
    然后使用cssclass动态更换
      

  3.   

    不需要切换。不过:貌似这种要求无法直接设置 
    不过可以实现 
    将div中的字拿出来,var str=div1.innerText; 
    然后再判断中英文,分别设置样式
    这个可以再写详细点吗?判断是如何写?再怎么分别拿出来?谢谢!!!
      

  4.   

    不好意思,其实早上就看到了,不过今天公司事太多,只能等下班
    下面代码IE测试通过
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>new page</title>
    <script>
    function setCH_EN_style(str){
    //设置中英文样式
    var chineseStyleBefore='<font face="隶书" size="4" color=red>';
    var chineseStyleAfter='</font>';
    var englishStyleBefore='<i><font color=green face="Comic Sans MS">';
    var englisheStyleAfter='</font></i>';
    var chineseOrEnglish=str.charCodeAt(0)>128?true:false;
    var chinese="";
    var english="";
    var str1="";
    for(var i=0;i<str.length;i++){   
    if(str.charCodeAt(i)>128){
    if(chineseOrEnglish){
    if(english!="")
    str1+=englishStyleBefore+english+englisheStyleAfter;
    english="";
    }else{
    chineseOrEnglish=true;
    }
    chinese+=str.charAt(i);  
    }else{
    if(!chineseOrEnglish){
    if(chinese!="")
    str1+=chineseStyleBefore+chinese+chineseStyleAfter;
    chinese="";
    }else{
    chineseOrEnglish=false;
    }
    english+=str.charAt(i);   
    }
    }
    if(chinese!="")
    str1+=chineseStyleBefore+chinese+chineseStyleAfter;
    if(english!="")
    str1+=englishStyleBefore+english+englisheStyleAfter;
    return str1;
    }
    </script>
    </head><body>
    <div id=div1>中文,english,中文,<font color=blue>english</font>,中文,english</div>
    </body>
    <script>
    var d=document.getElementById("div1");
    var str=d.innerHTML;
    //去掉html标签
    str=str.replace(/<(.*?)>/g,"");
    alert("调用函数前!\n"+str);
    d.innerHTML=setCH_EN_style(str);
    </script>
    </html>
      

  5.   

    直接使用CSS的字体设置特性,font-family:arial, 黑体; 象这样的CSS设置,英文优化使用 arial 定义,而中文就会自动使用“黑体”。
    你要在JS里动态改,那就直接改 document.getElementById("mm").style.fontFamily="arial, 宋体";
      

  6.   

    以前我也试过,因为中文、英文、其它字体、其它特殊字符都想有一个自己认为满意的字体表形,例如:我のmidi……以上这个很明显,当“の”用中文字体或者Tahoma都好看,但“……”用Tahoma就会变成“......”,但用vardana的话“の”又不好看,而用中文字体的话“midi”的英文又会变得看不清,没有英文字体那样宽大好看。暂时只能好像5楼那样或者用unicode来分开了。好像csdn里面的英文和中文就好像用两种字体似的,高低不等,疑惑中..
      

  7.   

    给英文字体都会这样如JS如何分别定义同一个DIV中的中英文字体样式? [Web 开发]
      

  8.   

    哦根字体没关系。有一个样式才会出现这情况:a {vertical-align: middle;}
      

  9.   

    并且这效果只会在IE里出现 ,FF,OP都不会出现
      

  10.   

    其实没什么,只是觉得奇怪,还想不到a标签也支持vertical-align,但觉得csdn这样设不好看。
      

  11.   

    这个 是可以的
    主要 是设置 英文的 class我以前找到过 一个简单的正则 (不懂正则)
    再加上点限制 把什么 单引 双引 / 等 再搞一下
    函数也很简单找不到了
    英文 arial 中文黑体  最后所有的连续的 英文字符串 和 比较特殊的字符 都会
    <span class="en">myWords$$^*/</span>

    效果还不错上面梅花雪说的
    ---------------------------
    直接使用CSS的字体设置特性,font-family:arial,   黑体;   象这样的CSS设置,英文优化使用   arial   定义,而中文就会自动使用“黑体”。
    ---------------------------
    这个 可能跟 文件编码 有关
    我在utf_8
    当时是不行的(中文会是宋体)  也没试过 gb2312
    不知有没有人 仔细研究过
      

  12.   

    目前 我只用 lihui_shine 浪尖赏花 这位朋友的方法实现过!