HTML中的Hack手段之条件注释

2023-05-16

       通常WEB的好处就是可以跨平台,但这个世界偏偏有个另类,就是IE浏览器。在平常做HTML设计时,有时需要为IE的表示差异而不得不使用一些Hack手段。条件注释就是这类手段之一。

       条件注释是IE浏览器的专利”,也就是说我们在HTML中可以为IE嵌入一段专有标签片段,来解决IE与其它浏览器的表现差异。条件注释是在IE5之后引入的,所有针对低于IE5<IE5.0)以前的浏览器使用条件注释的做法都是无效的。同时请注意微软已经不再针对IE10及以上浏览器支持条件注释了,所以请不要针对>=IE10IE浏览器增加条件注释。

       在HTML中,注释的格式通常是这样的:

    <!--注释内容-->

       而条件注释是这样的:

   <!--[if IE 8]>
   <link href=”ie.css” rel=”stylesheet”/>
   <![endif]-->

       在以上示例中,该条件注释会为版本小于等于IE8IE系列浏览器载入一段专有样式表单。

       条件注释可用的条件有:

1,lte(less than or equals to,小于或等于)

   <!--[if lte IE 6]><![endif]-->

2,lt(less than,小于)

<!--[if lte IE 6]><![endif]-->

3,gte(greater than or equals to,大于或等于)

   <!--[if gte IE 6]><![endif]-->

4,gt(greater than or equals to,大于)

   <!--[if gt IE 6]><![endif]-->

5,特定版本IE,IE 6 IE 7 IE 8

   <!—[if IE 6]><![endif]-->

