}
IE 6的CSS Hack
毫无疑问,如上所述,为css的属性前面加下划线_,这是给IE6专用的。
.css-hack {
background-color: red; /* 其他浏览器上显示为红色 */
_background-color: blue; /* 只有IE 6浏览器上显示为蓝色 */
}
IE 7的CSS Hack
IE6、IE7都能够识别加了+、_或#前缀的css属性名称,但是IE 7不支持_前缀,而IE6支持。因此,我们可以先写一个_属性、+属性或#属性让IE6、IE7都能识别,再写一个_属性,只让IE6识别,将属性值复原回去,从而让前者只对IE 7生效。
.css-hack {
color: red; /* 其他浏览器上显示为红色 */
+color: blue; /* 只有 IE 6、IE 7 浏览器上显示为蓝色 */
_color: red; /* 让 IE 6 复原为之前设置的颜色 */
}
真题解析、进阶学习笔记、最新讲解视频、实战项目源码、学习路线大纲
详情关注公中号【编程进阶路】
注意:有些网页上说,只用+、_或者#号的属性前缀就可以只让IE 7进行单独识别。不过经过本人亲测,不管是用IE Tester,还是专门下载一个XP系统,用原版IE 6测试,都表明:IE6、IE7都可以识别+、_或#号的属性前缀。
另外,还有人说,IE 7支持!important,IE 6不支持!important,因此可以通过*属性: 值!important;的形式来实现IE 7的CSS Hack。
实际上,这样也是不行的,因为IE 6不是不支持!important,只是有个bug而已,详情请参见IE6究竟支不支持!important和IE6 IE7(Q) IE8(Q) 不完全支持!important规则。
使用!important来实现IE 7的CSS Hack,必须是在同一个样式选择器中,而且同样需要在后面加_属性来复原IE 6的设置(这种方式还麻烦点,上面的方法还少写个!important)。
.css-hack {
color: red; /* 其他浏览器上显示为红色 */
color: blue !important; / 只有 IE 6、IE 7 浏览器上显示为蓝色 */
_color: red; /* 让 IE 6 复原为之前设置的颜色 */
}
此外,IE 7也支持在选择器前添加_+html ,让当前选择器成为_+html的后辈选择器,只有IE 7可以识别此类样式选择器(据说某些旧版本的Opera浏览器也能识别,不过这些版本早已作古了,无需考虑)。
.css-hack {
color: red; /* 其他浏览器显示红色 */
}
*+html .css-hack {
color: blue; /* 只有IE 7显示蓝色 */
}
IE 7还支持在选择器前添加_:first-child+html,让当前选择器成为_:first-child+html的后辈选择器。
.css-hack {
color: red; /* 其他浏览器显示红色 */
}
*:first-child+html .css-hack {
color: blue; /* 只有IE 7显示蓝色 */
}
IE 8的CSS Hack
只有IE8支持嵌套如下@media类型查询语句:@media \0screen。
.css-hack {
color: red; /* 其他浏览器显示红色 */
}
@media \0screen {
.css-hack { color: blue; } /* 只有IE 8显示蓝色 */
}
IE 9的CSS Hack
没找到一个靠谱的。
IE 10的CSS Hack
.css-hack {
color: red; /* 其他浏览器显示红色 */
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
.css-hack { color: blue; } /* 只有IE 10显示蓝色 */
}
IE 11的CSS Hack
没找到一个靠谱的。
IE 6 + IE 7 的CSS Hack
如上所述,只有IE 6、IE 7可以识别加了+或*号的属性前缀。
.css-hack {
color: red; /* 其他浏览器显示红色 */
color: blue; / IE 6、IE 7显示为蓝色 */
}
FireFox、Chrome、Safari、Opera的CSS Hack
FireFox的CSS Hack
FireFox支持嵌套其专用的css语句:@-moz-document url-prefix()。
计算机网络
-
HTTP 缓存
-
你知道 302 状态码是什么嘛?你平时浏览网页的过程中遇到过哪些 302 的场景?
-
HTTP 常用的请求方式,区别和用途?
-
HTTPS 是什么?具体流程
-
三次握手和四次挥手
-
你对 TCP 滑动窗口有了解嘛?
-
WebSocket与Ajax的区别
-
了解 WebSocket 嘛?
-
HTTP 如何实现长连接?在什么时候会超时?
-
TCP 如何保证有效传输及拥塞控制原理。
-
TCP 协议怎么保证可靠的,UDP 为什么不可靠?
算法
-
链表
-
字符串
-
数组问题
-
二叉树
-
排序算法
-
二分查找
-
动态规划
-
BFS
-
栈
-
DFS
-
回溯算法