类与ID - 可读性

jst*_*cks 0 html css class

在处理选择一个类和一个ID时,首选方法是什么?

例如,您可以拥有一堆可能相同样式的元素,并且可以使用相同的类.但是,出于可读性的目的,有时候为每个元素分配一个唯一的ID会很好.

显然你不想在每个元素都有ID的情况下荒谬地过火.但是,你们在哪里画线并使用所有ID,你可以使用类慢慢显着减少事情?如果是这样......何时?

Inc*_*ito 10

如何停止删除语义HTML.

大多数人通过查看源代码和HTML以及修补它来学习HTML,学习<tag>foo</tag>外观和运行方式.他们并没有真正深刻理解它,但他们继续做需要深刻理解的事情,副作用是你和成千上万的人每天都有的问题 - 他们做的事情他们不做我们完全了解这些工具是如何工作的,因为它在表面看起来如此简单,强大的用途被隐藏在有趣的手册中,没有人觉得需要阅读.一切都清楚地解释并记录了很长时间.

什么ID适用(直接来自HTML4规范,带有我的笔记)

id属性为元素分配一个唯一的标识符(它只发生在ONCE,从不发生过两次或更多,我厌倦了看到有人来到这个网站并在二十个元素中使用相同的ID放入他们的代码)

id属性在HTML中有几个角色:

  • 作为样式表选择器.(这意味着,您可以使用它来描述CSS样式)
  • 作为超文本链接的目标锚点.(当你可以跳转到页面的某个部分)
  • 作为从脚本引用特定元素的方法.(的document.getElementById( "什么"))
  • 作为声明的OBJECT元素的名称.
  • 用于通过用户代理进行处理(例如,用于在将HTML页面中的数据提取到数据库中时识别字段,将HTML文档翻译成其他格式等).

什么类是(直接来自HTML4规范,与我的笔记)

class属性[...]为一个元素分配一个或多个类名(这个可以重新用于你心中的内容) ; 该元素可以说属于这些类.类名可以由多个元素实例共享.class属性在HTML中有几个角色:

  • 作为样式表选择器(当作者希望将样式信息分配给一组元素时).
  • 用于通用用户代理处理.(基本上,它只是元素的另一部分)

什么?我不明白.

ID:它是某些东西的指纹,只有一个,你只在整个文档中使用一次指纹.只有在需要提供ID时才使用它.你可能不希望有数百个,甚至数十个.你很少需要开始制作这些.具体用途是针对目标锚点,在罕见的边缘情况下提高选择器速度.一般来说,你永远不会根据ID描述你的CSS,你可能会有一些边缘情况,例如#HEADER .body h1,可能与你不同#BODY,我仍然建议不要将它们作为ID而没有真正的理由.

类:与唯一指纹无关或链接到页面的各个部分,类不能唯一地标识某些内容.类描述了一组属于一起或应该以相同方式运行的事物.如果你是咖啡课程的一部分,你应该展示咖啡所期望的课程,如果你是一类手机,那么看起来像手机(不提供咖啡).

但是,我应该如何访问某些表格或第12列表项目的第6列中的第4个单元格?

这是人们不知道什么是HTML在空中举起并决定为所有元素分配ID的人.这是没有人正确解释HTML如何工作的全部副作用.这是一个很好的方式,说你没有早期RFTM或提问(在这种情况下,用户1066982,确实,这是惊人的,让我开心,我写这篇文章指向其他人,以后谁失败的HTML) .

你需要立即开始学习.不要假装你理解这些东西.

MDN是针对HTML文档,演示等的开发人员.

HTML不是一串文本,例如<foo><bar>baz</bar>blah<ding/></foo>,确定你是如何编写 HTML的,但如果你认为它是你在浏览器中不理解HTML.

HTML是一种结构类似于 XML的文档.HTML文档有一个模型,这意味着它们不是平面文本.该文档的文本表示是浏览器可以采用平面文本并将其转换为树结构的一种方式.树就像数组一样,除了它们不仅仅是一个接一个的数组中的扁平元素,而是它们嵌套,因此一个元素可能指向其他几个元素.

下面不是如何编写HTML文本的图表(从文档对象模型的w3c规范中窃取),这是您的浏览器如何将其存储在内存中的图表:

在此输入图像描述

因为它在内存中,它并不意味着"哦废话!我无法访问表格中第二个TR表格中的第一个TD!",这意味着你只需简单明了地向你的代码解释表格中有一个子元素.

  • JavaScript提供了完整的DOM API,允许您访问该DOM树中的每个节点.
  • PHP提供了一个完整的DOM API,允许您访问该DOM树中的每个节点.
  • C++有一个完整的DOM API,允许您访问该DOM树中的每个节点.
  • ASP提供了一个完整的DOM API,允许您访问该DOM树中的每个节点.
  • 一切触动了DOM提供了一个完整的DOM API,允许您访问的每一个节点在DOM树,那在解析HTML妄图各地抛出的正则表达式不合标准的软件除外.

使用DOM的API基于语义HTML访问这些节点.语义HTML意味着您的HTML结构很有意义.段落<p>标记,标题进入标题标记,依此类推.

在任何情况下,你永远不需要通过使用ID标签来修复值来重现DOM API,因为你不知道你只能说getAllEmentsByTagName("td")[4]要获得第四个元素.

如果你可以抓住getAllEmentsByName("td")[4]你不需要做<td id="id4">,然后getElementById("id4")因为你不想学习其他一个 API调用.我害怕有一天我以往任何时候都必须保持代码一堆被人留下谁觉得有必要坚持一个ID为每个元素"只是可以肯定的",特别是当我需要回去和第五之间插入一个新元素成千上万的表中的第六个元素(你能想象取代每个id?特别是当这个特征在10年前被解释了?!疯狂!)

文艺青年最爱的

  • HTML实际上并不只是一堆文本,只有一种方法可以访问它
  • rtfm,不要假装你理解它,因为你可以做一些事情,你会让自己退缩.
  • 不要在任何地方推送ID,只在绝对需要的地方使用它们.
  • 使用类来描述事物,而不是识别事物.
  • ?????
  • 利润.


Bol*_*ock 6

但是,出于可读性的目的,有时候为每个元素分配一个唯一的ID会很好.

这对我来说完全没有意义.是什么让ID比类更具可读性?如果拥有身份没有任何好处,那么为一组相关元素中的每一个分配唯一标识符毫无意义.

为了它的价值,要意识到单个元素可以同时具有类和ID.如果您的元素需要以某种方式进行唯一标识,请为其提供ID.如果多个元素的样式相同且无论如何都是相似的,请使用类.如果您的元素符合两个条件,请为它们提供两个属性,并相应地使用每个属性.