发表于: 2018-10-08 23:36:57

1 692


今天完成的事情:任务十四十五的头部。  使用语义化标签


明天计划的事情: 继续任务14-15,分离头部,尾部,导航栏。


遇到的问题:语义化还是用的不好,继续学习。


收获:

  • 页面上的每个独立的可视/可交互区域视为一个组件;
  • 每个组件对应一个工程目录,组件所需的各种资源都在这个目录下就近维护
  • 由于组件具有独立性,因此组件与组件之间可以 自由组合;
  • 页面只不过是组件的容器,负责组合组件形成功能完整的界面;
  • 当不需要某个组件,或者想要替换组件时,可以整个目录删除/替换。


为什么要构建组件?

高内聚

我们将相关的一些功能组织在一起,把一切封装起来,而在组件的例子中,就可能是相关的功能逻辑和静态资源:JavaScript、HTML、CSS以及图像等。这就是我们所说的内聚。这种做法将让组件更容易维护,并且这么做之后,组件的可靠性也将提高。同时,它也能让组件的功能明确,增大组件重用的可能性。

可重用

你看到的示例组件,尤其是Web Component,更关心可重用的问题。功能明确,实现清晰,API易于理解。自然就能促进组件复用。通过构建可重用组件,我们不仅保持了 DRY(不要重复造轮子)原则,还得到了相应的好处。 
这里要提醒: 不要过分尝试构建可重用组件。你更应该关注应用程序上所需要的那些特定部分。如果之后相应需求出现,或者组件的确到了可重用的地步,就花一点额外时间让组件重用。事实上,开发者都喜欢去创造可重用功能块(库、组件、模块、插件等),做得太早将会让你后来痛苦不堪。所以,吸取基于组件开发的其他好处,并且接受不是所有组件都能重用的事实。

可互换

一个功能明确好组件的API能让人轻易地更改其内部的功能实现。要是程序内部的组件是松耦合的,那事实上可以用一个组件轻易地替换另一个组件,只要遵循相同的 API/接口/约定。

可组合

基于组件的架构让组件组合成新组件更加容易。这样的设计让组件更加专注,也让其他组件中构建和暴露的功能更好利用。不论是给程序添加功能,还是用来制作完整的程序,更加复杂的功能也能如法炮制。这就是这种方法的主要好处。



尽量使用语义化,少使用无语义如div标签

<section></section>用于对网站或应用程序中页面上的内容进行分块。通常由内容及其标题组成。

<article></article>代表文档、页面或应用程序中独立的、完整的、可以独自被外部引用的内容。当我们描述一件具体的事物的时候,通常使用article来代替section。如一个帖子,一段用户评论等。

<aside></aside>表示当前页面或者文章的附属信息部分。如与当前页面或主要内容相关的引用、侧边栏、广告、nav元素组等。

<nav></nav>用作页面导航的链接组,其中可以包括<ul><li><p>元素等。

<time></time>表示某个时间或者某个日期。其中pubdate属性代表了文档的发布日期,可以用到time标签里。

<header></header>整个页面或者页面内容区块的标题,可以包含其他内容。

<footer></footer>页脚,页面底部或者版块的内容。

<hgroup></hgroup>页面上标题的组合,通常对h1~h6进行分组。

<address></address>文档作者或者文档维护者的联系信息。

<figure></figure>通常用于图片,统计图或代码示例,带有可选标题。将其从网页上移除后不会对网页上其他内容产生影响。

<figcaption></figcaption>表示figure的标题,从属于figure元素。

<mark></mark>页面中需要凸显出或者高亮显示的,对于当前用户具有参考作用的一段文字。

<progress></progress>代表一个任务完成的进度。

<details></details>描述文档或者用户要求得到并且可以得到的细节信息。与summary元素配合使用。

<summary></summary>给details元素提供标题或者图例。标题是可见的,用户点击标题时,会显示细节信息。

<datelist></datelist>选项列表。与input元素配合使用,来定义input可能的值。

<keygen></keygen>给表单添加一个公钥.

<menu></menu>菜单列表。HTML4中不推荐使用。



返回列表 返回列表
评论

    分享到