浅谈web语义化

article/2025/7/15 14:17:57

浅谈web语义化

觉得很好的一篇文章,转载过来,原文链接https://www.cnblogs.com/p2227/p/3586725.html

web语义化是什么

HTML5标准出来的时候,我曾经诧异为什么要定义这么多header footer nav article标准,DIV不挻好的嘛,方便开发人员记忆啊。但当页面开发完,面对所有都是DIV标签的网页,就会混乱了,到底哪里是页头,哪里是正文。当然我们可以用浏览器打开,F12一下,就一目了然了,但如果是网络爬虫,那就没这么容易识别到这个东西了。

引用wiki的定义,语义化是前端开发里面的一个专用术语,其优点在于标签语义化有助于构架良好的html结构,有利于搜索引擎的建立索引、抓取;另外,亦有利于页面在不同的设备上显示尽可能相同;此外,亦有利于构建清晰的机构,有利于团队的开发、维护。

通俗而言,就是HTML的结构清晰,该是段落就用p标签,该是页脚就用footer标签,而不要统一都用DIV。

为什么要web语义化

其实wiki的定义里面说得非常清晰了。语义化的好处有三点

  1. 有利于搜索
  2. 容易兼容不同设备
  3. 结构清晰,利于团队的开发、维护

要怎么做

一个较为经典的案例是,初学word的人经常会用空格来进行缩进,用回车来填充进行换页,这种排版在页面布局发生变化时,就会乱掉。所以我们要用回word本身的缩进,换页符功能,真真正正告诉计算机这个排版的真正意图,才能使得排版适应性强。 HTML不是二进制文件,导致人们在编写的时候随意性更加大了。我们要经常关注一些语义化的标签,常用并且熟记。

  • h1~h6的规划

一篇文章应该只有一个总标题即h1,我的每一篇博文都是这种结构的。然后根据文章的具体内容,会有若干个h2及嵌套的h3,目前为止我的博文并没有用到h4以下的标题

  • p

每一个段落都应该用p去表示,默认情况下p是有一定的缩进及行距,如果不想这样排版,应该另外写CSS去控制

  • ul,ol,li (Unordered list,Ordered list,List item)

li必须是在ul或者ol里面,当我们只是列举一些数据,但又达不到一个分论点这种语义时,或者在一些资讯的网站新闻列表中,都应该用此语义标签,例如你当前在看的就是。

  • dl,dt,dd (description list,description list term,description list description)

这表示一种带描述的层级递进的列表,其中dl带描述的列表,dt列表的标题,dd列表的描述 例如

    <dl><dt>中国城市</dt><dd>北京 </dd><dd>上海 </dd><dd>广州 </dd><dt>美国城市</dt><dd>华盛顿 </dd><dd>芝加哥 </dd><dd>纽约 </dd></dl>

效果图:

dl,dt,dd效果

  • em,strong

由于本人是用markdown语法来写博的,这两个标签更加是被语法首推使用的 测试斜体em 测试加强strong

  • header,nav,article,section,aside,footer

这对于明细内容页的语义化十分重要,在此引用一图说明各标签的语义

明细内容页的语义化

  • th,tbody

表格的表头及重复列表内容,正常的表格都应该区分表头及表体内容。表头默认是加粗并且居中的。

  • address

表示一种联系方式,方便爬虫立马找到你的联系方式,当然使用起来可能是办公地址更加实际

    <address>Written by p2227<br />contact me : kuangqiyi(At)gmail.com <br />Address: searching the next bussiness address<br /></address>
  • dfn,code,samp,kbd,var,cite

这些元素和em 、strong都称为短语元素,其语义如下

标签语义
em呈现为被强调的文本。
strong定义重要的文本。
dfn定义一个定义项目。
code定义计算机代码文本。
samp定义样本文本。
kbd定义键盘文本。它表示文本是从键盘上键入的。它经常用在与计算机相关的文档或手册中。
var定义变量。您可以将此标签与 <pre> 及 <code> 标签配合使用。
cite定义引用。可使用该标签对参考文献的引用进行定义,比如书籍或杂志的标题。

