div内的中英文字符串换行问题

用HTML加javascript实现打字机样的效果…当字符串为英文时无法自动换行…中文时可以自动换行

div内的中英文字符串换行问题

<?xml version="1.0" encoding="utf-8" ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

    <title> test typing </title>

    <script type="text/javascript" src="js/temp.js">

    </script>

</head>

<body>

    <div id="myDiv" style="width:200px; height:100px; border:2px #ccc dashed; padding:10px"></div>

    <script>

        var typingText = "abcdefghijklmnopqrstuvwxyzwhy中文字符可以自动换行不会超过边框";

        var count = 0;

        var myBlock = document.getElementById("myDiv");

        function type(){

            if(count <= typingText.length){

            myBlock.innerHTML = typingText.substring(0, count);

            count++;

        }else{

            window.clearInterval(intervalID);

            }

        }

        var intervalID = window.setInterval(type, 200);

    </script>

</body>

</html>

原因:
对于长英文或数字,浏览器认为一个单词,html默认是不会回车换行的,所以没有将其换行处理。可以通过css样式来实现换行的效果 
css code: word-wrap:break-word;overflow:hidden;
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head>
<style type="text/css">
* {
word-wrap: break-word;
}
</style>
</head>
<body>
<table width="100%" border="0" cellpadding="3" cellspacing="1" style="border:1px solid #CEDFF5;" bgcolor="#DFE8F6">
<tr bgcolor="#FFFFFF">
    <td align="center" nowrap width="300">
        <table width="100%" border="0" cellpadding="0" cellspacing="0" style="word-break:break-word,white-space: -moz-pre-wrap;table-layout:fixed;">
            <tr><td>BEHxyJHptKZ4GsvQe2oeyX_lNGwlMNmRENPvGs2qiO_Ej7yOj7VBPB8AmXzgyGB4be测试测试测试测试</td></tr>
        </table>
    </td>
</tr>
</table>
</body>

相关推荐