工作中经常碰到一些由于排版问题而无法显示完整的标题
如:
- 这是一条新闻啊啊啊啊…
- 这是一条新闻啊啊啊啊…
- 这是一条新闻啊啊
最近正好遇到相关问题,总结出以下解决方法
CSS:以前就用过,效果一般,仅ie6支持
- <style>div{width:100px;text-overflow:ellipsis;overflow:hidden;white-space: nowrap;}</style>
- <div>我有多长我有多长我有多长我有多长我有多长我有多长</div>
- <div>我有多长我有多长我有多长我有多长我有多长我有多长</div>
- <div>我有多长我有多长我有多长我有多长我有多长我有多长</div>
javascript::今天上班时候搞的,原来js有substring啊
- <script language="JavaScript">
- <!–
- var str="有多长我有多长我有多长我有多长我有多长";
- if (str.length<=5){
- document.write(str);}
- else{
- document.write(str.substring(0,5)+"…");}
- //–>
- </script>
VBS:这个我也不了解,感觉和js类似
- <script language=vbs>
- function phxLeft(s,u)
- tempLeft=left(s,u)
- Set regEx = New RegExp
- regEx.Pattern="$[$^\x00-\xff$]$"
- regEx.IgnoreCase = True
- regEx.Global = True
- Set Matches = regEx.Execute(tempLeft)
- n=u-round(Matches.Count/2)
- phxLeft=left(s,n)
- end function
- msgbox phxLeft("有多长我有多长我有多长我有多长我有多长",5)
- msgbox phxLeft("abcdefgggsadabsnuh",10)
- </script>
asp:这个有问题,中英文混排就糟了,目前还没想到解决办法
- <%
- text=rs("title") '将数据库字段值赋到某变量上
- i=20 '定义固定大小
- if len(text)>i then '如果文本长度大于给定的值
- text=left(text,i) '则提取前段的i位的字符串
- response.write (text&"…")
- else
- response.write (text)
- end if
- %>
今天工作上正好用到.伪单点登录….只是把同一个表单发到不同的页面而已
先写2个函数,用来将action的url分开
- <script Language="JavaScript">
- function aa1()
- {
- document.form1.action="login.jsp"; //这是第一个
- document.form1.submit();
- }
-
- function aa2()
- {
- document.form1.action="chklogin.jsp";//这是第二个
- document.form1.username.value=form1.userid.value //name不同,所以要把另外一个里面的value搞过来
- document.form1.password.value=form1.userpassword.value //密码也是一样要搞过来
- document.form1.submit();
- }
- </script>
(更多…)
之前看过一篇《CSS的Expression,尚难拥抱》,揣测这东东一定不太好用。最近又看到有关的东西,记录下来就当学习吧。
定义:
IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javas cript表达式关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性。就是说CSS属性后面可以是一段Javas cript表达式,CSS属性的值等于Javas cript表达式计算的结果。 在表达式中可以直接引用元素自身的属性和方法,也可以使用其他浏览器对象。这个表达式就好像是在这个元素的一个成员函数中一样。
给元素固有属性赋值
例如,你可以依照浏览器的大小来安置一个元素的位置。
- #myDiv {
- position: absolute;
- width: 100px;
- height: 100px;
- left: expression(document.body.offsetWidth - 110 + "px");
- top: expression(document.body.offsetHeight - 110 + "px");
- background: red;
- }
给元素自定义属性赋值
例如,消除页面上的链接虚线框。 通常的做法是:
- <a href="link1.htm" onfocus="this.blur()">link1</a>
- <a href="link2.htm" onfocus="this.blur()">link2</a>
- <a href="link3.htm" onfocus="this.blur()">link3</a>
粗看或许还体现不出采用expression的优势,但如果你的页面上有几十甚至上百个链接,这时的你难道还会机械式地Ctrl+C,Ctrl+V么,何况两者一比较,哪个产生的冗余代码更多呢?
采用expression的做法如下:
- <style type="text/css">
- a {star : expression(onfocus=this.blur)}
- </style>
- <a href="link1.htm">link1</a>
- <a href="link2.htm">link2</a>
- <a href="link3.htm">link3</a>
说明:里面的star就是自己任意定义的属性,你可以随自己喜好另外定义,接着包含在expression()里的语句就是JS脚本,在自定义属性与expression之间可别忘了还有一个引号,因为实质还是CSS,所以放在style标签内,而非s cript内。OK,这样就很容易地用一句话实现了页面中的链接虚线框的消除。不过你先别得意,如果触发的特效是CSS的属性变化,那么出来的结果会跟你的本意有差别。例如你想随鼠标的移进移出而改变页面中的文本框颜色更改,你可能想当然的会认为应该写为
- <style type="text/css">
- input
- {star : expression(onmouseover=this.style.backgroundColor="#FF0000";
- onmouseout=this.style.backgroundColor="#FFFFFF")}
- </style>
- <style type="text/css">
- input {star : expression(onmouseover=this.style.backgroundColor="#FF0000";
- onmouseout=this.style.backgroundColor="#FFFFFF")}
- </style>
- <input type="text">
- <input type="text">
- <input type="text">
可结果却是出现脚本出错,正确的写法应该把CSS样式的定义写进函数内,如下所示:
- <style type="text/css">
- input {star : expression(onmouseover=function()
- {this.style.backgroundColor="#FF0000"},
- onmouseout=function(){this.style.backgroundColor="#FFFFFF"}) }
- </style>
- <input type="text">
- <input type="text">
- <input type="text">