- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为客户(项目已被接受,但现在是解释不同功能的问题)写一份详细的估算,以开发一个响应式布局的网站。
这不是我第一次进行此类开发,但这是一个关键客户,必须铺平道路。
布局将从 300px 宽度调整到 1200+px,因此几乎适用于“任何”设备和浏览器,但我对此的 promise 有点失落。对于桌面网站,很容易在您的契约(Contract)中写明支持的浏览器将是“IE7+、最新版本的 FF、Safari、Chrome、Opera”,但是对于响应式网站,您怎么写?
我知道我有很多设备可以用来执行测试(比如 PC、Mac、iPad、iPhone、2 或 3 台 Android 设备),但我该对我的客户说什么呢?我不能写“网站可以在任何设备上运行”,也不能给出它可以运行的设备/浏览器组合的详尽列表。而且我不想陷入“我叔叔在他的 2.2 Android 旧手机上看到该网站但它不工作” 的困境。
有很多桌面工具可以模拟各种视口(viewport)并对其进行测试,但它们很难像“真实的东西”那样工作;还是我们开发人员可以“按契约(Contract)”引用一种标准?您如何管理它以及您对客户的 promise 是什么?
1 Câu trả lời
采用渐进式增强方法进行开发。不可能让一个网站像素完美,并且在每个浏览器上都一样。
采用分层方法(金牌/银牌/铜牌)。旧的和未经测试的浏览器将获得内容(IE7,旧的黑莓,旧的任何东西)。新浏览器的内容和布局都不错(IE8/9、Firefox < 4)。现代浏览器会得到一个典型的漂亮的现代网站。
可以通过适当的思考来设置它。从下往上构建它。青铜到白银再到黄金。从最小的设置开始(只有颜色、字体、文本。没有 div,没有布局,nada)。这是你的青铜器。接下来获得银级设置。包括布局。此布局适用于较小的屏幕。最后我们将拥有黄金。这将包括用于更大屏幕的媒体查询和用于提高可用性和精细度的 JS。
通过将布局包装在@media only screen{} 查询中,可以将布局分为青铜级和银级。旧的浏览器不理解它。内容仍会出现在这些浏览器上。要在 Silver 和 Gold 之间进行拆分,只需放入一个最小宽度的媒体查询即可。
此外,确保客户理解“网站可在任何设备上运行”的定义。仅仅因为 Opera Mini 不支持 line-height 并不意味着该网站无法正常工作。这是 Brad Frost 就该主题撰写的一篇文章:支持与优化:http://bradfrostweb.com/blog/mobile/support-vs-optimization/
希望能帮到你
关于testing - 响应式布局针对哪些设备/浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14477289/
我使用 apt-get install libgtest-dev 安装了 gtest 我正在尝试检查它是否有效。 所以我在 eclipse 中编写了简单的测试代码。 但是有错误, undefined
($test) = (@test); $test = @test; 用一个括号括住变量,它访问数组的第一个元素。我找不到有关数组括号的信息。 最佳答案 ($test) = (@test); 这会将@t
在 clojure.test 中有一个允许同时测试多个设备的宏: are . 在 clojure.test 中,可以结合 are宏与 testing ? IE。就像是: (are [scenario
通常,Rust 中的单元测试被赋予一个单独的模块,该模块使用 #[cfg(test)] 进行条件编译: #[cfg(test)] mod tests { #[test] fn test
在过去,编程很少涉及猜测。我会写几行代码,一眼就能 100% 确定代码做什么和不做什么。错误主要是拼写错误,但与功能无关。 我相信在过去的几年中存在这种“试错”编程的趋势:编写代码(就像在草稿中一样)
在building the Kotlin compiler之后(在提交e80a01a处): ./gradlew dist 测试未成功通过: ./gradlew compiler:test 由于很少有测
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this qu
最近一直在思考模糊测试和猴子测试的区别。根据 wiki,猴子测试似乎“只是”一个单元测试,而模糊测试则不是。安卓有 UI/Application Exerciser monkey而且它看起来不像是单元
Theo tình hình hiện tại, câu hỏi này không phù hợp với định dạng Hỏi & Đáp của chúng tôi. Chúng tôi mong đợi câu trả lời được hỗ trợ bằng sự kiện, tài liệu tham khảo hoặc chuyên môn, nhưng câu hỏi này có thể gây ra tranh luận, tranh cãi, thăm dò ý kiến hoặc thảo luận mở rộng. Nếu bạn cảm thấy vấn đề này có thể được cải thiện và có thể mở lại, hãy truy cập
现在我正在使用 CMake 设置一个 C++ 测试环境。其实我已经意识到我想做什么,但我对两种不同的测试输出风格感到困惑。在我下面的示例中,“make test”实际上做了什么?我认为“make te
在 VS2012 中运行单个测试时,测试资源管理器底部会显示一个窗口,其中包括(假设失败)旁边带有“测试失败”的红色图标。紧随其后的是带有“已用时间”的失败消息。 我想简单地知道是否有办法清除这个窗口
bash 是否可以从 shell 执行命令,如果它返回某个值(或空值)则执行命令? if [ "echo test" == "test"]; then echo "echo test output
这个问题在这里已经有了答案: 8年前关闭。 Possible Duplicate: What is a smoke testing and what will it do for me? 为什么“冒烟
x86 下的并行编程可能很困难,尤其是在多核 CPU 下。假设我们有多核 x86 CPU 和更多不同的多线程通信组合。 单一作者和单一读者 单个读者多个作者 多个读者和单个作者 多个读者和多个作者 那
我使用Ctest来运行一堆使用add_test()注册的Google测试。当前,这些测试没有任何参数。但是,我想在运行--gtest_output=xml时为它们提供所有参数(所有参数都通用,特别是c
我有下表和数据: CREATE TABLE `test` ( `id` int(11) NOT NULL auto_increment, `name` varchar(8) NOT NULL,
go test 的两个标志 -parallel 和 -test.parallel 之间的区别以及哪个标志优先? -parallel n Allow parallel execu
在我的组件 AudioPlayer 中,我有一个 download() 方法: download() { this.audio.pause(); window.open(this.file,
您必须承认,对于 Rails 和数据库的新手来说,rubyonrails.org 上的官方解释使所有这四个任务听起来完全一样。引用: rake db:test:clone Recreate the
我过去曾讨论过这个话题,我想我可能知道答案,但我无法正确地表达出来。 这是我认为我所知道的: 如果您在编写测试之前已经有了关于事情如何工作的想法,那么我怀疑您是测试优先而不是测试驱动,因此您首先编写测
Tôi là một lập trình viên xuất sắc, rất giỏi!