Re: 应该统一以下元素和标签的说法

我不太赞成把html中的概念当成面向对象的概念来理解,原因有2:

1.  html是SGML(Standard Generalized Markup Language)的一种应用。它仅仅是标记语言,是一种对数据的结构进行存储的一种语言,就像xml,yaml,json一样。

2. 面向对象系统是什么:从定义中生成生成一个实例对象,定义代码运行完成后,其生命周期还在。比如:

function person(name,age){
  this.name = name;
  this.age = age;
}

//生成实例对象
var p = new person("Chris","unknow");

//哪怕把定义去掉
delete person;

p.name // return p.name

person //undefined

对象系统还包含多态(台湾称为多型),继承和封装,我觉得html中没有对象系统的这些特性。


我的初衷是这儿大家都是传道者,使徒。对于我们来说布道时的语言的严谨时必要的。不要让其它学者把基本或概念理解错了。我尊敬的一位老师曾经说过这么一句话:做为一个架构师,你应该准确地用词。同理,做为传道者来说,也应该准确的用词。这个议题离最初的目的已经越来越远了,所以不再讨论了。只是想呼吁一下准确的用词和基本概念,那将是中文社区成员之福。昨天的会议上也是因为基本的事情错了,所以才站出来说了一下。没想到可能会导致一些问题,考虑不周,在此表示歉意。


Regards,

Shihua Ma


On Apr 9, 2011, at 1:51 PM, Chris wrote:

> 我并没有说 selector 只是 tag, 重点是在 type 关键字上:
> E element 是 type E 中的一个元素
> 就像你和我皆是地球人 (tag -- type E), 说地球人的时候, 包括你我他, 但只说你的时候, 只是个体 ([id=Shihua] element -- an element of type E), 或者名叫 Chris 的群体 ([name=Chris] elements -- any matched elements of type E ).
> 
> tag 是定义类型, element 是指该类型中有特定属性的元素, start/end tag 更像是 start/end of line 的一种命名法
> 
> 我们可以用 ul 定义无序列表 (称之为 tag), 其中我们可以在 to-do list (特定 element) 放 to-do 项, shopping list (特定 element) 放购物项. 特定 element 有特定的属性, 而 tag 定义则只有共有的属性. 我们可以称 to-do 和 shopping 为列表, 但 to-do 不是 shopping.
> 
> W3C 并没有明确解释, 我只是从定义等方面着手去理解, 主要基于面向对象的概念.
> 
> Regards,
> 
> Chris
> 
> -- ねだるな、かちとれ、さすればあたえられん --
> 
> 
> 2011/4/8 Shihua Ma <mashihua@gmail.com>
> 抱歉刚才没有reply all。Chris,在css selector的定义中只是模式(parttern),并没有说Matches any E element (i.e., an element of type E).说的是tag。整篇文章关于tag的是start tag,和end tag。
> 
> Regards,
> 
> Shihua Ma
> 
> 
> 2011/3/31 Chris <yesu326@gmail.com>
> 我的理解是 element 是指包含自身属性和子节点在内的实例, 是更明确的指向.
> 有点像面向对象语言里的类和实例:
> 我们可以用 tag -- 比如 ul 来定义无序列表 (类的定义), 然后我们可以用某个 ul 元素来进行 DOM 操作 (实例的操作).
> 
> 这点可以参考 document.getElementsByTagName()
> 
> 为什么要是 TagName 而不是 ElementName 呢? 因为 tag 是描述一个广义的类别.
> 
> 再看看 CSS selector 的定义 http://www.w3.org/TR/CSS21/selector.html

> Matches any E element (i.e., an element of type E)
> tag 也是 selector 的一部分, 也是用来定义某些类型的元素.
> 
> 抱歉, 刚忘了 reply all, 这封是重发.
> 
> Regards,
> 
> Chris
> 
> -- ねだるな、かちとれ、さすればあたえられん --
> 
> 
> 2011/3/31 Shihua Ma <mashihua@gmail.com>
> 就是统一一下认识,我们拿汉堡包来举例:整个汉堡包就是element,最上面和最下面的面包是tag。tag纯粹是markup的概念,element有一些semantic/structure的概念在里面,tag主要还是在markup上.。我在google搜索内联标签,找到约 1,760,000 条结果 。搜索内联元素,找到约 950,000 条结果。从上下文来讲,我认为大家都是指element概念。HTML权威指南也不是完全区别对待element和tag的意思,比如第6版4.4.2写道:
> 
> The <acronym> tag indicates that the enclosed text is an acronym
> 
> 其实在上下文中是指elemnent,而不是tag。
> 
> 在JS和Dom里元素的概念是比较弱的,更多的概念是Node。比如element中文本内容也表现为TEXT_NODE这种节点。
> 
> 
> 2011/3/31 周裕波 <itchina110@gmail.com>
> 我觉得标签和元素是在不同场合使用的
> 
> 1、《HTML权威指南》     请问这个使用什么标签呢?    在这里我觉得使用标签这个词没有什么问题
> 2、关于元素这个词,我觉得更多情况应该是在JS或者在描述DOM相关的时候,使用得更多。
> 
> 
> 在 2011年3月30日 下午4:41,Shihua Ma <mashihua@gmail.com>写道:
> 
> 我加入这个社区一个月左右后发现社区里的一些对于成员元素和标签的认识是不够的.用标签和元素分别搜索了这一个月社区的mail list,发现只有kenny在使用元素这个单词,大部分人在使用标签这个单词.但是在使用标签时,大多数人是指元素的概念.
> 
> 不单单是社区,中文网络上对此的理解也是有偏差的,在Google上搜索:html 标签,找到约 14,000,000 条结果html 元素,找到约 6,490,000 条结果.甚至包括有名的w3cshcool也使用div标签这种说法.如果我们这个社区不能统一对标签和元素的认识,那么将会误导中文网络对它们的认识的理解.
> 
> 在HTML 4.01 --“on SGML and HTML”3.2.1有对Element的定义:
> 
> Each element type declaration generally describes three parts: a start tag, content, and an end tag.
> 
> 明确地指出一个元素包含开始标签,,内容和结束标签.所以下面这个代码表示是这是个元素:
> 
> <p>foo</p>
> 
> 在上面代码里<p>是开始标签,foo是内容,</p>是结束标签。
> 
> 下面这段代码仍然定义了<p>foo</p>这个元素,虽然在代码上看起来是没有结束标签,但是parser仍然创建了一个元素,并给它一个结束标签:
> 
> <p>foo
> <p>bar
> 
> 有些的元素比如img,br的定义如下:
> 
> <!ELEMENT IMG - O EMPTY>
> 
> 仍然表示这是个内容为空,闭标签可省略的元素。
> 
> 
> 马士华
> 
> Blog: http://www.f2eskills.com/ 
> Twitter:mashihua
> 
> 
> 
> 
> -- 
> 此致
> 
> Mr. Zhou YuBo - 周裕波
> 
>  邮件:itchina110@gmail.com
> 
> 
> 
> 
> 

Received on Monday, 11 April 2011 02:24:09 UTC