`
喜马拉雅上的小草
  • 浏览: 50454 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript实现的一个自定义长度的文本自动换行的函数。

阅读更多
很多朋友在制作网页过程中总是发现某些时候一些英文会把原来好好的表格撑开而导致变形,虽然可以使用style="table-layout:fixed;word-wrap:break-word;word-break:break-all" 来解决这个问题,但有些时候会导致内容显示不完整而被隐藏了起来,并没有做到自动换行的效果。

于是偶就想写一个这样的函数来修补这个缺陷,这个函数很简单,但这里只是提供一种思路来解决这个问题。

function fnAddBr(id, iPerLineLen){.....}
id为要修改的文本块的id,iPerLineLen为每行的长度

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> 
<title>Untitled Document</title> 
</head> 
<body> 
<script type="text/javascript">     
//函数功能:在指定长度处自动添加换行符,以英文长度为准,及8代表8个英文或4个汉字 
     function fnAddBr(id, iPerLineLen){ 
        var sStr=document.getElementById(id).innerHTML; 
        if(sStr.replace(/[^\x00-\xff]/g,"xx").length <= iPerLineLen){ 
            return -1; 
        } 
     
        var str=""; 
        var l=0; 
        var schar; 
        for(var i=0;schar=sStr.charAt(i);i++){ 
            str+=schar; 
            l+=(schar.match(/[^\x00-\xff]/)!=null?2:1); 
            if(l>= iPerLineLen){ 
                str+="
\n"; 
                l=0; 
            } 
        } 
        document.getElementById(id).innerHTML=str; 
    } 
    </script> 
<div id="content" style="border:1px solid #ccc"> 
我在做网页的时候添加的内容在生成网页后总是横向把表格撑的很宽,很难看;  
我在加了  
style="table-layout:fixed;word-wrap:break-word;word-break:break-all"  

这个代码后,表格倒是不会撑宽了,可是内容又显示不完全了,只是显示表格一样的宽度的内容,其他的被遮挡或是过滤掉了。  
我的是汉字,这个有关系吗?  

请问有什么方法可以让在表格中的文字到多少字的时候就自动换一行?或是能换行又不撑大表格,而且不略去内容!  

我的内容是在动易中调用的这个标签! 
</div> 

<div id="content1" style="border:1px solid #ccc"> 
我在做网页的时候添加的内容在生成网页后总是横向把表格撑的很宽,很难看;  
我在加了  
style="table-layout:fixed;word-wrap:break-word;word-break:break-all"  

这个代码后,表格倒是不会撑宽了,可是内容又显示不完全了,只是显示表格一样的宽度的内容,其他的被遮挡或是过滤掉了。  
我的是汉字,这个有关系吗?  

请问有什么方法可以让在表格中的文字到多少字的时候就自动换一行?或是能换行又不撑大表格,而且不略去内容!  

我的内容是在动易中调用的这个标签! 
</div> 

<script type="text/javascript"> 
    fnAddBr("content",25); 
    fnAddBr("content1",50); 
</script> 
</body> 
</html>
分享到:
评论

相关推荐

    javascript 一个自定义长度的文本自动换行的函数

    于是偶就想写一个这样的函数来修补这个缺陷,这个函数很简单,但这里只是提供一种思路来解决这个问题。 function fnAddBr(id, iPerLineLen){…..} id为要修改的文本块的id,iPerLineLen为每行的长度 &lt;!...

    canvas绘制文本内容自动换行的实现代码

    本文将详细介绍如何使用JavaScript编写一个函数,实现在Canvas上绘制文本内容时自动换行。 首先,我们需要理解Canvas API中的`fillText()`方法,它是用来在Canvas上填充文本的。但这个方法不支持文本换行,所以我们...

    动态计算文本宽度,文本换行

    在IT行业中,尤其是在UI设计和前端开发领域,动态计算文本宽度和自动换行是一个常见的需求。这涉及到如何在有限的空间内有效地展示文本内容,确保布局的美观和用户体验的友好。以下将详细介绍这一知识点。 首先,...

    D3.js封装文本实现自动换行和旋转平移等功能

    在D3.js中,处理文本布局时,尤其是涉及到自动换行和旋转平移,可能需要编写一些自定义函数来实现这些高级效果。本文将介绍一个名为`appendMultiText`的函数,它能够帮助我们在SVG中轻松地创建自动换行的多行文本,...

    自动折行函数

    在实现自动折行的PB函数时,一般会考虑以下几个关键点: 1. **宽度限制**:确定单行的最大字符数或像素宽度。 2. **折行规则**:根据单词边界还是固定字符数进行折行。 3. **特殊字符处理**:如何处理非英文字符,...

    程序天下:JavaScript实例自学手册

    6.5 从一个下拉列表往另一个下拉列表添加内容 6.6 改变列表项的上下顺序 6.7 给下拉框数据分组 6.8 获取列表框的选择 6.9 类IE下拉框 6.10 下拉框式邮件发送 6.11 获取多选框的选择项 6.12 手动调整的列表框 6.13 ...

    IP地址输入正则验证ip插件.zip

    在"jQuery IP地址输入正则验证ip插件"中,开发者可能创建了一个自定义的jQuery函数或插件,通过绑定到输入框的事件,如`input`或`blur`,实时检测用户输入的IP地址是否符合预设的正则表达式。插件的实现可能包括以下...

    《程序天下:JavaScript实例自学手册》光盘源码

    6.5 从一个下拉列表往另一个下拉列表添加内容 6.6 改变列表项的上下顺序 6.7 给下拉框数据分组 6.8 获取列表框的选择 6.9 类IE下拉框 6.10 下拉框式邮件发送 6.11 获取多选框的选择项 6.12 手动调整的列表框 6.13 ...

    基于JavaScript实现文字超出部分隐藏

    接下来是JavaScript部分,这里用到了一个名为`getByClass`的自定义函数。这个函数的作用是在给定的父元素`oParent`中找到所有具有特定类名`sClass`的子元素。在非IE浏览器中,我们可以直接使用`...

    JavaScript获取中英文混合字符串长度的方法示例

    在JavaScript中,处理中英文混合的字符串长度是一个常见的需求,特别是在网页表单验证或文本处理时。由于中文字符和英文字符在计算机内部表示的方式不同,一个英文字符通常占用1个字节,而一个中文字符则占用2个字节...

    js简单实现让文本框内容逐个字的显示出来

    `MArray` 是一个自定义的构造函数,用于创建一个数组,存储要逐字显示的文本。在示例中,`fArray` 被用来存储四条不同的欢迎语句。`x` 和 `y` 分别用来跟踪当前显示的字符位置和文本数组的索引。 `newsSee` 函数是...

    定宽文本域

    不过,由于Flash不直接支持在文本超出宽度时自动添加省略号,我们通常需要自定义一个函数来实现这一功能: ```actionscript function addEllipsis(textField:TextField):void { var originalText:String = ...

    ExtJs高级技巧

    在ExtJs开发中,特别是在处理`GridPanel`时,如何使列的宽度根据数据长度动态调整是一个常见的需求。传统的做法是手动设置列宽,但这在数据长度不一的情况下显得力不从心。本技巧提供了一种方法,让列宽能够随数据...

    107个常用Javascript语句

    - **功能**:将输入框中的文本转换为大写并显示在另一个输入框中。 - **应用场景**:文本处理或格式化。 - **示例代码**: ```javascript document.getElementById("output").value = document.getElementById(...

    Javascript技术笔记3

    这里,列表项前的符号被设置为方形(`square`),标记位于列表项文本内部(`inside`),并且使用了一个自定义的图片(`marker.png`)作为标记。 **1.3 `text-decoration` 属性** `text-decoration` 属性用于设置文本的...

    Gridview使用.doc

    GridView实现自动编号 自动编号可以通过在Gridview的模板列中插入一个计算字段实现。这个计算字段可以基于当前行的索引或数据库中的自增ID。 #### 9. GridView实现自定义时间货币等字符串格式 Gridview允许对...

Global site tag (gtag.js) - Google Analytics