6

如何添加仅适用于 iOS 移动设备的样式表?

我想运行一个包含 Flash 的网站。显然,flash 元素在 iPhone、iPod 和 iPad 上不起作用。由于这个事实,我只想为这些设备创建一个 CSS 文件。我最担心 iPad,因为我可以使用@media screen其他两个的尺寸属性。

我到目前为止是这样的:

var IS_IPAD = navigator.userAgent.match(/iPad/i)  != null;

if(IS_IPAD)    ({
      url: href,
      dataType: 'css',
      success: function(){                  
            $('<link rel="stylesheet" type="text/css" href="'+css/ipad.css+'" />').appendTo("head");
        }
});

什么不在这里工作?

4

2 回答 2

9

你可以这样做:

var is_ios = /(iPad|iPhone|iPod)/g.test( navigator.userAgent );

这将返回真或假。

然后:

if(is_ios)    
{
 $('<link rel="stylesheet" type="text/css" href="css/ipad.css" />').appendTo("head");
};

更新:

另一种方法是测试浏览器支持,而不是使用 userAgent 检测。你可以像这样使用 jQuery 来做到这一点:

$('html').addClass(typeof swfobject !== 'undefined' && swfobject.getFlashPlayerVersion().major !== 0 ? 'flash' : 'no-flash');

这以“ Modernizr ”风格的方式工作,将类添加到html文档的标签中,所以在你的 css 中你可以这样做:

 html.flash .element {
 /*Do something here if flash if enabled*/
 }

 html.no-flash .element {
 /*Do something different here if flash if not available*/
 }
于 2013-11-12T14:49:16.267 回答
2

为什么不只是这样:

var is_ipad = navigator.userAgent.match(/iPad/i) ? true : false;

if(is_ipad)
  $('<link rel="stylesheet" type="text/css" href="path/to/css.css" />').appendTo('head');
于 2013-11-12T14:47:20.140 回答