CSS Hack 汇总速查一览
由于浏览器之间存在兼容性问题,在制作网页的时候,为了使页面能在不同浏览器中显示相对一致或者其他原因,网页制作人员总结了种种 Hack 方法;在解决兼容性问题之前,这些方法还经常会用到。接下来,52CSS.com将向给大家介绍常用的CSS Hack汇总,以便大家平时的速查。
屏蔽IE浏览器(也就是IE下不显示)
*:lang(zh) select {font:12px !important;} select:empty {font:12px !important;} 这里select是选择符,根据情况更换。第二句是MAC上safari浏览器独有的。
仅IE7与IE5.0可以识别
*+html select {…} 当面临需要只针对IE7与IE5.0做样式的时候就可以采用这个HACK。
仅IE7可以识别
*+html select {…!important;} 当面临需要只针对IE7做样式的时候就可以采用这个HACK。
IE6及IE6以下识别
* html select {…} 这个地方要特别注意很多博客都写成了是IE6的HACK其实IE5.x同样可以识别这个HACK。其它浏览器不识别。html >body select {…} 这句与上一句的作用相同。
仅IE6不识别,屏蔽IE6
select { display :none;} 这里主要是通过CSS注释分开一个属性与值,注释在冒号前。
仅IE6与IE5不识别,屏蔽IE6与IE5
select { display :none;} 这里与上面一句不同的是在选择符与花括号之间多了一个CSS注释。不屏蔽IE5.5
仅IE5不识别,屏蔽IE5
select {…} 这一句是在上一句中去掉了属性区的注释。只有IE5不识别,IE5.5可以识别。
盒模型解决方法
selct {width:IE5.x宽度; voice-family :”\”}\”"; voice-family:inherit; width:正确宽度;} 盒模型的清除方法不是通过!important来处理的。这点要明确。
清除浮动
select:after {content:”.”; display:block; height:0; clear:both; visibility:hidden;} 在Firefox中,当子级都为浮动时,那么父级的高度就无法完全的包住整个子级,那么这时用这个清除浮动的HACK来对父级做一次定义,那么就可以解决这个问题。
截字省略号
select { -o-text-overflow:ellipsis; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; } 这个是在越出长度后会自行的截掉多出部分的文字,并以省略号结尾,很好的一个技术。只是目前Firefox并不支持。
只有Opera识别
@media all and (min-width: 0px){ select {……} } 针对Opera浏览器做单独的设定。
以上都是写CSS中的一些HACK,这些都是用来解决局部的兼容性问题,如果希望把兼容性的内容也分离出来,不妨试一下下面的几种过滤器。这些过滤器有的是写在CSS中通过过滤器导入特别的样式,也有的是写在HTML中的通过条件来链接或是导入需要的补丁样式。
IE5.x的过滤器,只有IE5.x可见
@media tty {i{content:”\”;}} @import ’ie5win.css’;
IE5/MAC的过滤器,一般用不着
IE的if条件Hack
<!–[if IE]> Only IE <![endif]–> 所有的IE可识别<!–[if IE 5.0]> Only IE 5.0 <![endif]–>只有IE5.0可以识别<!–[if gt IE 5.0]> Only IE 5.0+ <![endif]–>IE5.0包换IE5.5都可以识别<!–[if lt IE 6]> Only IE 6- <![endif]–>仅IE6可识别<!–[if gte IE 6]> Only IE 6/+ <![endif]–>IE6以及IE6以下的IE5.x都可识别<!–[if lte IE 7]> Only IE 7/- <![endif]–> 仅IE7可识别
正则表达式高级技巧基本概念实例详解[译]
英文原文来自Smashing Magazine。由笨活儿翻译。转载请注明出处。
正则表达式(Regular Expression, abbr. regex) 功能强大,能够用于在一大串字符里找到所需信息。它利用约定俗成的字符结构表达式来发生作用。不幸的是,简单的正则表达式对于一些高级运用,功能远远不够。若要进行筛选的结构比较复杂,你可能就需要用到高级正则表达式。
本文为您介绍正则表达式的高级技巧。我们筛选出了八个常用的概念,并配上实例解析,每个例子都是满足某种复杂要求的简单写法。如果你对正则的基本概念尚缺乏了解,请先阅读这篇文章,或者这个教程,或者维基条目。
这里的正则语法适用于PHP,与Perl兼容。
1. 贪婪/懒惰

