html里title属性换行的方法

众所周知,对于链接和图片,我们可以通过添加title 属 性以显示一些说明文字,一般情况下,这些文字都是显示成一行,那么有没有办法让它以多行的方式显示呢?解决的方法有两种:

1.将title 属 性分成几行来写,例如:
<a href=#" title ="说明一
说明二
说明 三">印象派</a>

2.第一行相对来说不够直观,我们还可以在需换行 的地方添加&#10;(将&改为 半角,下同)或&#13;来实现:
<a href=#" title ="说明一&#10;说明二&#10;说 明三">印象派</a>
<a href=#" title ="说明一&#13;说明二&#13;说 明三">印象派</a> 

 ==================

response.write " title='标    题:" & rsArticleList("Title") & vbcrlf & "作    者:" & rsArticleList("Author") & vbcrlf & "转 贴 自:" & rsArticleList("CopyFrom") & vbcrlf & "更新时间:" & rsArticleList("UpdateTime") & vbcrlf
   response.write "点 击 数:" & rsArticleList("Hits") & vbcrlf & "关 键 字:" & mid(rsArticleList("Key"),2,len(rsArticleList("Key"))-2) & vbcrlf & "推荐等级:"

直接换行就可以

======================= 

<a href='/news/detail/159.html' target='_ablank' title='标    题:fadfasdf
作    者:佚名
转 贴 自:本站原创
更新时间:2007-3-14 10:31:00
点 击 数:0
关 键 字:fdafdddfa
推荐等级:无
分页方式:不分页
阅读等级:游客
阅读点 数:0'>fadfasdf</a>
   <div title="123&quot;&#10;456">text</div>
   <p><a href=#" title="说明一&#10;说明二&#10;说明三">印象派</a>
                <a href=#" title="说明一&#13;说明二&#13;说明三">印象派</a></p>

===========================

function decodeHTML(fString)
if not isnull(fString) then
    fString = replace(fString, "&gt;", ">")
    fString = replace(fString, "&lt;", "<")

    fString = Replace(fString, "&nbsp;", CHR(32))
    fString = Replace(fString, "&nbsp;", CHR(9))
    fString = Replace(fString, "&quot;", CHR(34))
    fString = Replace(fString, CHR(39),"&#39;")
    fString = Replace(fString, "</P><P> ",CHR(10) & CHR(10))
    fString = Replace(fString, "<BR> ", CHR(10))
    decodeHTML = fString
end if
end function

function encodeHtml()

替换成unicode字符就可以

end function

=================================

以下为转出网上

今天在写插件时,需要在一段字符的title属性里加入一大段文字。字符串本身用UNIX行尾符LF换行。我直接输出字符串,发现在IE和 Firefox下都可以显示出断行。

<div title="123
456">text</div>

不过,Firefox的Html Validator扩展报了错。在网上搜了一圈,这里 提到:

The (X)HTML DTDs define the contents of the title attribute as CDATA for which the W3C states:
User agents should interpret attribute values as follows:

  • Replace character entities with characters,
  • Ignore line feeds,
  • Replace each carriage return or tab with a single space.

大概的意思是,XHTML DTD定义title属性为一个CDATA,而根据SGML里CDATA的定义,浏览器应该:替换所有html实体;忽略LF字符;替换所有CR字符和 tab字符为一个空格。

按照W3C的说法,执行这3步后,所有的CR和LF字符已经他们的html实体都已消失或变成空格了。看起来在title里换行变成不可能的事了。 不过,Firefox好像并没有转换CR字符为空格,而是把CR给忽略了。而LF字符倒是没有被处理,直接换行了。上面的代码,不用UNIX行尾符LF, 而是用Mac行尾符CR,在IE下还能换行,但是在Firefox下,CR字符直接被忽略了。我还是很想通过W3C的验证,所以做了一下测试,使用LF字 符或者LF的html实体& #10; 都 是可以的。网上流传说可以用CR的html实体& #13;,其实只是IE中可以,Firefox下一样不行。如果不追求符合W3C,那还不如直接把字符串转成UNIX行尾符输出呢。

<div title="123& #10;456">text</div>


还有,title里有小于号和单引号好像并不要紧,但是有双引号就不行了。这么说来,把字符串里的换行和双引号给替换一下输出就行了?唉,复杂复 杂,晕了。这里 有一个介绍这方面问题的页面,不过没太看懂。

发现CR的全称是Carriage Return,Carriage是字车的意思,Carriage Return意思是字车复位。LF的全称是Line Feed,喂进一行,就是新起一行的意思。这起源于打字机时代,每打到一行的末尾,打字员要手工把字车推回第一列,字车复位后,纸会上升一行。所以就有了 ASCII码值为13的CR和ASCII码值为10的LF两个字符。而DOS和Windows下文本文件的新行用CR和LF两个字符表示,UNIX下用 LF,Mac下用CR。呼,这些资料大概在上个世纪我就知道了,不过一直记不住两个字符的ASCII码是多少,现在复习一遍,这下我应该能记住了。[via ]

P.S. 好像C++里"/n"在Windows下输出CRLF,在UNIX下输出LF,而"/r"输出CR。PHP里是"/n"输出的是LF,"/r"输出的是 CR。

阅读更多
上一篇解决MYSQL出现Can't create/write to file '#sql_5c0_0.MYD'
下一篇OSGi是什么:Java语言的动态模块系统
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