网站评论:epicawesome.co

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

之前,当我为这个网站发起 Kickstarter 项目时,我提供的奖励之一是,对任何网站进行公开或私下的评论。唯一接受的人是 Gus Fune,他选择公开评论他参与的一个网站:epicawesome.co。感谢 Gus 让这次成为一个公开的学习机会!

这是桌面视图

但在您到达那里之前,网站有一个加载屏幕

这在 Flash 时代很常见,但现在您不太常看到它了。这个网站确实是一个普通的 HTML5 网站。有一个“预加载器”脚本,它必须做一些花哨的事情,确保在显示网站之前加载图像。当预加载器完成后,覆盖层会滑开,显示网站。

人们很容易纠结于网站的大小,并建议减小尺寸以避免预加载。但在这里我不太介意它。我的加载时间大约是 8 秒。如果没有预加载器,我可能会感到恼火,但显示加载进度让我保持耐心。请记住,我的宽带网络相当不错。如果我的 8 秒对其他人来说是 60 秒,我敢打赌他们不会有同样的耐心。

我建议进行一些低带宽测试。有一个名为 SpeedLimit 的 Mac 应用程序可以帮助您做到这一点,方法是降低您的快速网络速度。

这是网络瀑布图

DOM 就绪时间在健康的 1 秒内发生,这使得探索另一种加载策略变得更有吸引力。也许您可以只立即加载顶部最大的图像,然后等待滚动事件触发其余图像的加载。作为奖励,您将节省带宽。

我不会纠结于巨大的图像。看起来这正是您想要采用的风格方向,如果您愿意,可以这样做。我将图像通过图像优化器运行,但没有节省任何空间,所以您正在正确地进行优化!


当您向下滚动页面时,内容被划分为几个部分,每个部分都有新的颜色、新的样式和新的英雄背景图像。如果屏幕足够高,下一个部分就会显示出来,并且过渡相当突然。

虽然将这些图像分开而不是一个巨大的图像(出于缓存原因)可能比较好,但也许可以设计成让它们更平滑地相互转换。我还认为,检测一下视口大小并使每个部分正好占据一个浏览器窗口大小是个好主意,这样下一个部分就不会在滚动之前显示。


移动版本是这样的

不向小屏幕移动设备显示 7.7 MB 版本是一个明智的举动!

但是,这个版本与另一个版本差别太大,让我开始思考。这对您来说是否足以作为网络体验?如果是,那么这种极简主义是否可以出现在大屏幕版本上?大屏幕版本非常强烈且色彩丰富,您甚至可以将其描述为“极繁主义”!我想知道人们是否会意识到这是同一个机构。

我认为,移动设备上的用户可能希望了解的信息不仅仅是您的简介和电话号码。大屏幕版本解释了您的服务,展示了您与之合作过的客户,展示了以往工作的示例等等。我可能会尝试使移动版本的內容更加接近,并使风格方向更加接近。

移动设备检测也始终很困难。在视网膜 iPad 上,它会进入移动模式

我认为该设备可以很好地处理桌面版本。

一个简单的改进可能是提供某种“查看完整网站”的操作。


我觉得网站可以从规范一下排版中获益。我统计了大约 13 种不同的字体在使用。其中一些只是有趣的变体,我理解这一点,所以我不希望您认为我只是在重复一些关于在任何特定情况下可以使用多少种字体的随意规则。

以下是一些具体内容。

Tahoma 仅在此处使用

我觉得您可以选择其他已经在其他地方使用的字体,或者选择一种比 Tahoma 更能体现“场地标志字体”的字体。我认为这是一个绝佳的机会,可以更进一步,确保这些字母与图像中的线条对齐。这将证明您对工艺的专注,我知道我个人会欣赏这一点。

“SeasideResortNF”字体仅在两个地方使用。其中一个是这个语言切换器

我觉得这种字体设计用于比这大得多的尺寸,并且在这么小的尺寸下效果不好。这是一个将其替换掉并选择网站上其他正在使用的字体的绝佳机会。

“eurostileregular”字体在这里看起来不错

所以我会在这里再次使用它,而不是在网站上首次使用 Helvetica。

文本隐藏在灯后面的方式非常巧妙。

我可能会看看您是否可以以某种方式引入阴影来完成深度错觉,并可能放弃 Courier,而使用已经建立的其他字体之一。如果它来自打字机或类似的东西,当然可以,但现在看起来就像墙上的海报,可以是任何东西。


至于资源,我已经提到图像经过了很好的优化,这很棒。CSS 已被压缩,JS 也被压缩,所以这方面做得很好!由于这是一个单页网站,您可以将三个 JavaScript 资源(jQuery + 预加载器 + 脚本)压缩在一起。它们并不大,所以这样做不是一个坏主意。

样式表位于头部,脚本位于页脚,完美。


从语义上讲,在我看来它非常可靠。头部是<header>。部分是<sections>。每个部分都有一个合适的头部。仅用于样式的内容是<div>

我有一个建议,就是将导航放在一个无序列表中。现在它只是<nav> <a>——这在语义上足够了,但在经过一些健康的社区讨论后,列表中的导航似乎是最佳实践。


评论 CSS 有点困难,因为老实说,我认为像这样的单页小型网站不需要对其架构选择进行过度审查。但为了进行评论,让我们找一些东西。

我特别关注style.less文件。

LESS可以进行包含,所以无需在顶部转储 Normalize.css 的内容。

@import "normalize.css";

我喜欢 Normalize,但对于像这样的单页超风格化网站来说可能有点过头了。它的大约 2/3 内容处理了您在这个网站上没有的元素。而且您无论如何都会重置其他一些内容。例如,Normalize 设置了标题的边距和大小,而您稍后会重置它们。

有专门用于 box-shadow 和 border-radius 的 mixin,现在不再需要了。关于供应商前缀,我建议完全删除它们,并在构建过程中使用Autoprefixer

样式表中使用了相当多的 ID。您可能在哲学上不同意我的观点,但我喜欢永远不要使用它们来设置元素的样式。我尤其要避免像您在某些情况下那样对它们进行标签限定,例如section#home。ID 是唯一的,因此例如永远不会有article#home。如果您喜欢为了可读性或提醒而使用标签,您可以使用/*section*/#home。对任何内容进行标签限定通常不是一个好主意,只有很少情况下您应该设置元素本身的样式(而不是使用有意义的类),所以这通常是需要注意的事情。

在底部,您有一个视网膜显示屏媒体查询,您可以将其简化为

@media 
(-webkit-min-device-pixel-ratio: 1.5), 
(min-resolution: 192dpi) { 
    /* Retina-specific stuff here */
}

希望这对您有所帮助,Gus!

如果其他人有任何有见地的评论,请在评论中分享。