所有能多次限定的正则运算符都是贪婪的。他们尽可能多地匹配目标字符串,也就是说匹配结果会尽可能地长。不幸的是,这种做法并不总是我们想要的。因此,我们添加“懒惰”限定符来解决问题。在各个贪婪运算符后添加“?”能让表达式只匹配尽可能短的长度。另外,修改器“U”也能惰化能多次限定的运算符。理解贪婪与懒惰的区别是运用高级正则表达式的基础。
贪婪操作符
操作符 * 匹配之前的表达式零次或零次以上。它是一个贪婪操作符。请看下面的例子:
1 2 | preg_match( '/<h1>.*< \/h1>/', '</h1><h1>这是一个标题。</h1> <h1>这是另一个。</h1>', $matches ); |
句点(.)能代表除换行符外的任意字符。上面的正则表达式匹配 h1 标签以及标签内的所有内容。它用句点(.)和星号(*)来匹配标签内的所有内容。匹配结果如下:
1 | <h1>这是一个标题。</h1><h1>这是另一个。</h1> |
整个字串都被返回。* 操作符会连续匹配所有内容—— 甚至包括中间的 h1 闭合标签。因为它是贪婪的,匹配整个字串是符合其利益最大化原则。
懒惰操作符
把上面的式子稍作修改,加上一个问号(?),能让表达式变懒惰:
1 | /<h1>.*?< \/h1>/</h1> |
这样它会觉得,只需匹配到第一个 h1 结尾标签就完成任务了。
另一个有着类似属性的贪婪操作符是 {n,} 。它代表之前的匹配模式重复n次或n次以上,如果没有加上问号,它会寻找尽可能多的重复次数,加上的话,则会尽可能少重复(当然也就是“重复n次”最少)。
1 2 3 4 5 6 | # 建立字串 $str = 'hihihi oops hi'; # 使用贪婪的{n,}操作符进行匹配 preg_match( '/(hi){2,}/', $str, $matches ); # matches[0] 将是 'hihihi' # 使用堕化了的 {n,}? 操作符匹配 preg_match( '/(hi){2,}?/', $str, $matches ); # matches[0] 将是 'hihi' |
[原][ASP]字符串截取函数
两个以前写的ASP字符串截取函数,做小偷程序时经常用到。
首发地址:http://bbs.blueidea.com/viewthread.php?tid=2853887
简单版:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | '******************************************************************************** 'Function(公有) '名称 : 盛飞字符串截取函数 '作用 : 按指定首尾字符串截取内容(本函数为从左向右截取) '参数 : sContent ---- 被截取的内容 ' sStart ------ 首字符串 ' sOver ------- 尾字符串 ' iType ------- 类型(1:不包含首尾字符串;2:包含首尾字符串;3:包含首、不包含尾;4:不包含首、包含尾) '******************************************************************************** Function SenFe_Cut(sContent, sStart, sOver, iType) Dim iStart, iOver iStart = InStr(sContent,sStart) iOver = InStr(iStart+Len(sStar),sContent,sOver) If iStart>0 And iOver>0 Then Select Case iType Case 1 iStart = iStart+Len(sStart) Case 2 iOver = iOver+Len(sOver) Case 4 iStart = iStart+Len(sStart):iOver = iOver+Len(sOver) End Select SenFe_Cut = Mid(sContent,iStart,iOver-iStart) Else SenFe_Cut = "没有找到您想要的内容,可能您设定的首尾字符串不存在!" End If End Function |
[原][ASP]储存单位转换小函数
原贴地址:http://bbs.blueidea.com/thread-2864029-1-1.html
参考资料:http://zh.wikipedia.org/w/index.php?title=Yottabyte&variant=zh-cn
1 2 3 4 5 6 7 8 9 10 11 12 | Public Function SenFe_GetFileSize(iSize) Dim aUnit, sUnit, I aUnit = Array("B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB") I = 0 sUnit = aUnit(0) Do While iSize >= 1024 And I < UBound(aUnit) I = I + 1 iSize = iSize / 1024 sUnit = aUnit(I) Loop SenFe_GetFileSize = FormatNumber(iSize, 2) & " " & sUnit End Function |
转载请注明出处