本人的列举有限,详细的要在实际使用中去慢慢记忆了。 具体的实施还要结合具体项目组制定一份标准,再严格执行,才能真实实施起来。

参考

http://zh.wikipedia.org/wiki/%E8%AF%AD%E4%B9%89%E5%8C%96

http://www.html5jscss.com/?p=30

http://www.w3school.com.cn/html5/tag_phrase_elements.asp


http://chatgpt.dhexx.cn/article/SLV2diqr.shtml

相关文章

充分了解Web语义化

前言 对于“web语义化”这个词语&#xff0c;我相信只要是从事前端的人都不陌生&#xff0c;从事前端工作在投简历时都会在招聘需求里面看到这句话&#xff1a;“对web语义化有深刻的理解”&#xff0c;当然我本人也是从某公司的招聘需求里看到的这句话&#xff0c;那么到底什…

什么是 web 语义化,有什么好处

什么是 web 语义化,有什么好处 web 语义化是指通过 HTML 标记表示页面包含的信息&#xff0c;包含了 HTML 标签的语义化和 css 命名的语义化。 HTML 标签的语义化是指&#xff1a;通过使用包含语义的标签&#xff08;如 h1-h6&#xff09;恰当地表示文档结构 css 命名的语义…

Web语义化

什么是Web语义化&#xff1f; 如今互联网已经到了web3.0时代了&#xff0c;HTML语言在不断的进化并发挥着越来越重要的地位&#xff1b;而我们制作的网页也从当初的table表格嵌套发展到了divcss&#xff0c;这是进步的标志。然而我们似乎看到了一个不太好的想象&#xff1a;整个…

使用pygame开发一个弹幕射击游戏(一)

本文作为开发过程记录用。 目前游戏画面&#xff1a; 下一个添加的功能&#xff1a;敌机可以进行射击。 弹幕类 from pygame.sprite import Sprite from pygame import transform import mathclass Barrage(Sprite):def __init__(self,raiden_settings,screen,ship,enemy,angle…

手机射击游戏中弹幕的开发

射击游戏中弹幕的开发 http://blog.vckbase.com/knight/archive/2005/03/29/4174.html 作者:牛阿牛 2005-02-28 nhf_2008hotmail.com nhf_2003hotmail.com email:nhf20021166163.com 留言:希望能给各位游戏开发一点的介绍;如有问题,请联系. 游戏射击中, boss可能是最重要…

基于C#弹幕类射击游戏的实现——(十)整合

有朋友说只看代码不爽,所以特上传EXE和一张截图,哈哈。 执行文件下载链接:http://pan.baidu.com/s/1pJ5Hg5X http://download.csdn.net/detail/unskytoo/8366523 剩下部分代码,首先是入口,MainForm public partial class MainForm : Form{public MainForm(){//// The In…

DxLib做弹幕射击游戏(二)——画一台敌机

直接看代码&#xff1a; #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) {ChangeWindowMode( TRUE ) ;if( DxLib_Init() -1 ){return -1 ;}int gh ;//图像编号int x, y;//坐标x 200;y 1…

DxLib做弹幕射击游戏(一)

DxLib是神马东西&#xff1f;看名字&#xff0c;似乎是M$的DirectX的官方库&#xff1f;NONONO&#xff0c;这货其实是日本人开发出来的一个库&#xff0c;封装了很多DirectX的函数&#xff0c;使开发更方便。这个库在日本那边很流行&#xff0c;很多同人游戏都是使用这个库开发…

【四圣龙神录】 开源仿东方 弹幕射击游戏教程 官网(译)以及国内参考翻译资料

四圣龙神录 官网地址 http://dixq.net/sr/ 引用doujin 上的帖子的介绍 http://bbs.doujinstg.net/simple/?t1478.html 开源仿东方STG&#xff0d;四圣龙神录&#xff0c;带弹幕制作教程60讲&#xff0c;使用C语言DXLib 非常不错的仿东方的STG&#xff0c;网站上面带制作…

重写弹幕射击游戏的记录

项目背景介绍 上大学之后我一直在学习游戏开发&#xff0c;最开始是直接使用Easyx这个绘图库做Dos下的游戏&#xff0c;当时学习了C和数据结构之后正巧有个数据结构课程设计&#xff0c;就心生了要做这个游戏的想法。我算是那种有想法就想着去做的人&#xff08;有时候也算是缺…

