时间:2014-01-29 来源:

关于textarea的直观换行的一些研究材料

前两天研究了一下textarea的直观行的换行规律承接网站前端,挺复杂啊:

直观行怎样取不光要看cols大小,承接网站前端实际上每行可以容纳29个半角字符团队网页接活,多少个全角字符就不一定了,团队网页接活与网页编码方式有关.
在IE6.0实测的情况,手机网页制作直观行的换行发生在红字处(红字折到下一行).

dddddddddddd米ddddddddddddddddddddd //全角后面的连续半角内容被当成一个完整单词处理网页切图制作,如果剩下的位置容不下单词的长度了,网页切图制作就要换行div+css+js切图,此为特殊规律A

网页按Unicode编码(“运行代码”的弹出页面即按此编码,网页重构报价JS生成的页面均按此编码)时的一般规律是

(“占满”是说后面无论再跟全角、半角字符承接网站前端,都得换行)

123456789012345678901234567890 //29半角占满
一二三四五六七八九十一二三四五六七八九十 //17全角占满
一二三四五六七八九十一二三四五六七0八九十
一二三四五六七八九十一二三四五六0七八九十 
0一二三四五六七八九十一二三四五六1七八九十 //16全角,承接网站前端1半角占满
0一二三四五六七八九十一二三四五六七八九十
0一二三四五六七八九十一二三四五1六七八九十 //15全角psd切图html,2半角后不可容全角
01一二三四五六七八九十一二三四五六七八九十
01一二三四五六七八九十一二三四五2六七八九十 //15全角,psd切图html2半角后可再容1半角(多于1半角时按特殊规律A)
012一二三四五六七八九十一二三四五六七八九十 //15全角web外包,3半角占满
012一二三四五六七八九十一二三四五3六七八九十
0123一二三四五六七八九十一二三四五六七八九十 //14全角,div切图排版4半角后不可容全角
0123一二三四五六七八九十一二三四4五六七八九十 //14全角网页切图制作,4半角后可再容1半角(多于1半角时按特殊规律A)
01234一二三四五六七八九十一二三四五六七八九十 //14全角,网页切图制作5半角占满
01234一二三四五六七八九十一二三四5五六七八九十
012345一二三四五六七八九十一二三四五六七八九十 //13全角div+css+js切图,6半角后不可容全角
012345一二三四五六七八九十一二三6四五六七八九十 //13全角,div+css+js切图6半角后可容1半角(多于1半角时按特殊规律A)
0123456一二三四五六七八九十一二三四五六七八九十 //13全角承接网站前端,7半角占满
0123456一二三四五六七八九十一二三7四五六七八九十
01234567一二三四五六七八九十一二三四五六七八九十 //12全角,页面div重构8半角占满
01234567一二三四五六七八九十一二8三四五六七八九十
012345678一二三四五六七八九十一二三四五六七八九十 //11全角psd切图html,9半角后不可容全角
012345678一二三四五六七八九十一9二三四五六七八九十 //11全角,psd切图html9半角后可再容1半角(多于1半角时按特殊规律A)
0123456789一二三四五六七八九十一二三四五六七八九十 //11全角web外包,10半角占满

……

0一二三四五六七八九十一二三四五12六七八九十 //15全角,手机网页制作1半角后可再容2半角连续字符(多于2半角时按特殊规律A),此条可由15全角,div页面3半角占满得出

……

0一二三四五六七八九十一二三四1234五六七八九十 //14全角div+css+js切图,此条可由14全角承接网站前端,5半角占满得出

……

01一二三四五六七八九十一二三四234五六七八九十 //14全角,承接网站前端2半角后可再容3半角连续字符(多于3半角时按特殊规律A),此条可由14全角,承接网页制作5半角占满得出

……
换行位置不仅与换行位置之前的整行文字有关web外包,还与红字有关(往往全角文字是因为无法在上行末尾挤下才被折到下一行的).

总结一下就有:


CODE:[Copy to clipboard]x全角,手机网页制作y半角占满 = x全角网页切图制作,y-1半角后不可容全角 = x全角,网页切图制作y-n半角后可再容n半角连续字符(多于n半角时按特殊规律A).
所以做实验搞清楚所有“占满”的情形就可以了.

现将cols=30,网页按Unicode编码时的“占满”情况列出:

17全角
16全角,网页重构报价1半角
15全角承接网站前端,3半角
14全角,承接网站前端5半角
13全角psd切图html,7半角
12全角,psd切图html8半角
11全角web外包,10半角
10全角,div切图排版12半角
9全角网页切图制作,13半角
8全角,网页切图制作15半角
7全角div+css+js切图,17半角
6全角,div+css+js切图19半角
5全角承接网站前端,21半角
4全角,页面div重构22半角
3全角psd切图html,24半角
2全角,psd切图html26半角
1全角web外包,28半角
29半角

