前端中的hack,很多人的回答如下:

由于不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。
这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果

总之.就是一句话,
针对不同浏览器编写带有前缀的css 就是 css hack,也就是大家所说的前端hack了
举个例子:

.table .table-disabled {color: #e4eaec;-webkit-user-select: none;-moz-user-select: none;-ms-user-select: none;user-select: none
}

css hack原理

针对不同的浏览器编写不同的样式代码

css hack方式

1. 属性前缀法(类内部hack)

width:100px;
+width:100px; //IE6 IE7
*width:100px; // IE6 IE7
width:200px/9  //IE6~IE10

不同浏览器兼容的代码

  -moz-transform: rotate | scale | skew | translate ; //firefox3.5+-webkit-transform: rotate | scale | skew | translate ; //Webkit内核浏览器-o-transform: rotate | scale | skew | translate ; //Opera-ms-transform: rotate | scale | skew | translate ; //IE9transform: rotate | scale | skew | translate ;//标准模式

2. 选择器前缀法(选择器hack)

*html *前缀只对IE6生效
*+html *+前缀只对IE7生效
@media screen\9{...}只对IE6/7生效
@media \0screen {body { background: red; }}只对IE8有效@media \0screen\,screen\9{body { background: blue; }}只对IE6/7/8有效 @media screen\0 {body { background: green; }} 只对IE8/9/10有效@media screen and (min-width:0\0) {body { background: gray; }} 只对IE9/10有效 @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {body { background: orange; }} 只对IE10有效

3. 条件注释法
这种方式是IE浏览器专有的Hack方式,微软官方推荐使用的hack方式。举例如下

只在IE下生效
<!--[if IE]>
这段文字只在IE浏览器显示
<![endif]-->只在IE6下生效
<!--[if IE 6]>
这段文字只在IE6浏览器显示
<![endif]-->只在IE6以上版本生效
<!--[if gte IE 6]>
这段文字只在IE6以上(包括)版本IE浏览器显示
<![endif]-->只在IE8上不生效
<!--[if ! IE 8]>
这段文字在非IE8浏览器显示
<![endif]-->非IE浏览器生效
<!--[if !IE]>
这段文字只在非IE浏览器显示
<![endif]-->

css hack弊端

hack其实相当于是欺骗浏览器的行为,在解决浏览器兼容性方面,代码编码的复杂度变高,容易出现编写了一堆代码后,出现新的不同浏览器间的兼容性问题.所以不太推荐通过hack的方式解决浏览器兼容问题.


参考链接:
https://www.jianshu.com/p/a65486c56d19.
https://www.cnblogs.com/mumble/p/4576489.html.