【Unity2D入门教程】简单制作战机弹幕射击游戏⑥最终回扩展其它范围的内容

制作分数和生命的UI&#xff1a; 由于我们前面没有做类似的UI所以这里教大伙一下基本思路&#xff1a; 首先我们创建一个canvas用来创建两个Text用来显示分数和生命的UI 蓝色的是分数黄色的是生命 我们创建一个scoreplay的脚本挂载在text上 using System.Collections; usi…

【Unity2D入门教程】简单制作战机弹幕射击游戏③C#编写 子弹Laser脚本

学习目标&#xff1a; 今天教大伙怎么设置子弹Laser的组件以及编写关于它的脚本 学习组件&#xff1a; 老规矩还是添加一下它的组件用capusle collider2D刚好它还是个圆柱体&#xff0c;别忘了勾选它的isTrigger Rigibody2D的Body Type调成是让它不受重力以及物理碰撞影响&a…

【Unity2D入门教程】简单制作战机弹幕射击游戏⑦番外篇扩展一个大型敌人

布置场景&#xff1a; 我们先按CrtlD复制一个之前创建好的Enemy Prefab&#xff0c;然后更改它的Sprite&#xff0c;我们拖一张素材的图片进来并改变它的Pixel Per Unit让它大其它敌机一倍 由于体型变大了之前的Coliider就不适用了我们要重新删掉之前的再创建一个新的 同样它的…

【Unity2D入门教程】简单制作战机弹幕射击游戏④C#编写 敌人按指定路径以及敌人生成点脚本

前言&#xff1a; 我们前面忘记设置的当敌机和子弹碰到特定的位置&#xff08;指屏幕外的&#xff09;就会自动销毁 挂载的脚本Sherred如下 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Shredder : MonoBehaviour {private…

【Unity2D入门教程】简单制作战机弹幕射击游戏⑤C#编写 背景滚动移动以及增加粒子特效

学习目标&#xff1a; 上期结束后我们游戏的主体就已经差不多了&#xff0c;剩下的就要给游戏的真实质感以及可玩性上下大点功夫了&#xff0c;今天我们就从背景滚动移动以及增加粒子特效上出发。 背景滚动制作&#xff1a; 为了让游戏更具真实性的就是让玩家从视觉上感受飞机…

【Unity2D入门教程】简单制作战机弹幕射击游戏② C#编写 Player和Enemy脚本

学习目标&#xff1a; 上期的水平大伙看到我已经写好了Enemy和Player的脚本了&#xff0c;现在就把脚本教给大伙&#xff0c;话不多说搞的不丑 学习内容&#xff1a; 首先是Player的脚本&#xff08;之前没发现CSDN有这个代码段的&#xff0c;我的我的&#xff09; using Sy…

【Unity2D入门教程】简单制作战机弹幕射击游戏① 导入素材

学习目标&#xff1a; 今天我们制作一款类似银河战机的游戏导入素材并给它设置一下背景&#xff0c;把素材做成预设体等等 首先先上网找到我们需要的素材 Unity Asset Store - The Best Assets for Game MakingDiscover the best assets for game making. Choose from our mas…

弹幕射击游戏中旋转矩形碰撞检测的算法描述

分离轴法是根据两个多边形的几何中心在任意矢量方向的法线上的投影存在交叉的条件来做出的方法[32]。换而言之&#xff0c;如果可以找出这样一个方向&#xff0c;将两个多边形投影在此方向的法线上的投影不交叉&#xff0c;则说明碰撞未发生&#xff0c;如图5-3所示。 图中A、B…

Cocos2d-x 简单弹幕射击游戏

开发环境 Win10, Cocos2d-x v3.16, Visual Studio 2017, Visual Studio Code 项目阐述 这个游戏是一个小型的弹幕游戏。玩家将控制pipi美&#xff0c;在躲避pop子的子弹之余&#xff0c;射杀pop子。名字打算叫“pop子的深邃黑暗幻想”。 游戏的设计主要借鉴了东方系列的弹幕游…