【发布时间】:2016-11-27 20:57:20
【问题描述】:
我是一名从事独立项目的后端开发人员,因此请原谅可能会缺乏任何知识。我正在使用一个名为 AdminLTE 的免费和开源管理面板模板,其中包含一堆模式。我已经研究了一段时间,一切都很好,除了我没有注意到没有声明一个文档类型。使用标准并且(据我所知)强烈推荐 html5 严格模式<!DOCTYPE html> 我所有的模态都完全打破并超出了它们的界限。
就像我说的,我是一名后端开发人员,我只是看不到这条隧道尽头的曙光,所以我的问题是:怪癖模式真的那么糟糕吗?我已经在最新的 Chrome、Mozilla 以及三星在最新的 Android 上使用的任何东西上测试了我的页面,并且所有这些都运行良好且完全相同。
我将在此处附上我的具体问题,但是由于这违反了规则,这里的主要问题是怪癖模式在 2016 年是否仍然被认为是不好的做法。我意识到到处都有关于这个主题的几十个帖子,但没有一个非常新的,我们已经慢慢超越了 Windows XP 和旧版本的 IE,我觉得争论可能会有所不同。
模态看起来像这样,admins-modal-contentdiv 使用 jQuery 的 load() 或 html()(如果需要 POST)填充。
<div class="modal fade" id="admins-modal" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog c-modal-wrapper">
<div class="modal-content bg-black" >
<div id="admins-modal-content">
<div class="c-modal-topbar">
<h4>Admins</h4>
</div>
<div id="admins-modal-contentdiv" class="c-modal-content">
</div>
<div class="c-modal-bottombar">
<a class="btn btn-app" onclick="$('#admins-modal').modal('toggle');">
<i class="fa fa-arrow-left"></i> Back
</a>
</div>
</div>
</div>
</div><!-- /.modal-dialog -->
</div><!-- /.modal -->
相关的 CSS 看起来像这样
.c-modal-wrapper{
height:80%;
}
.c-modal-topbar{
font-weight:bold;
padding: 0px 0px 20px 0px;
width:95%;
margin-left:auto;
margin-right:auto;
}
.c-modal-content{
overflow-y:auto;
height:65%;
width:100%;
}
.c-modal-bottombar{
}
在这一点上,我想放弃并只使用 quirks 模式,但由于我想在未来的项目中依赖这种模板/模式使用风格,所以我想坚持标准,这样它就不会结束最终坏了。我为此投入了数百小时的工作,我担心这一切都会白费。
如果您有空闲时间并想看一下,您可以查看显示问题HERE 的示例页面,只需单击“显示模态”。 HERE 是它按预期工作的一个示例,没有任何 doctype 声明。除了 doctype 声明之外,这些页面都是相同的,都包含相同的 CSS 和 JS 文件。
再次抱歉违反规则,我无处可求助。感谢阅读。
【问题讨论】:
-
您发布的 CSS 未传达您在图像中显示的结果。因为您显示的 CSS 按预期工作。您显示的溢出是由于其他原因造成的,因此除非您可以创建一个显示问题的实际示例,否则我们将无法提供帮助。但是,让模态框保持在可视区域边界内并不困难。
-
@junkfoodjunkie 我已经直接从网站上复制了所有内容,添加/删除文档类型与图像中的完全一样。该示例在我提供的测试帐户中可用,但我现在将制作一个可直接链接的示例以使其更容易。
-
@junkfoodjunkie 我更新了问题,添加了新的易于访问的示例。 hosting.r4ge.ro/test.php
-
这似乎是一种神奇的想法。 “我改变快速/严格模式,事情就坏了。因此严格模式不好/没用”。这里隐藏的方面是简单的行为改变,你需要弄清楚如何在新的环境中达到预期的结果,这是完全可能的。 Quirks 模式的存在是为了向后兼容。如果您不想更改任何内容并保持旧应用程序运行,那么它就可以实现其目的。如果你真的想编写能够在浏览器之间提供一致行为的现代代码,那么它就是不适合这项工作的工具。
-
@the8472 老实说,我主要添加了该部分,而不是使其成为一个完全具体的“为我解决此问题”的问题。我知道怪癖与我需要的完全相反,因为我基本上是在创建一个新网站并询问是否使用向后兼容功能。我完全理解为什么会出现问题,但是我不知道是什么原因造成的,甚至不知道从哪里开始寻找。
标签: css html quirks-mode