- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我是响应式设计世界的新手。
我正在使用 http://www.responsivegridsystem.com/在我的设计中。它告诉添加以下标记
<!--[if lt IE 9]>
<script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- All JavaScript at the bottom, except for Modernizr which enables HTML5 elements and feature detects -->
<script src="vendors/responsive/js/modernizr-2.5.3-min.js"></script>
<!--[if lt IE 9]>
<script src="//css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
<![endif]-->
最佳答案
它们服务于三个非常独立的目的,所有目的都非常重要,但并非所有(如果有)都总是需要的。
html5shiv aka html5shim
html5shiv 是一个脚本,允许您在本回答时在旧浏览器、Internet Explorer 6-9、Safari 4.x(和 iPhone 3.x)和 Firefox 3.x 中正确使用 html5 元素。
那么,这实际上意味着什么?它很简单。 html5 中有许多新元素(例如 <section>
、 <aside>
、 <header>
和 <footer>
等等),以及创建自己的自定义元素的能力。这意味着我们可以编写更多语义(和更清晰)的代码。所有伟大的事情,但不幸的是,较旧的浏览器不会将您的 css 应用于不属于它们支持的元素之一( <div>
、 <p>
、 <span>
,规范)。幸运的是@sjoerd-visscher dropped some knowledge并挽救了这一天。他发现如果你使用document.createElement
要创建任何新元素,它都会将其注册为受支持的元素之一,并且 css 可以正常工作!
这意味着您实际上可以在生产中使用 html5 元素。这在当时是一件大事,幸运的是,随着那些旧浏览器的消亡,它变得越来越不重要。
除了注册元素之外,它已经扩展到为浏览器添加一些基本样式。
如果您不必支持 Internet Explorer 6-9、Safari 4.x(和 iPhone 3.x)或 Firefox 3.x.,那么您 不要需要使用 html5shiv。
css3-mediaqueries-js
css3-mediaqueries-js 添加了对名为 media queries 的 css 功能的支持在不支持它们的浏览器中。如果您不确定这意味着什么,请查看类似 The Boston Globe 的网站。 , Mitsubishi Australia , 或 techcrunch ,然后调整浏览器的大小。
媒体查询允许您根据浏览器的某些属性或属性组合(宽度、高度等)有条件地应用 css。它们非常强大,并为许多现代网页设计提供动力。
现在,问题是你是否真的需要像 css3-mediaqueries-js 这样的东西。这样做曾经很流行,但越来越多的人(包括我自己)推荐 mobile first design .这意味着基本样式应该是带有媒体查询的移动站点 添加 到基本设计,而不是隐藏/删除一些东西。因此,不支持媒体查询的浏览器(css3-mediaqueries-js 所针对的浏览器)将获得“移动”设计,而不是在每次调整大小时进行 polyfill,然后应用媒体查询。较旧的浏览器通常意味着较旧、较慢且较小的计算机。他们不仅缺乏对媒体查询的支持,而且他们的 javascript 引擎比支持当前 Chrome、Firefox 和 IE 的现代引擎慢数百(有时数千)倍。对于那些几乎没有那么强大的东西,所有额外的工作很容易导致那些旧浏览器的用户体验下降。
你是否应该使用它最终取决于你,但一定要问自己什么对用户最好,不一定是设计师:]
Modernizr
Modernizr 是一个功能检测库,它允许您以简单的方式检查新的 Web 功能。默认情况下,((您可以在此处构建自定义版本)[ http://modernizr.com/download/] ,更改您想要的任何内容)它会添加类 <html>
页面上的元素,使得根据其结果修改设计变得非常容易。
.css-gradients .background {
background: linear-gradient(to bottom, black 0%, white 100%);
}
.no-css-gradients .background {
background: url(gradient.jpg);
}
yepnope({
test : Modernizr.mediaqueries,
nope : ['css3-mediaqueries.js']
});
关于css - html5shim、css3-mediaqueries.js 和 Modernizr 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23368046/
平时很少在jquery中用到this。查看代码时发现用到了,就调试出this的值,心想原来如此。还是挺有用的。这里总结一下this与$(this)的区别和使用。 $(this)生成的是什么?
使用单例类和应用程序范围的托管 bean 来保存应用程序数据有区别吗? 我需要查找某些 JNDI 资源,例如远程 bean 接口(interface),因此我为自己编写了一个单例来缓存我的引用并且只允
如果您仔细查看包含的图片,您会注意到您可以使用 Eclipse IDE 重构 Groovy 代码并将方法转换为闭包,反之亦然。那么,闭包到底是什么,它与方法有什么不同呢?有人可以举一个使用闭包的好例子
vagrant box repackage有什么区别( docs ) 和 vagrant package ( docs )? 我意识到 vagrant package仅适用于 VirtualBox 提
我想看看是否有人可以解释为什么以下代码适用于 valueOf 但不适用于其他代码。 import java.math.BigDecimal; public class Change { publ
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicates: What is Closures/Lambda in PHP or Javascript in layman te
This question already has answers here: Vagrant, Docker, Puppet, Chef (3个答案) 2年前关闭。 docker和chef有什么共同
以下代码在95%的机器上产生相同的输出,但是在几台机器上却有所不同。在 Debug模式下,输出: Changing from New to Fin OK 但在 Release模式下: Changing
////Creating Object var Obj; // init Object Obj= {}; 它们之间有什么区别两个? 有没有可能把它变成一个单行? 这样使用有什么好处吗?
我想找出定时器服务之间的区别。我应该使用哪个以及何时使用。我正在使用 Jboss 应用服务器。 1) java.ejb.Schedule。 @Schedule注解或配置自xml。 2) javax.e
我发现在 C++ 中可以通过三种不同的方式将对象传递给函数。假设我的类(class)是这样的: class Test { int i; public: Test(int x);
有什么区别。 public class Test { public static void main(String args[]) { String toBeCast = "c
如果我有一列,设置为主索引,设置为INT。 如果我不将其设置为自动递增,而只是将唯一的随机整数插入其中,与自动递增相比,这是否会减慢 future 的查询速度? 如果我在主索引和唯一索引为 INT 的
这两种日期格式有什么区别。第一个给出实际时间,第二个给出时间购买添加时区偏移值。 NSDateFormatter * dateFormatter = [[NSDateFormatter alloc]
如果有一个函数,请说foo: function foo() { console.log('bar'); } 那么在 JavaScript 中,从另一个函数调用一个函数有什么区别,如下所示: f
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 4 年前。 Improv
代码是什么: class Time { private: int hours; int minutes; int seconds; pu
我知道这是非常基本的,但有人介意解释一下这两个数组声明之间的区别吗: #include array myints; ...和: int myints[5]; ...以及为什么 myints.size
我学会了如何根据 http://reference.sitepoint.com/css/specificity 计算 css 特异性但是,基于this reference,我不明白伪类(来自c)和伪元
为什么在运行 2) 时会出现额外的空行?对我来说 1 就像 2。那么为什么 2) 中的额外行? 1) export p1=$(cd $(dirname $0) && pwd) #
我是一名优秀的程序员,十分优秀!