当前位置:  开发笔记 > 编程语言 > 正文

HTML5发展中的命名约定和微格式

这看来有一辈子之久,让我第一次坐下来,一杯茶,一块巧克力饼干,想到我们用于HTML/XHTMLid和class属性值的命名约定。不是一辈子,但它是好久以前,2004年5月29日,在我退休的博客和所有的大话,当我调查40个设计师的网站,看看他们为公共页面元素使用">

这看来有一辈子之久,让我第一次坐下来,一杯茶,一块巧克力饼干,想到我们用于HTML / XHTML id和class属性值的命名约定。

不是一辈子,但它是好久以前,2004年5月29日,在我退休的博客和所有的大话 ,当我调查40个设计师的网站,看看他们为公共页面元素使用的约定,如标题和横幅,导航,内容和页脚 ( 那时候的结果 )。

这几乎不是科学研究,但在那年6月,我跟进了Eric Meyer的一些意见 ,并出版了一套命名约定。当我发现一个网站已经通过了这些命名约定时,我总是很高兴,我任然每一天都在用,甚至超过4年后的每一天。

那时候我的想法可以概括成这样

id和class属性名称必须反映元素的功能或内容,而不是反映了介绍。 所以出了header并再来branding; 出了footer并再取而代之的是site-info。

Naming should take on almost an XML style structure.命名将要承担几乎整个XML式结构。因此,内部content来了 content-main , content-sub 和 content-supp 。

这些约定为我服务的很好,我所做的,几乎没有改变他们的核心。毫无疑问,他们都使我的工作速度更快,更一致和更有益。 他们使建立产品更容易,以及更容易用我的思维方式培养与我共事的人 。命名约定起作用。

足够的巧克力饼干可以下沉一艘战舰

在4年中发生了许多事(而且我吃的巧克力饼干足以下沉一艘小战舰了)。我已经看到,所谓的CSS框架发展以及流行。我已经看到了强大的微格式根据现有的标准带来他们的一套class属性值,如电子名片 。我也看了Javascript框架的流行,例如jQuery的成长,伴随界面行为的所有插件和标记库项目。

虽然我对命名约定的重要性的考虑没有改变一个字节,我自己的约定已演变。首先关于微格式,以及最近涉及HTML5 。

微格式和相关的属性名称
 
让我们面对它,微格式,如hCard,hCalendar,hAtom和其他草案带来了如此多的属性值,以至于常常没有必要考虑哪一个构建文件或提供了哪一个约束CSS模式的挂钩这些更多的属性值。现在我使用微格式达到这种程度,以至于我甚至不使用class属性(微格式伴随的class属性除外)发展整个页面。

在难得的场合,我需要添加一个新元素(假设布局目的的一个划分)我首先想到的是延伸微格式中已经存在的。我将给您举个使用hAtom模式的例子:


Title


Main content


Related content


如果您正在保持微格式的优势,你已经注意到, entry-related不是 hAtom 模式的一部分,但在这种的情况下,我绝对地,明确地不得不有一个额外的因素,如何组成一个像related-sidelinks这样的属性值呢?

什么时候延伸微格式的命名模式看起来更合逻辑呢?

HTML5

在这个章节的开始,我应该坦率的说,此时此刻,我对HTML5的关注不能较少。不过,这不是问题的关键。HTML5引入了一些潜在的非常有用的新元素,例如:

section
 
一个普通的文件或应用程序部分。章节 ,在这方面,是内容的一个主题分类。

article
 
由文章组成的页面的一部分,构成文档、网页或网站的一个独立部分。 This could be a forum post, a magazine or newspaper article, a Web log entry, a user-submitted comment, or any other independent item of content.这可能是一个论坛,杂志,报纸文章,网络日志,用户提交的评论,或任何其他的内容的独立项目。

aside
 
由内容组成的页面的一部分,与aside 元素相关的内容无关,并可以被认为是从内容中分离出来的。 这些部分,经常表现为印刷排版侧边栏。
 
As it was logical for the inventors of Microformats to base their schemas on existing specifications, surely it now makes sense for me to adapt my naming conventions to follow those in HTML5?由于对微格式的发明者来说,在现有的规范上发展他们的模式是合乎逻辑的,当然,现在对我以适应我的命名约定去跟随HTML5很有意义?当然,我还不能使用:


Title


Main content


但现在我可以使用id和class属性值来帮助我熟悉的HTML5,带着我的文档朝它更进一步。


Title


Main content


Related content

我觉得对我来说是一个合乎逻辑的下一步。因此,看看这个示范文件,我已经采取了HTML5元素为我的命名约定的基础。除了我刚才提到的,留意,我已经确定了分类和导航的方式(nav ),用colgroup和col构建字段 ,把一个无序列表转换为网格,用datagrid。

HTML5的标记规范还包括details , dialog和figure ,我同样地可以当做属性值使用。

如果今天我可以实现一个愿望,这个愿望将是所有的CSS框架的开发将采取相同的命名约定(而且也广泛地嵌入微格式),以便初学意义丰富的标记和CSS的人们有个正确的出发点,使用的更有意义,更合逻辑,而不是表象的id和class属性。

我很高兴我的命名约定为我工作的这么好,我觉得他们应到得到一点偿付,为了保持他们相关,偶尔更新。

