在 IE10 开发人员工具、JavaScript 和 CSS-wise 中,Quirks Mode 和 Internet Explorer 5 quirks 有什么区别?
这两种模式中的哪一种可以从 HTML 触发(相对于开发者工具)?
我读了this blog post在 MSDN 上,但无法理解这种 IE5 怪癖模式何时可以在真实世界的网站上运行。它说他们所要做的就是不包括文档类型并且浏览器必须在兼容性 View 中。后者是手动启用还是通过 HTML 或什么启用?
我是一名插件作者,我担心其他人会因为他们的文档/浏览器模式而损坏我的插件。
最佳答案
IE10 之前的 IE 版本只有一个 Quirks 模式。此模式现在在 IE10 及更高版本中称为 IE5 Quirks。
IE10 引入了第二种 Quirks 模式,它简称为 Quirks。
这两种模式都将渲染模式更改为使用旧的“怪癖”盒模型,以及其他布局更改。这一点在他们之间是一致的。
最初的 Quirks 模式基本上是一种模拟 IE5 的向后兼容模式。因此,除了更改框模型等之外,它还禁用了自 IE5 以来引入的大多数浏览器功能——因此在这种模式下,所有新的 HTML5 功能都将不起作用。
较新的 Quirks 模式使用与旧 quirks 模式相同的呈现规则,但不会禁用所有浏览器功能。
这是它们之间的基本区别。
那么问题就来了,为什么要同时拥有这两种模式?
答案是其他浏览器(例如 Chrome)也有 Quirks 模式,当页面没有文档类型时会触发(就像 IE)。但其他浏览器从未像 IE 那样禁用其任何功能以实现向后兼容性。
结果是,与其他浏览器相比,处于怪癖模式的网站在 IE 中看起来可能完全不同,即使基本呈现规则相同也是如此。
因此,IE 引入了较新的 quirks 模式,以提高 quirks 模式下站点的跨浏览器兼容性。
但结果是,较新的 quirks 模式会呈现一些与旧的 quirks 模式不同的页面,因此仍然需要较旧的 quirks 模式,以便 MS 支持其网站为其编写的用户。
最终,如果可能的话,应该避免使用怪癖模式(其中任何一个)。尽管 MS 通过引入 extra 模式进行了跨浏览器的努力,但当您处于 quirks 模式时,浏览器之间仍然存在重大差异。
最佳做法是尽可能使用标准模式。
Quirks 模式应该是不必要的:如果您需要 Quirks 模式框模型,可以使用 CSS box-sizing:border-box 在标准模式下访问它。
关于javascript - IE 1 0's "Quirks"和 "Internet Explorer 5 Quirks"模式有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19297085/
我正在尝试测试是否存在表单。我是Rails新手。我的new.html.erb_spec.rb文件的内容是:require'spec_helper'describe"messages/new.html.erb"doit"shouldrendertheform"dorender'/messages/new.html.erb'reponse.shouldhave_form_putting_to(@message)with_submit_buttonendendView本身,new.html.erb,有代码:当我运行rspec时,它失败了:1)messages/new.html.erbshou
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar
我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test
我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que
我正在尝试编写一个将文件上传到AWS并公开该文件的Ruby脚本。我做了以下事情:s3=Aws::S3::Resource.new(credentials:Aws::Credentials.new(KEY,SECRET),region:'us-west-2')obj=s3.bucket('stg-db').object('key')obj.upload_file(filename)这似乎工作正常,除了该文件不是公开可用的,而且我无法获得它的公共(public)URL。但是当我登录到S3时,我可以正常查看我的文件。为了使其公开可用,我将最后一行更改为obj.upload_file(file
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
我在新的Debian6VirtualBoxVM上安装RVM时遇到问题。我已经安装了所有需要的包并使用下载了安装脚本(curl-shttps://rvm.beginrescueend.com/install/rvm)>rvm,但以单个用户身份运行时bashrvm我收到以下错误消息:ERROR:Unabletocheckoutbranch.安装在这里停止,并且(据我所知)没有安装RVM的任何文件。如果我以root身份运行脚本(对于多用户安装),我会收到另一条消息:Successfullycheckedoutbranch''安装程序继续并指示成功,但未添加.rvm目录,甚至在修改我的.bas
下面的代码在我第一次运行它时就可以正常工作:require'rubygems'require'spreadsheet'book=Spreadsheet.open'/Users/me/myruby/Mywks.xls'sheet=book.worksheet0row=sheet.row(1)putsrow[1]book.write'/Users/me/myruby/Mywks.xls'当我再次运行它时,我会收到更多消息,例如:/Library/Ruby/Gems/1.8/gems/spreadsheet-0.6.5.9/lib/spreadsheet/excel/reader.rb:11
我正在学习Ruby的基础知识(刚刚开始),我遇到了Hash.[]method.它被引入a=["foo",1,"bar",2]=>["foo",1,"bar",2]Hash[*a]=>{"foo"=>1,"bar"=>2}稍加思索,我发现Hash[*a]等同于Hash.[](*a)或Hash.[]*一个。我的问题是为什么会这样。是什么让您将*a放在方括号内,是否有某种规则可以在何时何地使用“it”?编辑:我的措辞似乎造成了一些困惑。我不是在问数组扩展。我明白了。我的问题基本上是:如果[]是方法名称,为什么可以将参数放在括号内?这看起来几乎——但不完全是——就像说如果你有一个方法Foo.d