asp.net - 使用应用主题时,如何最好地处理移动和桌面 CSS 检测

标签 asp.net css mobile themes app-themes

我目前有一个 Web 应用程序,它使用 Themes 将其设置为 SkinA 或 SkinB。到目前为止,这是一个不以任何方式关注移动设备的 Web 应用程序,因此 site.css 文件(在两个 Theme 文件夹中)针对的是普通桌面设备。

但是,在不更改整个元素中的任何 Web 表单 aspx 文件的情况下,我现在需要创建此 site.css 文件的移动版本(适用于两个主题),它将改变布局,使其看起来更干净一些在移动设备上查看时。

我在一篇听起来相当合乎逻辑的文章中发现了以下片段,但是,由于使用了主题文件夹(从我对主题的了解来看,我认为所有 CSS 文件都会自动包含),我不确定如何我会做到这一点。

摘自:http://mobile.smashingmagazine.com/2010/11/03/how-to-build-a-mobile-website/#mobile-stylesheets

首先,定义两个样式表:screen.css 包含普通浏览器的所有内容,antiscreen.css 用于覆盖您在移动设备上不需要的任何样式。将这两个样式表绑定(bind)到另一个样式表 core.css 中:

@import url("screen.css");
@import url("antiscreen.css") handheld;
@import url("antiscreen.css") only screen and (max-device-width:480px);

最后,为移动浏览器定义另一个样式表 handheld.css 并在页面上链接它们:

<link rel="stylesheet" href="core.css" media="screen"/>
<link rel="stylesheet" href="handheld.css" media="handheld, only screen and (max-device-width:480px)"/>

或者也许有更好的方法来完成这个,同时保留主题的使用?

最佳答案

我在目前正在做的元素中遇到过这个问题。

实现此目的的一种方法是使用 Modernizr。

这是一个 javascript 库,您可以在 modernizr.com 上获得。

它将测试目标浏览器,如果它支持触摸事件,它将向您的网页元素添加“触摸”样式。一般来说,如果 Modernizr 这样做,要么是平板电脑,要么是手机。然后,您为手机/平板电脑的每种样式添加“.touch”前缀。

将其与媒体查询相结合,您应该能够处理大多数(可能不是全部)设备。

关于asp.net - 使用应用主题时,如何最好地处理移动和桌面 CSS 检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15133630/

相关文章:

javascript - 使用 JavaScript 构建 native 应用程序的最佳方式?

css - Asp.net MVC 在发布时更改 css

javascript - jQuery ajax请求错误: callback not called

c# - 从包含多个表的数据集中找到最小值和最大值

html - 在 Chrome 中打印,分页前会导致一些空格,但不会转到下一页

android - Truecaller API 中的 APPKEY 是什么?

asp.net - Request.ServerVariables ["SERVER_NAME"] 总是本地主机

javascript - 如何围绕鼠标光标创建形状?

html - 随着其他列变长而更改列高

jquery - 在运行时更改 jQuery Mobile 按钮的字体大小