百度前端技术学院是一个为大学生创办的免费的前端技术实践、分享、交流平台。由百度校园招聘组、百度校园品牌部、百度前端技术部以及多个百度的前端团队联合创办。学院组织了一批百度在职工程师,精心编写了数十个实践编码任务,将技术知识点系统有机地串联在各个充满趣味与挑战的任务中,同学们通过实际地编码练习来掌握知识,再辅以互相评价、学习笔记等方式,加深对于学习内容的理解。在过去的三年中,百度前端技术学院累积吸引了上万名同学参加,并且有数十名同学在学习后,顺利加入了百度,成为了百度的前端工程师。

关于语义化标签的一些思考

作者米旭课程任务一:零基础HTML编码3699次浏览802017-02-28 11:38

关于语义化标签的一些思考

现在html越来越提倡语义化,这样不仅方便开发者更好地理解文档,也使得计算机对于文档地理解更加地友好。比如人工智能的语义分析,搜索引擎的搜索分析,辅助视力阅读障碍者的屏幕阅读器之类的软件,在语义化标签的帮助下,能够更好的工作。

文档结构

在学习html5的过程中,知道了一些新的标签,能够更清晰的表达文档的结构(原来都是用div,可能加上id或者class来划分)。举个简单的例子

  • html
    • head
      • body
    • header (包含网站的标题,或者logo,SLOGAN之类的)
    • nav (导航栏)
    • main (文档的主要内容,不包含侧边栏、导航栏、版权信息,网站logo等附属信息)
      • article (文档中可以脱离其他部分,独立出来而又完整,甚至可以复用的一部分,通常有自己的标题,当article内嵌article时,里外层的内容应该是相关的,比如一篇微博和它的评论)
      • section (文档中一段主题性内容,通常也有自己的标题,跟article的区别在于他是整体的一部分或者说文章的一节)
    • aside (侧边栏或者嵌入内容,通常认为是独立拆分出来而不受整体影响的一部分,作为主要内容的附属信息,如索引,词条列表,或者页面及站点的附属信息,如广告,作者资料介绍等)
    • footer (页脚,通常包含作者、版权信息或者相关链接等)

html元素的语义化及排版注意

一些常用的html元素,特别是html文本元素的语义化使用中,也有一些可以优化及需要注意的地方

  • <strong><b><em><i>,其效果差不多是一样的,但是前者的语义化更加友好
  • 白色空间折叠:当浏览器遇到两个或者两个以上的白色空间元素(空格,换行)时,会折叠成一个空格。自己编码时注意换行应该用<br>
  • 文档中的一些嵌入式内容,比如引用的图片,插图,表格,代码段等,可以作为独立的单元,当这部分转移到附录中或者其他页面时不会影响到主体,这样的元素都可以放在<figure>元素内,而且可以搭配其子元素<figcaption>作很好的元素说明或者备注信息
  • img元素最好附带alt信息,即对图片进行文本说明,当图像无法查看时会显示这段文本描述
  • table元素现在也有更好的语义化结构元素
    • caption 表格的标题
    • thead 适合放表格的表头行
    • tbody 表格的主体部分
    • tfoot 表格的脚注部分
  • form表单元素,
    • label标签,为input元素定义标注,改进了表单控件的可用性,当你点击到label标签时,会自动聚焦到对应控件上,label标签一般有两种用法
      1. label的for属性与控件的id对应,比如
        <label for="username">请输入用户名: </label>
              <input type="text" id="username" name="username">
        
      2. label内嵌控件,比如
        <label>请输入用户名<input type="text" id="username" name="username"></label>
        
    • placeholder属性,其值会在输入字段为空时显示,并会在字段获得焦点时消失
    • 对于表单中的单选radio控件和复选checkbox控件以及下拉框select控件,可以为radio, checkbox添加checked属性以及为option添加selected属性让其默认选中

以上,是这次任务一中可能用到的一些信息,可能有纰漏或者错误的地方,还请大家多多指正!
参考资料:《HTML&CSS设计与构建网站》

16条评论