如可处理英文内容在td div 中不换行用代码实现兼容IE、firefox

如何让td自动换行,在IE和firefox兼容
HTML中td元素的nowrap属性表示禁止单元格中的文字自动换行。
但使用时要注意的是,
td元素中nowrap属性的行为与td元素的width属性有关。
如果未设置td宽度,
则nowrap属性起作用的,
如果设置了td宽度,
则nowrap属性不起作用。
通过CSS让TD自动换行

项目中 ajax 应用需要动态创建element 但是在td内
内容过长 firefox 能自动换行,
ie6 比较傻瓜的!可以如下设置TD的CSS即可实现
<td style="word-break:break-all">
但是对于英文和数字来说,以上的设定在 IE6 下正常的换行,到了FireFox下不能换行了。
因为word-wrap不是css2的标准属性,
所以Mozilla不支持这个。
很多人用overflow将撑出的部分隐藏或者加滚动条,
但这样子肯定不是我们想到达到的效果,只能用JS实现换行。
用代码实现

无空格连续长字符,浏览器将它看成是一个长单词了,故实现不了自动换行,所以在你想换行的地方打个空格即可解决换行问题,用JS处理加入标点符号或者用空格隔开,就可以实现英文和数字的自动换行了。

1. 用JS实现
      <script type="text/javascript">
            function toBreakWord(intLen){
                  var obj=document.getElementById("yangbo"); /*这里的注意啦 就是给td或div 定义一个Id让其获得容器里的所有内容 如:<div id="yangbo"></div> <table><tr><td id="yangbo"></td></tr></table>*/
                  var strContent=obj.innerHTML;
                  var strTemp="";
                  while(strContent.length>intLen){
                        strTemp+=strContent.substr(0,intLen)+" ";
                        strContent=strContent.substr(intLen,strContent.length);
                  }
                  strTemp+=" "+strContent;
                  obj.innerHTML=strTemp;
            }
            function myLoad(){
                  if(document.getElementById && !document.all)toBreakWord(24);
            }
            window.οnlοad=function()
            {
                  myLoad();
            }
      </script>

      2. 在后台实现
        /// <summary>
        /// 方法名称:ToBreakWord
        /// 内容摘要:在长字符串中加入空格,使其在FireFix中能自动换行
        /// </summary>
        /// <param name="strContent">要显示的字符串</param>
        /// <param name="length">每行显示的长度</param>
        /// <returns>转换后的内容</returns>
        private string ToBreakWord(string strContent, int length)
        {
            //如果为空,则返回空字符串
            if (strContent == null)
            {
                return String.Empty;
            }
            //如果长度不够,则直接返回
            if (strContent.Length <= length)
            {
                return strContent;
            }
            string strTemp = String.Empty;
            //如果足够长,则在其中加入空格
            while (strContent.Length > length)
            {
                strTemp += strContent.Substring(0, length) + " ";
                strContent = strContent.Substring(length, strContent.Length-length);
            }
            strTemp += " " + strContent;
            return strTemp;
        }

其实用其它语言的话自己可以去想了 我用C#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值