利用濒于发生按特殊规律A换行的情形,手机网页制作很容易测出所有“占满”的情形:
例如网页切图制作,一二三四五六七八九十012345678912一二三四五六七八九十 //10全角,div页面12半角占满
一二三四五六七八九十0123456789123一二三四五六七八九十 //红字处按特殊规律A换行div+css+js切图,蓝字处按9全角,div+css+js切图13半角占满换行

cols=30,网页按GB2312编码时,承接网站前端“占满”规律不同了:

14全角psd切图html,1半角
13全角,承接网页制作3半角
12全角web外包,5半角
11全角,手机网页制作7半角
10全角网页切图制作,9半角
9全角,网页切图制作11半角
8全角div+css+js切图,13半角
7全角,网页重构报价15半角
6全角承接网站前端,17半角
5全角,承接网站前端19半角
4全角psd切图html,21半角
3全角,psd切图html23半角
2全角web外包,25半角
1全角,div切图排版27半角
29半角

这样的话网页切图制作,通过实验具体才能测出“占满”规律.

从textarea内容的开头起计算全角和半角字符的数目div+css+js切图,根据“占满”规律及特殊规律A决定第一个直观换行的位置,div+css+js切图再从第二行(包括物理行和直观行)起计算全角和半角字符的数目承接网站前端,根据“占满”规律及特殊规律A决定第二个直观换行的位置……如是继续下去,页面div重构直到textarea内容的末尾.这样就可以得到所有的换行位置了.

当然实际应用时没必要也没可能这样做实验啦psd切图html,比如说选中textarea的第X行到第Y行,psd切图html还没了解官方的办法是怎样的web外包,我是这么办的:

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]


