当前位置: 首页 > news >正文

CSS裸奔日

css-naked-day-2009-logo

今天是CSS裸奔日,在这一天,全世界许多网站会同时褪下华丽的CSS衣裳,露出各自本来的原始的面目。

在我看来,CSS裸奔日是对Web标准的真正理解的一种体现。

按照Web标准的说法,网页应该由三个部分组成:

  • 结构(HTML)
  • 表现(CSS)
  • 行为(JavaScript)

我曾翻译过一篇文章《Web中的三层》,其中的三层也就是这三个部分。

那么怎么样才算是“符合Web标准”,依我看来,至少要具备下列三个条件:

  • 使用标准的语法
  • 清晰的分离上述三个部分,不相互混杂
  • 无论去掉表现层还是行为层,都不会影响结构的正常浏览

前两条其实很容易做到,但我并不认为做到了前两条就意味着符合了Web标准。

第三条才是真正重要的规则。如果在去掉了表现层之后,会对网页的正常浏览造成障碍,那么一切就都毫无意义了。这种情况通常会发生在那些喜欢使用CSS绝对定位或喜欢使用JavaScript来控制显示内容的网页中。

于是我也凑热闹参加了一下,当然我并不是想要炫耀一下我是多么的“标准”,正好相反,事实上它并不标准,所以很适合作为反例。

如果你恰巧在今天造访了我的非技术blog,请不要惊慌,也不要害羞,它只是在裸奔而已:

css-naked-day-2009-1 

下面是穿好衣服的状态:

css-naked-day-2009-2

如果只看裸奔时的页面,你也许会以为我的非技术blog叫做“龟的洁癖”,这很尴尬,其实那只是一篇日志的标题。通过和穿好衣服的页面进行对比,就会发现裸奔时Logo不见了,这的确是我在设计该主题时的一处考虑不周。

这也是本文想要表达的思想,虽然我的非技术blog在去掉CSS之后几乎不影响正常浏览,日志的标题、信息、内容都以正确的顺序展示,但是它的Logo却不见了,因为它是完全定义在CSS中的,而且没有采用比较通用的用文字替代的方式,至少这会对浏览者造成一定的困扰。

这就是为什么我说,只是使用标准语法并分离了结构、表现与行为是不够的。

这就是为什么我说,CSS裸奔日是对Web标准的真正理解的一种体现。

相关文章:

  • 基于 Json 的富客户端简易分页留言板设计,附源码
  • Flash组件开发研究(1):简单的新闻列表
  • ASP.NET中的一些小技巧
  • 写查询语句出现的问题.显示查不到的数据出错,帮忙看看
  • 深入剖析SAS技术
  • linux命令--grep
  • 鞋为什么会臭?14个方法巧除鞋臭脚臭!
  • Linux下history命令用法15例-zt
  • 我的架构经验小结(四)-- 实战中演化的三层架构
  • 世卫专家评估甲型H1N1病毒大流行风险
  • Ruby之旅—Ruby解释器的安装
  • 我在Asp.net记录错误日志的代码
  • GRUB 安装使用
  • 生成建表脚本(V2.0)
  • EX07学习笔记之一:Exchange2007在Win2003上的安装
  • $translatePartialLoader加载失败及解决方式
  • 0x05 Python数据分析,Anaconda八斩刀
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • go append函数以及写入
  • Idea+maven+scala构建包并在spark on yarn 运行
  • Java知识点总结(JavaIO-打印流)
  • Mysql优化
  • vue-cli在webpack的配置文件探究
  • 第2章 网络文档
  • 猴子数据域名防封接口降低小说被封的风险
  • 蓝海存储开关机注意事项总结
  • 如何优雅地使用 Sublime Text
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 详解移动APP与web APP的区别
  • 怎样选择前端框架
  • #LLM入门|Prompt#3.3_存储_Memory
  • #QT(一种朴素的计算器实现方法)
  • #宝哥教你#查看jquery绑定的事件函数
  • (07)Hive——窗口函数详解
  • (二)JAVA使用POI操作excel
  • (六)c52学习之旅-独立按键
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (一)Linux+Windows下安装ffmpeg
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)重识new
  • .L0CK3D来袭:如何保护您的数据免受致命攻击
  • .NET MVC之AOP
  • .NET Standard 的管理策略
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .NET上SQLite的连接
  • .net实现头像缩放截取功能 -----转载自accp教程网
  • @Controller和@RestController的区别?
  • [ACTF2020 新生赛]Include
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [C++] 默认构造函数、参数化构造函数、拷贝构造函数、移动构造函数及其使用案例