前端中的hack是什么意思?常见的hack技术以及以及hack技术的利弊相关推荐

  1. mui实现手机web前端拍照_Web前端中的常见技术名称及所实现的功能

    今天小编要跟大家分享的文章是关于Web前端中的常见技术名称及所实现的功能.熟悉Web前端工作的小伙伴都知道Web中有很多的技术,想要成为一名合格的Web前端工程师你必须要一项一项的掌握技术,如Html ...

  2. 在前端中,几种常见的定位使用

    在前端中,经常使用两种方式来移动盒子: 利用浮动,结合内外边距. 利用定位. 其实更加方便,更适应复杂化的是第二种方式:定位position. 在前端中,定位常见的几种形式如下: 相对定位 绝对定位 ...

  3. 一文了解贪心算法和回溯算法在前端中的应用

    一文了解贪心算法和回溯算法在前端中的应用 一.贪心算法 1.贪心算法是什么? 2.应用场景 3.场景剖析:零钱兑换 二.回溯算法 1.回溯算法是什么? 2.什么问题适合选用回溯算法解决? 2.应用场景 ...

  4. 一文了解分而治之和动态规则算法在前端中的应用

    一文了解分而治之和动态规则算法 一.分而治之 1.分而治之是什么? 2.应用场景 3.场景剖析:归并排序和快速排序 二.动态规则 1.动态规则是什么? 2.应用场景 3.场景剖析:斐波那契数列 4.动 ...

  5. 栈在前端中的应用,顺便再了解下深拷贝和浅拷贝!

    详解栈在前端中的应用 一.栈是什么 二.栈的应用场景 三.前端与栈:深拷贝与浅拷贝 1.JS数据类型 (1)js数据类型的分类 (2)js数据类型的定义和存储方式 (3)js数据类型的判断方式 2.深 ...

  6. 有关WEB前端中的语义化

    作天在变卖大学书籍时也不晓得怎么的就想起语义化这个概念,于是乎也就花点时间搞搞它.语义化标记对于刚学web前端脚本语言的童鞋来说往往都没太 在意,哇哈哈,其实我也就算只比较老的菜鸟而已,本文不是说教, ...

  7. 领域驱动设计在前端中的应用

    (文章末尾有抽奖送书活动) 垃圾桶现象 在开始本篇文章前,我给读者们分享一个很考验人性的有趣现象,在公司洗手间的洗漱台旁边,放置了一个垃圾桶,每次我洗完手,用纸巾擦干手后,将其扔进垃圾桶,但是偶尔扔不 ...

  8. Web前端中的JavaScript语言基础

    文章目录 JavaScript主要特点 JavaScript使用形式 行内JavaScript脚本 内部JavaScript脚本的使用 外部JavaScript脚本 基本语法 标识符 关键字 数据类型 ...

  9. SLAM前端中的视觉里程计和回环检测

    1. 通常的惯例是把 VSLAM 分为前端和后端.前端为视觉里程计和回环检测,相当于是对图像数据进行关联:后端是对前端输出的结果进行优化,利用滤波或非线性优化理论,得到最优的位姿估计和全局一致性地图. ...

最新文章

  1. 【nginx】从主页搭建看nginx常用配置
  2. 利用do文件方式进行modelsim仿真
  3. [转] javaweb学习-jstl-c:forEach中 varStatus的属性简介
  4. xml中1字节的UTF-8序列的字节1无效([字符编码]Invalid byte 1 of 1-byte UTF-8 sequence终极解决方案)
  5. 含有“外骨骼”的电影和游戏
  6. 电脑ping不通 plsql能连上_台式电脑不能上网手机却能连上wifi无线网络的解决方法...
  7. JavaScript学习-1
  8. python数据类型可变和不可变_Python——可变和不可变类型数据
  9. css好用吗,一些不好记却很好用的 CSS 属性
  10. 论文写作——paper Note
  11. C/C++面试题—旋转数组的最小数字
  12. UML 10 种常见的域建模错误
  13. yum mysql 设置密码_Linux下的 Mysql 8.0 yum 安装 并修改密码
  14. UE4.27 Live Link Face无法连接的一种解决办法
  15. PPT幻灯片放映不显示备注,只让备注显示在自己屏幕上!
  16. 向量积的坐标运算公式推导_向量外积的直接证明与直观解释,并以此证明正弦公式...
  17. socks5 python_用Python写socks5服务器端
  18. java-数组-数组缩减
  19. cuda 的driver API 和 runtime API
  20. 计算机科学与技术专业前沿技术相关论文,计算机科学与技术专业创新能力的培养途径论文...

热门文章

  1. ubuntu无法上网
  2. python中的对数_Python中求对数方法总结
  3. 2022年湖北省企业吸纳就业补贴申请条件及具体奖励标准
  4. 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。 请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。如下实例。示例 :输入: 1->2->3->4-
  5. O2O优惠券使用预测项目总结
  6. Java精品项目源码第94期房屋租赁管理系统
  7. Navicat导出整个数据库(可以直接迁移,不会因为外键关系而导致导入不了)
  8. C/C++ 余弦函数 cos - C语言零基础入门教程
  9. codevs 2964 公共素数因数
  10. AD域实现统一用户管理