哦,这也意味着我可以光明正大吃更多的饼干。
 


推荐阅读
  • 本文旨在构建一个JavaScript函数,用于对用户输入的电子邮件地址和密码进行有效性验证。该函数将确保输入符合标准格式,并检查密码强度,以提升用户账户的安全性。通过集成正则表达式和条件判断语句,该方法能够有效防止常见的输入错误,同时提供即时反馈,改善用户体验。 ... [详细]
  • 当前,众多初创企业对全栈工程师的需求日益增长,但市场中却存在大量所谓的“伪全栈工程师”,尤其是那些仅掌握了Node.js技能的前端开发人员。本文旨在深入探讨全栈工程师在现代技术生态中的真实角色与价值,澄清对这一角色的误解,并强调真正的全栈工程师应具备全面的技术栈和综合解决问题的能力。 ... [详细]
  • 通过自定义 `TextView`,实现了在用户点击或焦点变化时动态调整字体颜色的效果。该方法利用了 `ColorStateList` 和 `Selector` 资源文件,确保了界面交互的流畅性和视觉效果的提升。具体实现中,通过重写 `onTouchEvent` 和 `onFocusChanged` 方法,精确控制了颜色变化的时机和状态。此外,还对性能进行了优化,确保在高频率操作下依然保持高效响应。 ... [详细]
  • jQuery学习笔记:深入理解事件委派(2014年8月3日)
    在jQuery中,事件委托机制主要通过`closest()`方法实现。该方法用于查找与指定选择器匹配的最近祖先元素,从当前元素开始逐级向上遍历DOM树。这一技术不仅提高了代码的效率,还能有效处理动态生成的元素。参考资料:jQuery遍历方法详解。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 本文深入探讨了 HTML 中的 `margin` 属性,详细解析了其基本特性和应用场景。文章不仅介绍了 `margin` 的基本概念,还重点讨论了垂直外边距合并现象,并分析了 `margin` 在块级元素与内联元素中的不同表现。通过实例和代码示例,帮助读者全面理解 `margin` 的使用技巧和常见问题。 ... [详细]
  • 在Spring框架中,基于Schema的异常通知与环绕通知的实现方法具有重要的实践价值。首先,对于异常通知,需要创建一个实现ThrowsAdvice接口的通知类。尽管ThrowsAdvice接口本身不包含任何方法,但开发者需自定义方法来处理异常情况。此外,环绕通知则通过实现MethodInterceptor接口来实现,允许在方法调用前后执行特定逻辑,从而增强功能或进行必要的控制。这两种通知机制的结合使用,能够有效提升应用程序的健壮性和灵活性。 ... [详细]
  • SQLmap自动化注入工具命令详解(第28-29天 实战演练)
    SQL注入工具如SQLMap等在网络安全测试中广泛应用。SQLMap是一款开源的自动化SQL注入工具,支持12种不同的数据库,具体支持的数据库类型可在其插件目录中查看。作为当前最强大的注入工具之一,SQLMap在实际应用中具有极高的效率和准确性。 ... [详细]
  • 探索JavaScript倒计时功能的三种高效实现方法及代码示例 ... [详细]
  • Django框架进阶教程:掌握Ajax请求的基础知识与应用技巧
    本教程深入探讨了Django框架中Ajax请求的核心概念与实用技巧,帮助开发者掌握异步数据交互的方法,提升Web应用的响应速度和用户体验。通过实例解析,详细介绍了如何在Django项目中高效实现Ajax请求,涵盖从基础配置到复杂场景的应用。 ... [详细]
  • 构建顶级PHP博客系统:实践与洞见
    构建顶级PHP博客系统不仅需要扎实的技术基础,还需深入理解实际应用需求。本文以Zend Studio为开发环境,MySQL作为数据存储,Apache服务器为运行平台,结合jQuery脚本语言,详细阐述了从环境搭建到功能实现的全过程,分享了开发PHP博客管理系统的宝贵经验和实用技巧。 ... [详细]
  • $apply() 方法允许从 AngularJS 框架外部触发表达式的执行,确保其在 AngularJS 的上下文中运行。例如,当你使用 `setTimeout()` 或者集成第三方库时,可以通过调用 `$apply()` 来确保事件更新能够被 AngularJS 检测到并触发脏检查机制,从而实现数据的双向绑定。这一过程不仅保证了数据的一致性,还提升了应用的响应速度和用户体验。 ... [详细]
  • 在编程中,`SyntaxError: unterminated string literal` 错误通常出现在使用 jQuery 或其他 JavaScript 库时,表示某个字符串字面量未正确闭合。这种错误通常是由于代码中的引号不匹配或缺失导致的,例如在字符串中意外地包含了未转义的引号字符。解决此问题的方法是仔细检查相关代码段,确保所有字符串都已正确闭合,并且引号已适当转义。此外,使用现代代码编辑器或 IDE 的语法高亮功能可以帮助快速定位此类问题。 ... [详细]
  • 如何在服务器后台运行PHP脚本?
    如何在服务器后台运行PHP脚本? ... [详细]
  • 使用原生JavaScript为HTML元素动态添加新样式 ... [详细]
author-avatar
mobiledu2502869077
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有