6,排除版本!

   <!—[if !IE 6]><![endif]-->

        利用条件注释可以为IE浏览增加一些特定的后备代码。比如当用户使用IE8以前的浏览器是可以在页面中添加一段代码如下

     <!—[if it IE 8]><p>你的浏览器版本过低,请使用火狐,谷歌,或版本大于IE8的浏览器</p><![endif-->

        条件注释虽然是IE特有的,但在针对IE系列浏览器时以上这段代码可以为我们精简部分判断浏览类型及版本的代码(这似乎是条件注释不可多得的好处之一)



 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HTML中的Hack手段之条件注释 的相关文章

  • HTML 页面中的目录选择器

    如何在 html 页面中创建目录选择器 如果我使用输入文件元素 我只能选择文件 但我需要选择目录 我需要这样做 因为用户应该在他的计算机内选择正确的路径 有什么解决办法吗 试试这个 我想它会对你有用
  • 你能阻止 jQuery focusout 在失去焦点时触发吗?

    我有一个输入框 我想在它失去焦点时保存它的值 非常简单的事情 我可以通过 jQuery 来完成focusout event 然而问题是我不想解雇focusout当用户单击输入框旁边的 X 图标时发生的事件 示例如下所示 因此 当用户跳出此输
  • 如何使 Flexbox 响应式?

    我有一个包含两个元素的 div 我想水平堆叠它们 Div C 具有固定宽度 div B 将填充其余空间 然而 div B 的内容可能是固定宽度 动态 或 100 宽度 div B 我想要的效果是 如果屏幕宽度足够小 以至于在 div B 和
  • 用于停止表单提交的 JavaScript 代码

    停止表单提交的一种方法是从 JavaScript 函数返回 false 单击提交按钮时 将调用验证函数 我有一个表单验证的案例 如果满足该条件 我将调用一个名为的函数回到上一页 function returnToPreviousPage w
  • 基于超简单静态文件(html)的php站点缓存

    我有一个网站 基本上只显示内容 没有任何表格和后期处理 该网站基于 PHP 并托管在共享主机上 它很少改变 我想为此网站启用缓存 它是共享托管 所以我需要一个解决方案 不使用 Memcached 不需要将我的网站移至 VPS 不要使用APC
  • iOS Voice Over 和 Android 无法播报 Span 标签中的文本

    我们希望屏幕阅读器在节点关闭后宣布 项目已关闭 有趣的是 Chrome 上的 NVDA 正确地播报了该消息 而 Android 和 iOS Voice Over 则未能播报此消息 这是打字稿代码 HostListener keydown t
  • 使用 CSS 与使用列和行调整文本区域大小

    使用列和行调整文本区域大小与使用高度和宽度调整文本区域大小有什么区别
  • 从一个组件访问另一个组件的方法

    我在 Angular 中 需要从另一个组件调用一个组件的方法 拥有这个组件 import Component OnInit Input from angular core Component selector app popover tem
  • 使用 Javascript DOM 获取带有标签名称的第一个元素

    我正在尝试获取带有标签的第一个元素
  • Internet Explorer 8 不会修改打印样式表中的 HTML5 标记

    我之前正在制作打印样式表 并遇到了 IE8 的问题 我正在使用 HTML5 和几个布局标签 包括页眉 导航和页脚 由于某种原因 在我的打印样式表中显示 无 这些标签上的声明在 IE8 中被忽略 我只能假设后续的较低版本 我首先认为 IE9
  • 如何在 JavaScript 中访问自定义 html 属性?

    您好 我在这个 html 文档中遇到问题 请帮助我 我对此很陌生 也许我很愚蠢 错过了一些东西 我在这里只放了有用的来源来解决请 a Hurray a br 我希望它显示
  • .net/C# 的 Html 解析器和对象模型

    我希望使用 net 来解析 html 以测试或断言其内容 IE HtmlDocument doc GetDocument 一些 html 列表表单 doc Forms 链接 link doc GetLinkByText 新客户 这个想法是允
  • 如何通过 CSharp 以编程方式设置输入元素的值?

    你好 我正在尝试让 IE 自动登录网站 但问题是输入元素没有 HTML ID 属性 例如
  • 从 onclick 函数将方法发布到 URL

    我需要一些听起来很简单但对我来说很难的帮助 所以当有人点击这个 div 时 div Click Me div 我希望它将数据发送到 PHP 文件 该文件将获取我想要的信息 我会使用 GET 函数 但我听说它很容易被破解 如果他们是更简单的解
  • 为什么负边距会影响我的页面宽度?

    请参考以下内容example http jsfiddle net wdm954 Fcznp 9 其中 200px 宽的外部 div 旨在确定我们的页面宽度 它包含一个 400px 宽的内部 div 但左 右负边距为 100px 我预期的最终
  • input[type=hidden] 和visibility="hidden" 之间的区别

    有什么区别input type hidden and visibility hidden 第一个是输入元素 第二个用于 CSS2 中的样式 visibility hidden 可见性属性指定元素是否可见 输入 类型 隐藏 http www
  • 使用 jQuery 将播放/暂停/结束功能绑定到 HTML5 视频

    我正在尝试绑定play pause and ended使用 jQuery 的事件但有一个问题 当我右键单击视频并选择播放或暂停时 图标会正确更改 当我单击播放按钮时 它会更改为暂停 但如果我单击暂停按钮继续播放视频 它不会更改为再次播放 谁
  • 如何在angularjs中实现类似Excel的过滤器?

    我需要使用 angulajs v 1 为表实现简单的 Excel 类似 Filer 我遇到了困难 请帮助我 我在下面添加了我的代码片段 我想在选中复选框并单击 确定 按钮后在表中显示过滤后的数据 我正在使用模型执行此操作 但没有得到解决方案
  • 将表格行换行到下一行

    table tr td testtesttesttest td td testtesttesttest td tr table 我想如果表格不适合屏幕 那么表格的第二个单元格将被转移到另一行 不是单元格中的文本 而是整个单元格 将单元格更改
  • 如何在 Symfony 4 表单的输入上添加占位符?

    在我的 Symfony 4 表单中 我尝试为我的输入获取占位符 我尝试了以下操作 但收到错误消息 表明这是不允许的 有什么想法我还能如何实现这一目标吗 gt add firstname TextType class label gt Vor

随机推荐

  • stm32使用PWM播放音频

    我之前研究过STM32的DAC播放wav音频文件 xff0c 今天突然发现使用PWM也可以实现WAV文件的播放 xff0c 让在大开了眼界 xff0c 转载如下 xff1a stm32使用PWM播放音频 pwm stm32 dac pcm
  • uboot 增加硬件看门狗

    先说说uboot的编译过程 xff1a 1 make distclean 2 make defconfig 3 make 在执行上面之前 xff0c 还需要必要 的设置 xff0c 比如配置ARCH CROSS COMPILE 等等 xff
  • ALTRA FPGA程序移植到XILINX CPLD

    由于altra FPGA买不到了 xff0c 现在使用xilinx的CPLD 95144来替换 xff0c 本来想把之前的verilog工程直接重新在ISE上编译一下 xff0c 就可以了 xff0c 看来我是低估FPGA到CPLD的移植过
  • 图形化的调试工具 j-scope systemview

    2022 03 01 当调试传感器 AD值时 xff0c 特别想把转换值直观的展示出来 xff0c 就用到了下面几咱方法 通常的解决办法是用串口上位机 xff0c USB接口上位机或者MDK的逻辑分析仪功能 xff0c 使用这三种方式都比较
  • 移远ec20模式与切换

    移远EC20支持4种模式 0 rmnet模式 通过QMI工具发的QMI命令 xff0c 获取公网IP 这种模式可以配合usb ecm驱动或高通GobiNet驱动使用 1 ecm模式 通过标准的CDC ECM发起data call xff0c
  • STM32开发必备知识篇:串口DMA空闲中断

    随着撰写博客的深入 xff0c 笔者先初步打算把博客细分为四大板块 xff1a 1 FPGA基础知识篇 xff1b 2 FPGA 20个例程篇 xff1b 3 STM32开发必备知识篇 xff1b 4 STM32 10个项目篇 xff0c
  • 大端小端(Big- Endian和Little-Endian)

    字节序 xff08 Endian xff09 xff0c 大端 xff08 Big Endian xff09 xff0c 小端 xff08 Little Endian xff09 图文并茂 http www cppblog com tx7d
  • STM32程序设计规范浅析

    这篇博客写到 STM32基础知识篇 里 xff0c 一方面是一个很好地对过往工作的总结 xff0c 另一方面也是整个专栏撰写计划的开端 xff0c 古人云 xff1a 良好的开端是成功的一半 xff0c 在文章的最后详细地规划了整个专栏后期
  • C语言编程规范(头文件规范)

    C语言的规范使用 xff0c 有利于提高代码的清晰 简洁 可测试 安全 效率 可移植 xff0c 因此必须规范使用C语言编程 代 码 总 体 原
  • C语言变量和常量命名规则

    变量命名规则 原则 1 一个变量只有一 个功能 xff0c 不能把一个变量用作多个用途 2 结构单一 xff0c 不能设计面面俱到的数据结构 xff1b 结构的定义应该明确的描述一个对象 xff0c 去掉相关相不强的数据 xff1b 3 不
  • ROS+Gazebo----Unable to find uri[model:// ]

    基于ROS 43 Gazebo环境 xff0c 用roslaunch把sdf模型加载到gazebo仿真世界 目录结构如下 输入命令roslaunch my simulation my world launch 报错 xff1a 1 不接入网
  • 最完整介绍Visual C++ 6.0和Visual Studio 2022中的编译、生成和运行(CTRL+F7、F7、CTRL+F5)

    我是荔园微风 xff0c 作为一名在IT界整整25年的老兵 xff0c 经常被Visual C 43 43 6 0和Visual Studio 2022初学者问到程序写好后怎么使用编译调试菜单以及怎么使用CTRL 43 F7 F7 CTRL
  • 判断大小端的方法(java和c++)

    首先我们给出大小端的定义 小端 xff1a 较高的有效字节存放在较高的的存储器地址 xff0c 较低的有效字节存放在较低的存储器地址 大端 xff1a 较高的有效字节存放在较低的存储器地址 xff0c 较低的有效字节存放在较高的存储器地址
  • vscode配置c++代码提示补全

    vscode配置c 43 43 代码提示补全 在网上找了大半天 xff0c 说的方式都试过了 xff0c 都没有适合我的 xff0c 还是自己找stackoverflow靠谱点 34 editor rulers 34 80 一行限制80字符
  • 解决头文件相互包含问题的方法

    解决头文件相互包含问题的方法 所谓超前引用是指一个类型在定义之前就被用来定义变量和声明函数 一般情况下 xff0c C C 43 43 要求所有的类型必须在使用前被定义 xff0c 但是在一些特殊情况下 xff0c 这种要求无法满足 xff
  • C++ 中头文件相互包含问题的解决办法

    我们在写C 43 43 程序的时候 xff0c 常常要把不同的类的声明放置与不同的头文件中 xff0c 以提高代码的整洁性 xff0c 如此一来 xff0c 就难免会遇到头文件相互包含的问题 xff0c 也就是说 xff0c 假设我们有两个
  • Pixhawk_nuttx启动过程和启动文件

    lt span style 61 34 font family Arial Helvetica sans serif background color rgb 255 255 255 34 gt Pixhawk nuttx启动过程 lt s
  • 施密特触发器原理图解

    施密特触发器原理图解详细分析 重要特性 xff1a 施密特触发器具有如下特性 xff1a 输入电压有两个阀值VL VH xff0c VL施密特触发器通常用作缓冲器消除输入端的干扰 施密特波形图 施密特触发器也有两个稳定状态 xff0c 但与
  • Delphi 类库(DLL)动态调用与静态调用示例讲解

    在Delphi或者其它程序中我们经常需要调用别人写好的DLL类库 下面直接上示例代码演示如何进行动态和静态的调用方法 DLL动态调用与静态调用的例子 编译环境 Delphi XE 转载或编译请不要修改此文件
  • HTML中的Hack手段之条件注释

    通常WEB 的好处就是可以跨平台 但这个世界偏偏有个另类 就是IE 浏览器 在平常做HTML 设计时 xff0c 有时需要为IE 的表示差异而不得不使用一些Hack 手段 条件注释就是这类手段之一 条件注释是IE 浏览器的 专利 也就是说我