04 年初写的东西div+css+js切图,url, txt_obj) { var x, ctr); show_all(rng_sel, ctr_crt); show_all(rng_sel.getClientRects(), ctr_bcrt); show_all(rng_sel.getBoundingClientRect(), "").length; rng.moveToPoint(rng_sel.offsetLeft, -obj.value.length); try { r_count = rng.text.match(/\r/g).length; } catch(e) { r_count = 0; } cur_pos = rng.text.length; if_end = (rng.getBoundingClientRect().left == rng_sel.getBoundingClientRect().left); arr_sel = rng.text.split("\r\n"); p_row = arr_sel.length; p_col = if_end?0:arr_sel[arr_sel.length-1].length; var rct = rng.getClientRects(); v_row = rct.length; rng.moveToPoint(rct[v_row-1].left, -cur_pos); v_col = if_end?0:(cur_pos - rng.text.length); if(v_col - p_col == 2) v_col = p_col; err.value = ""; }catch(e){ show_all(e, cur_pos - r_count); rng.collapse(true); rng.moveEnd('character', s_len); rng.select(); show_txt_pos(); return; } function show_txt_pos() { cur_pos_show.innerText = cur_pos - r_count; p_row_show.innerText = p_row; p_col_show.innerText = p_col; v_row_show.innerText = v_row; v_col_show.innerText = v_col; return; }

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
根据被某网站匿名转载的页面( http://dl.pconline.com.cn/html_2/4/545/id=38457&pn=0.html )上的网友留言,网页切图制作上面的《JS实现文本域的任意行选定》示例代码有一处bug:即在滚动条不在顶端的情况下运行示例代码会出错.现已修正:只增加了一行代码


CODE:
src.scrollTop=0 //确保开始数行数时滚动条位于顶部

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
点击次数:10845
作者:
web前端行业资讯
Web new NewsList
英特尔宣布与法拉利跨界合作欲将AI技术用于赛车运动 ,,2018年01月11日甲骨文服务器出漏洞:攻击者用漏洞挖矿获取加密货币 ,,2018年01月11日用深度学习设计图像视频压缩算法:更简洁、更强大 ,,2018年01月11日Ubuntu内核和NVIDIA更新:修复Meltdown和Spectre两处漏洞 ,,2018年01月11日AntDesign3.1.1发布,阿里企业级UI设计语言 ,,2018年01月11日微信「跳一跳」带火小游戏,开发者如何快速上手? ,,2018年01月11日谷歌公布最新安卓系统份额:你用上奥利奥了么? ,,2018年01月11日腾讯开发出“3D音效”算法:普通耳机实现3D实时语音效果 ,,2018年01月11日谷歌工程师点赞中国程序员实现Node.js启动超4倍提速 ,,2018年01月11日三星电子总裁兼CE部门负责人金炫奭:万物互联时代到来 ,,2018年01月11日NVIDIA和大众合作建立智能驾驶助手 ,,2018年01月11日GIMPS项目报告发现已知最大素数 ,,2018年01月11日微软与生物技术公司开展AI驱动的血液检测同时诊断数十种疾病 ,,2018年01月11日微软跨平台移动开发工具套件HockeyApp宣布免费 ,,2018年01月11日《硅谷》里神乎其神的压缩技术,AI正在一点点做出来 ,,2018年01月11日LinuxMint19代号敲定为“Tara”预计2018年5月至6月期间发布 ,,2018年01月11日Facebook发布wav2letter工具包,用于端到端自动语音识别 ,,2018年01月11日开源数据库ArangoDB正进行约1156万美元股权融资 ,,2018年01月11日IntelCPU漏洞闹大:腾讯云紧急升级 ,,2018年01月11日2018年1月全球数据库排名:Redis夺回第八 ,,2018年01月11日Lyft将联手无人驾驶公司于CES上展示无人驾驶汽车 ,,2018年01月11日京东X无人超市首家社会门店开业:刷脸进、微信自动结算 ,,2018年01月11日担心被AI取代是杞人忧天?高晓松跨年演讲说的有几分对 ,,2018年01月11日免费授权技术许可Intel宣布在未来CPU中集成雷电3 ,,2018年01月11日算法决定你在社交媒体上看到的信息 ,,2018年01月11日谷歌安全博客披露“英特尔内核漏洞”更多细节 ,,2018年01月04日Postgres10开发者新特性 ,,2017年12月28日阿里巴巴、狗尾草、苏大联合论文:基于对抗学习的众包标注用于中文命名实体识别 ,,2017年12月28日柯洁的2017:20岁,与AI斗与人类斗,其乐无穷 ,,2017年12月28日如果机器人拥有痛觉,这个世界会有哪些不一样? ,,2017年12月28日ASP漏洞全接触-进阶篇2014年01月29日出来混·早晚都得还---旧美的再次学习【综合】2015年02月02日D-StringSuccessor 【编程语言】2015年03月09日phpfile_get_contents函数轻松采集html数据2014年01月29日RabbitMQ基础 【编程语言】2015年07月14日【Golang】从零开始写SocketServer(4):将运行参数放入配置文件(XMLYAML) 【移动开发】2015年08月29日Androidtouch事件的分发和消费机制 【移动开发】2015年01月29日Ubuntu16.04LTS安装好之后需要做的15件事 1,收藏 ,,2016年06月23日Tigase开发笔记2:Tigase组件详解 【编程语言】2015年08月29日Struts2中的缓存----以Injector为例 【编程语言】2015年01月24日ios开发设计电影院 【移动开发】2015年07月20日在Cocos2d-X3.0中实现多点触摸【移动开发】2015年04月13日AndroidApp层通过JNI从驱动获取InputEvent【移动开发】2014年12月30日3880元的嘉缘人才管理系统(商业版)提供下载2014年01月29日js如何取消事件冒泡2014年01月29日Android图片截取人物头像(仿逗拍) 【互联网】2015年03月24日认识Cocos2dx3.x2016年11月15日模仿OSO的论坛(五)2014年01月29日解决asp.netajaxsys未定义的解决方法2014年01月29日【bzoj1026】【SCOI2009】【windy数】【编程语言】2015年08月17日cvUserdata 【编程语言】2015年06月29日Hausdorff距离—曲线点集间距离度量 【Web前端】2015年08月28日微信公共号开发者中心(JAVA)【token失败解决办法】【编程语言】2015年08月25日最详细的SQL注入相关的命令整理(转)2014年01月29日CSU1566:TheMazeMakers(BFS) 【移动开发】2015年04月08日redis源码学习(复制Replication)【架构设计】2015年01月19日php随机排序广告的实现代码2014年01月29日C++实用泛型编程之虚拟函数(C++virtualfunction)杂谈 【Web前端】2014年12月03日windows下开发并编译PHP扩展的方法2014年01月29日多线程为什么跑的比单线程还要慢的情况分析及验证 【编程语言】2015年03月12日
我们保证
We guarantee
> psd效果文件手工切图,保证图片效果最好体积最小利于传输
> 100%手写的HTML(DIV+CSS)编码,绝对符合W3C标准
> 代码精简、css沉余量小、搜索引擎扫描迅速,网页打开快捷
> 应用Css Sprite能够减少HTTP请求数,提高网页性能
> 跨浏览器兼容(IE6、7、8、9,Firefox火狐,Chrome谷歌)