标签: conditional-comments

JSF 2如何根据浏览器版本设置html样式

我想在我的JSF 2应用程序中做的是根据浏览器版本设置正确的html样式,这里是示例代码:

<!--[if lt IE 7]> <html class="lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]>    <html class="lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]>    <html class="lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <!--<![endif]-->
Run Code Online (Sandbox Code Playgroud)

如何在JSF 2中做到这一点?什么是最好/最简单的方法?

我在Omnifaces(o:conditionalComment)中发现了一些有趣的东西,但它只允许有条件地加载整个css,这对我来说是无用的......

html jsf conditional-comments jsf-2 omnifaces

1
推荐指数
1
解决办法
3920
查看次数

添加针对IE浏览器的CSS类:JavaScript或条件注释?

我的目标是从我的文档中删除IE条件注释<head>,但我认识到我仍然需要使用ie6,7,8特定的样式表(如果我错了,请纠正我).

例如,HTML5Boilerplate 3.0使用这些IE条件:

<!-- paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ -->
<!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"><![endif]-->
<!--[if IE 7]>   <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]>   <html class="no-js lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
Run Code Online (Sandbox Code Playgroud)

所以相反,我想我想使用JavaScript将类添加到我的html标签中,从而得到这个(如图所示):

<html lang="en" class="ie6 ie7 ie8">

所以我的问题是:使用JavaScript将CSS类添加到我的文档的html元素而不是使用IE条件注释有什么缺点(后果)?

我现在能想到的一个效果:

  1. IE客户端可能禁用了JavaScript.对我来说这不是问题; 访问我网站的客户需要启用JS.

编辑:我将继续并承认添加这些类的最可靠的方法是(遗憾地)使用IE条件注释.谢谢大家对话.

javascript jquery internet-explorer conditional-comments modernizr

0
推荐指数
1
解决办法
1993
查看次数

如果IE无法正常工作

我有1个div,我想对它应用渐变和背景图像(是的,在同一个元素上).我知道只有你所定位的浏览器不是IE才有可能.考虑到这一点,我想到应用纯色代替渐变,其上面只有IE图像.

这是我的代码:

background: url(../images/newsletter.png), -moz-linear-gradient(top, rgb(10,10,01) , rgb(5,5,5));
background: url(../images/newsletter.png), -webkit-gradient(linear, left top, left bottom, from(#0a0a0a), to(#05050f));
background-repeat: no-repeat, repeat;
<!--[if IE]>
background: #000 url(../images/newsletter.png) center left no-repeat;
<![endif]-->
Run Code Online (Sandbox Code Playgroud)

问题是在FF/Chrome声明之前或之后忽略条件.(我已经测试过了,还有[如果错误]等)任何想法?

css internet-explorer css3 conditional-comments

0
推荐指数
1
解决办法
929
查看次数

如何识别IE8及以下版本以发布唯一代码?

我打算将一些代码放入我的CMS标题中,该标题将提醒任何使用IE 8及以下版本的用户,建议升级他们的浏览器.

在PHP中,我有以下代码,它显示所有版本的IE.

<?php
    if(preg_match('/(?i)msie [1-8]/',$_SERVER['HTTP_USER_AGENT'])) {
        // if IE<=8
        ?>
            <!--[if lte IE 8]>
            <div class="ieNotice">
                <a href="http://windows.microsoft.com/en-us/internet-explorer/" target="_blank">
                    <img src="/skin/frontend/default/hellowired/images/ieUpgrade.jpg">
                </a>
            </div>
            <style>
                .ieNotice {
                    background-color: #eee;
                    padding: 10px;
                }
            </style>
            <![endif]-->
        <?php
    }
?>
Run Code Online (Sandbox Code Playgroud)

这应该是两倍的工作.一,$_SERVER['HTTP_USER_AGENT'])应该能够告诉浏览器分开.但是,我注意到当我运行跨浏览器测试时,IE 8和UP将返回相同的结果$_SERVER['HTTP_USER_AGENT']),即:

Mozilla/4.0(兼容; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)

好的......即使这不起作用......"Quirks模式"条件评论不会作为后备只显示图像并链接到IE8及以下? 我在这里错过了什么?

编辑

好的,所以我按照指示完成了.我删除了PHP代码,并将.ieNotice该类放在display: none属性中.现在,在这里包含的样式表上:

<!--[if lte IE 8]>
<link …
Run Code Online (Sandbox Code Playgroud)

html php regex conditional-comments internet-explorer-8

0
推荐指数
1
解决办法
182
查看次数

IE11条件CSS注释不起作用

我尝试了几种条件格式,如在不同的网站中看到的,但似乎无法使其工作.浏览器版本是IE 11.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">

<title></title>
<link href="CSS/reset.css" rel="stylesheet" />
<link href="css/bootstrap.min.css" rel="stylesheet" />
<link href="CSS/font-awesome.css" rel="stylesheet" />
<!--[if !IE]><!--><link rel="stylesheet" type="text/css" href="CSS/login.css" /><!--<![endif]-->
<!--[if IE]><!--><link rel="stylesheet" type="text/css" href="CSS/loginIE.css" /><!--<![endif]-->
Run Code Online (Sandbox Code Playgroud)

我已经改变了格式.删除Bootstrap和Fontawesome CSS但仍然无法正常工作.我甚至更改/删除了doctype和meta值,但没有任何效果.请帮忙.

html css internet-explorer conditional-comments internet-explorer-11

-1
推荐指数
1
解决办法
938
查看次数