在 用html+javascript打造公文一键排版系统10:单一附件说明排版 中,我们对附件说明的排版函数是:
function setAtttDescFmt(p)
{
var t = p;
var a = '';
if (-1 != t.indexOf(':'))//是半角冒号?
{
t = p.replace(':', ':');
a = g_sWarmPromptLeft + g_sWarmPromptTxt + "已将半角冒号转换为全角冒号" + g_sWarmPromptRight; //温馨提示
}
//公文如有附件,在正文下空一行左空二字编排"附件"二字,后标全角冒号和附件名称。
var sBlankLine = '
';
//var t = '' + t;
return sBlankLine + t + a;
}// setAtttDescFmt(p)
这在附件说明文字不超过一行时有效,当附件说明文字超过一行时,排版后会显示为下方图1中紫色方框中的形式:
图1
这是不符合公文排版中规定:
附件名称较长需回行时,应当与上一行附件名称的首字对齐。
也就是说,图1中紫色方框中的附件说明应该排版显示为下方图2中的紫色方框的形式:
图2
要实现图2中的紫色方框的形式这样的效果,我们先研究一下word中是如何实现的。在word中排好版:
图3
然后把它们复制到网页中查看源代码:
附件:河池市××关于××××××××××××××××××××××××××××××××××××××××××××××××××的通知
进行测试并剔除多余的代码后,真正有用的代码如下:
附件:河池市××关于××××××××××××××××××××××××××××××××××××××××××××××××××的通知
据此修改附件说明排版函数setAtttDescFmt(p)的代码:
function setAtttDescFmt(p)
{
var t = p;
var a = '';
if (-1 != t.indexOf(':'))//是半角冒号?
{
t = p.replace(':', ':');
a = g_sWarmPromptLeft + g_sWarmPromptTxt + "已将半角冒号转换为全角冒号" + g_sWarmPromptRight; //温馨提示
}
//公文如有附件,在正文下空一行左空二字编排"附件"二字,后标全角冒号和附件名称。
//var t = '' + t;//20230801停用
var t = '
' + t;//20230801增加
return sBlankLine + t + a;
}// setAtttDescFmt(p)
代码运行效果如下图4:
图4
排版的效果比图1要好许多,但与图2所示的效果还有差距。
研究测试css中关于换行对齐有关的属性,包括:text-align、text-align-last、text-justify、word-swap、word-break等,最终发现有效的是:
word-break: break-all;
把它加到附件说明排版函数setAtttDescFmt(p)的代码中:
function setAtttDescFmt(p)
{
var t = p;
var a = '';
if (-1 != t.indexOf(':'))//是半角冒号?
{
t = p.replace(':', ':');
a = g_sWarmPromptLeft + g_sWarmPromptTxt + "已将半角冒号转换为全角冒号" + g_sWarmPromptRight; //温馨提示
}
//公文如有附件,在正文下空一行左空二字编排"附件"二字,后标全角冒号和附件名称。
var sBlankLine = '
';
//var t = '' + t;//20230801停用
var t = '
' + t;//20230801增加
return sBlankLine + t + a;
}// setAtttDescFmt(p)
公文一键排版系统
调试信息