zoukankan      html  css  js  c++  java
  • HTML技巧: 语义化你的代码

    HTML技巧: 语义化你的代码

    最近在读阿当的《Web前端开发修炼之道》 , 其中有不少东西值得前端路上的朋友学习. 结合自己日常编码的一些经验, 我将陆陆续续将一些从书中学到的以及自己总结的一些前端方面的技巧分享给大家.

    HTML语义化, 似乎是一个老生常谈的问题. Google一下,也有大把关于语义化的文章. 为什么要语义化标签? 我是这样认为的:HTML的每个标签都有它特定的意义,而语义化,就是让我们在适当的位置用适当的标签, 以更好的让人和机器(机器可理解为浏览器可理解为搜索引擎)都一目了然. 如果我的解释不够明了, 请Google.

    如何在合适的位置使用合适的标签? 
    这是一个简单的理解逻辑. 比如, h1~h6标签是用于标题类的; ul是用于无序列表的; ol是用于有充列表的; dl是用于定义列表的; em,strong标签是用来强调的…说白了, HTML标签的每个英文释义决定了它的语义(本文后面, 我会放一份常用HTML标签的英文释义对照表供参考).
    什么是让人和机器都能一目了然? 
    检查HTML页面是否语义化最好的方法, 便是去掉页面的CSS链接, 看网页结构是否井然有序, 页面是否仍然有很好的可读性. 为什么可以这么说? 大家都知道浏览器都有默认的样式(推荐使用Chrome的Web Developer Tools for Chrome 插件, 或者Firefox的Web Developer 插件), 比如h1~h6, 会有加粗/字号依次减小、上下边距的默认样式, ul、ol、dl都有默认的项目符号, strong默认有加粗的样式…所以, 同样的页面, 语义化良好的HTML可以在页面CSS去掉的情况下依然有良好的表现.
    还有一点, 好的语义化编码, 对搜索引擎有更好的友好性. 搜索蜘蛛是不认识你的CSS的, 但它能识别HTML标签.
    下面是一个简单的例子:
    未语义化语义化后的效果差异

    01<!--未语义化-->
    02<div id="header">
    03<div class="h1">Mr.Think的博客</div>
    04<div class="h2">专注Web前端技术,热爱PHP,崇尚简单生活的凡夫俗子.</div>
    05</div>
    06 
    07<!--语义化之后-->
    08<div id="header">
    09<h1>Mr.Think的博客</h1>
    10<h2>专注Web前端技术,热爱PHP,崇尚简单生活的凡夫俗子.</h2>
    11</div>

    通过上面的简单的示例和没有任何CSS定义情况下的效果图, 该明白了两者的区别了吧. 如果你在学习HTML5, 它的header、footer、sidebar、article等元素都是新增的语义化标签.
    HTML编码语义化是迈向高质量前端开发的一步. 即更好的遵循Web标准, 也能让你页面在去掉样式后依然井然有序. 关于语义化更多更详细的介绍, 可以自行Google或阅读阿当的《Web前端开发修炼之道》 第三章.
    附: 标签语义中英文对照表(删除线为html5不支持的标签)

    标签名英文全拼中文翻译
    aanchor
    abbrabbreviation缩写词
    acronymacronym取首字母的缩写词
    addressaddress地址
    bbold粗体
    bigbig变大
    blockquoteblock quotation区块引用于
    brbreak换行
    captioncaption标题
    centercenter居中
    dddefinition description定义描述
    deldelete删除
    divdivision分隔
    dldefinition list定义列表
    dtdefinition term定义术语
    ememphasized加重
    fieldsetfieldset域集
    fontfont字体
    h1~h6header1~header6标题1~标题6
    hrhorizontal rule水平尺
    iitalic斜体
    insinserted插入
    legendlegend图标
    lilist item列表项目
    olordered list排序列表
    pparagraph段落
    prepreformatted预定义格式
    sstrikethrough删除线
    smallsmall变小
    spanspan范围
    strongstrong加重
    subsubscripted下表
    supsuperscripted上标
    uunderlined下划线
    ulunordered list不排序列表
    varvariable变量
  • 相关阅读:
    puppeteer 离线安装chromium
    如何在Taro项目中使用Iconfont(阿里图标)
    POI3.8内存中限制行数为100问题记录
    centos下puppeteer调用chromium报错,缺少包
    VS Code 简单配置运行Java
    使用VSCode 断点调试 js项目,html页面
    Java--Excel--poi 边框、单元格换行、 背景色、合并单元格相关
    浅析Spring Aware
    Spring MVC 注解
    异常处理
  • 原文地址:https://www.cnblogs.com/xiaoleidiv/p/3435665.html
Copyright © 2011-2022 走看看