第十二章 设计用户界面 之 设计自适应的UI布局
1. 概述
随着手机和平板设备的日益普及,使得开发者不得不考虑MVC网站在移动设备上的展示。
本章内容包括:运行在多种设备上的程序(屏幕分辨率,CSS,HTML)、设计手机端Web程序。
2. 主要内容
2.1 运行在多种设备上的程序(屏幕分辨率,CSS,HTML)
默认的MVC项目模板支持运行在全景视图中的桌面浏览器。
可以使用 @media 查询来为不同的分辨率开发样式。
CSS3允许基于最大屏幕宽度来考虑设计。
/* Landscape phone to portrait tablet up to 768px */
@media (max-width: 767px) {
#container {
/*layout specific CSS */
}
} /* Portrait tablet to landscape and desktop (width between 768 and 980px) */
@media (min-width: 768px) and (max-width: 979px) and (orientation:portrait){
#container {
/*layout specific CSS */
}
} /* Large desktop */
@media (min-width: 980px) {
#container {
/*layout specific CSS */
}
}
如果要适配更小的屏幕,应该创建移动端友好的模板页。
JQuery移动平台包提供了一种统一的方式,使用同样的代码来管理不同的移动平台。
2.2 设计手机端Web程序
可以通过修改 Global.asax 文件来 支持多种移动浏览器。
namespace MvcApplication
{
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
DisplayModeProvider.Instance.Modes.Insert(, new
DefaultDisplayMode("windows")
{
ContextCondition = (context => context.GetOverriddenUserAgent().IndexOf
("Windows", StringComparison.OrdinalIgnoreCase) >= )
});
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterAuth();
}
}
}
3. 总结
① ASP.NET MVC4有多种方式来支持移动用户。可以给多种设备创建重载视图,也可以针对单一设备开发。
System.Web.Mvc.VirtualPathProviderViewEngine.DisplayModeProvider 可以根据请求判断来源,从而返回相应的定制好的视图。
② 还有另外一种方式来设计移动端可访问的站点,那就是使用 viewport <meta> 标记 和 CSS @media 查询。可以基于屏幕的最大和最小宽度来分组开发样式。
③ JQuery移动库允许使用标记(markup)来为客户端浏览器提供额外的功能。如果遇到不支持的浏览器,也可以很好的降级到可替代的方法。
第十二章 设计用户界面 之 设计自适应的UI布局的更多相关文章
- Gradle 1.12 翻译——第十二章 使用Gradle 图形用户界面
有关其他已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或访问:http://gradledoc.qiniudn.com ...
- <构建之法>第十一章、十二章有感
十一章:软件设计与实现 工作时要懂得平衡进度和质量.我一直有一个困扰:像我们团队这次做 男神女神配 社区交友网,我负责主页的设计及内容模块,有个队友负责网站的注册和登录模块,有个队友负责搜索模块,有个 ...
- 《Android群英传》读书笔记 (5) 第十一章 搭建云端服务器 + 第十二章 Android 5.X新特性详解 + 第十三章 Android实例提高
第十一章 搭建云端服务器 该章主要介绍了移动后端服务的概念以及Bmob的使用,比较简单,所以略过不总结. 第十三章 Android实例提高 该章主要介绍了拼图游戏和2048的小项目实例,主要是代码,所 ...
- [CSAPP笔记][第十二章并发编程]
第十二章 并发编程 如果逻辑控制流在时间上是重叠,那么它们就是并发的(concurrent).这种常见的现象称为并发(concurrency). 硬件异常处理程序,进程和Unix信号处理程序都是大家熟 ...
- perl5 第十二章 Perl5中的引用/指针
第十二章 Perl5中的引用/指针 by flamephoenix 一.引用简介二.使用引用三.使用反斜线(\)操作符四.引用和数组五.多维数组六.子程序的引用 子程序模板七.数组与子程序八.文件句 ...
- JavaScript DOM编程艺术-学习笔记(第十二章)
第十二章 1.本章是综合前面章节的所有东西的,一个综合实例 2.流程:①项目简介:a.获取原始资料(包括文本.图片.音视频等) b.站点结构(文件目录结构) c.页面(文件)结构 ②设计(切图) ③c ...
- CSS3秘笈:第十二章&第十三章
第十二章 1.网页布局类型 (1)固定宽度 (2)流式 (3)响应式Web设计 2.CSS布局的方法 通过给元素设置一个宽度,将它浮到左侧或右侧,就可以创建一个列(元素后面的文本会环绕浮动的元素,仿佛 ...
- Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验
Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高 ...
- Testlink1.9.17使用方法(第十二章 总结)
第十二章 总结 QQ交流群:585499566 TestLink用于进行测试过程中的管理,通过使用TestLink提供的功能,我们可以将测试过程从:测试需求.测试设计.到测试执行.完整的管理起来,同时 ...
- 进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用
进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数 ...
随机推荐
- Web前端行业的了解
即将从事Web前端的工作的 先对即将从事的行业有个了解. Web前端发展史: 第一个网页诞生于90年代初,早期的网页除了一些小图片和毫无布局可言的标题段落,其全由文字构成.然而随着时代的进步,互联网的 ...
- 谈谈javaScript
谈谈javaScript (杰我学习) 一. 什么是JavaScript 人们通常所说的JavaScript,其正式名称为ECMAScript.这个标准由ECMA组织发展和维护.ECMA ...
- CISCO-从路由器上下载IOS
准备工作:一台装有TFTP服务器的PC,一台带有IOS的路由器,并用网线连接上 设置路由器接口和计算机网卡的IP地址在同一网段,并且互相能ping通. 1,安装Cisco TFTP Server 2, ...
- wiki中文语料+word2vec (python3.5 windows win7)
环境: win7+python3.5 1. 下载wiki中文分词语料 使用迅雷下载会快不少,大小为1个多G https://dumps.wikimedia.org/zhwiki/late ...
- SPOJ:D-query(非常规主席树求区间不同数的个数)
Given a sequence of n numbers a1, a2, ..., an and a number of d-queries. A d-query is a pair (i, j) ...
- bzoj 4711 小奇挖矿 ——“承诺”类树形dp
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4711 对“承诺”有了更深的了解. 向外和向内要区分,所以 f [ i ][ j ] 表示根向 ...
- AtCoder Grand Contest 012 C:Tautonym Puzzle
题目传送门:https://agc012.contest.atcoder.jp/tasks/agc012_c 题目翻译 如果一个字符串是好的,那么这个字符串的前半部分和后半部分肯定一模一样.比如\(a ...
- hibernate 学习 一 基本概念
1: Hibernate对JDBC进行封装,以面向对象的方式对关系型数据库进行操作. 2: Hibernate的配置文件: hibernate.properties 或者 hibernate.c ...
- jquery.Datatable.js
http://www.cnblogs.com/nier/archive/2012/03/18/2404836.html http://blog.csdn.net/mickey_miki/article ...
- CodeForces 1091G. New Year and the Factorisation Collaboration
题目简述:若你获得“超能力”:固定$n$,对任意$a$,可以快速求出$x \in [0, n)$(若存在),使得$x^2 \equiv a \pmod n$,若存在多个$x$满足条件,则返回其中一个( ...