关于Web语义化

article/2025/7/15 14:55:16

对于“web语义化”这个词语我相信只要是从事前端的人都不陌生,当然我对这个词语也是非常熟悉,我相信从事前端工作的同事在投简历时都会在招聘需求里面看到这句话:“对web语义化有深刻的理解”,当然我本人也是从某公司的招聘需求里看到的这个词语,那么到底什么是web语义化?它有什么作用?现将我自己收集整理的资料与大家分享一下:

  • 什么是web语义化

如今互联网都到了web2.0的时代了,HTML语言在不断的进化并发挥着越来越重要的地位;而我们制作网页也从当初的table表格嵌套发展到了 div+css,这是进步的标志。然而,我们似乎看到了一个不太好的现象:整个网页大量的使用div标签进行分隔页面内容,有的甚至整个页面只有div一 种html标签存在。这种现象(使用习惯)非常的不好,滥用现象使得网页制作似乎就只剩下了div。刚才说了,时代是在进化着的,所以,诞生了web语义化 这个概念。而它又包含两个方面:html语义化及css命名语义化。

首先抽象的说下语义(Semantic)的概念:“语义可以简单地看作是数据所对应的现实世界中的事物所代表的概念的含义,以及这些含义之间的关 系,是数据在某个领域上的解释和逻辑表示。”那么web语义化也可以简单的理解为:用特定的语言来定义特定的事物。

  • 为什么要web语义化?

首先,人可以通过视觉的划分判断内容的语义,搜索引擎看到的只是代码。搜索引擎只能通过标签来判断内容的语义。因为页面的很大一部分流量是来自搜索引擎的,要使页面尽可能地对搜索引擎友好,所以就要尽可能地使标签语义化。

以前以我对web开发的粗浅理解,觉得写一个好的符合标准的页面只需要把结构和表现分离,然后不要使用table,p等标签就行了,至于通篇都是div我也不会觉得有什么问题,因为CSS很强大。但是,所有的标签都是有自己的语义的,下面给出一部分标签的语义:

div 语义:Division(分隔)

span 语义:Span(范围)

ol 语义:Ordered List(排序列表)

ul 语义:Unordered List(不排序列表)

li 语义:List Item(列表项目)

…………

如果无视标签语义和默认样式,所有标签都用div,其实也是可以写出来视觉效果很好的页面,只要你灵活运用CSS。但是那样的话虽然视觉上达到了要求,但是整个页面一点语义都没有,搜索引擎还是看不懂。所以,要记住:

结构(html)才是重点,样式(css)是用来修饰结构的。所以,要先确定html,确定标签,再来选用合适的css

 其次,SEO的时候我们经常用h1来突出标题,用strong来突出关键字,这确实就是语义化的体现。就目前的搜索引擎来说并不能想访客那样很直观的去查看网页,它只有分析源码来体现或猜测网站要表达的内容。比如我们想表达某篇文章的标题, 我们或许会这样写:

<div id=”title”>文章的标题</div>

访客或许能理解我们的意思,但搜索引擎就要反复揣摩了,更好的讨好搜索引擎我们可以这样来写:

<h1>这是标题</h1>

小提示:h1拥有最高的权值,在一个页面中最好指使用1个h1来突出你的内容,太多的h1会分散其整个页面的权重,对搜索引擎也是非常的不友好。

当然语义化还有其他优势:

正如上面那个例子,语义化的代码更小,下载也就更快了。另外语义化代码也能够更加快速的帮助新的前端工程师理解我们的代码。语义化代码也更能帮助视障的人通过设备来理解我们的内容等等。当然语义化代码也是我们能力的体现。

  • 怎样进行web语义化?

1、html语义化

一个 html元素的存在就意味被标记内容的那部分有相应的结构化的意义,没有理由使用其他的标记。换句话说,不要让css使一个html元素看起来就像另一个html元素,比如用<div>来代替<p>标记标题。简而言之,就是你在看到内容的时候想想用什么标签能更好的描述它,是什么就用什么标签。很明显Hx系列看起来很像标题,因为拥有粗体和较大的字号。<strong> ,<em> 用来区别于其他文字,起到了强调的作用。至于列表<ul>、<ol>等和表格<table>很明显的告诉你他们是做什么的。如:

<Hx>

<h1>、<h2> 、、<h5> 、<h6>,作为标题使用,并且依据重要性递减。<h1>是最高的等级。

<p>

段落标记,知道了<p> 作为段落,我们就不会再使用 <br/> 来换行了,而且不要 <br/> <br/> 来区分段落与段落。<p> 中的文字会自动换行,而且换行的效果优于 <br> 。段落与段落之间的空隙也可以利用css来控制,很容易而且清晰的区分出段落与段落。在利用行高 (line-height) 很容易的定义出行间距,再定义首字下沉等效果,那就挺完美了。

2、css命名语义化

一般而言,CSS类名的语义化声明方式应当考虑页面中某个相对元素的”用意”,独立于它的“定位”或确切的特性(结构化方式)。像left-bar, red-text, small-title…这些都属于结构化定义的例子。

让我们看看下面这个例子:

01

…而现在我们想把页面中的元素调换一下位置,如果我们使用的是结构化方式(1),那么我们就要把所有css类名重新进行定义,因为它们的位置变了。在布局(3)中,我们看到元素都倒转了: right-bar 现在成了 “left-bar”,而 left-content 成了 “right-content”。如果你使用语义化方式则避免了此类问题。

02

换句话说,使用语义化方式的话,我们在修改网站布局的时候可以仅仅修改相关CSS类的属性即可,而不用修改它们的类名了,如果网站的代码很庞大,这将节省大量的时间。

参考网站:

http://www.hunuo.com/zhuanti/web20/4086.html  加深对HTML和CSS标签语义化的理解

http://wfb927.diandian.com/post/2010-03-31/40028523685  有关WEB前端中的语义化

http://blog.csdn.net/yzy1840/article/details/4712166  HTML语义化

http://blog.bingo929.com/css-coding-semantic-naming.html  CSS代码命名惯例语义化的方法


作者:leejiru

本文地址:http://studio.ewe.com.cn/?p=455

转载请注明:EWE工作室 » 关于Web语义化—张振强



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

相关文章

web标准与语义化

一、WEB标准介绍 WEB&#xff08;World Wide Web万维网&#xff09;标准是一系列标准的集合。 目的&#xff1a;实现内容(结构)和表现分离&#xff0c;就是将样式剥离出来放在单独的css文件中。这样做的好处是可以分别处理内容和表现&#xff0c;也方便搜索和内容的再利用。 …

浅谈web语义化

浅谈web语义化 觉得很好的一篇文章&#xff0c;转载过来&#xff0c;原文链接https://www.cnblogs.com/p2227/p/3586725.html web语义化是什么 HTML5标准出来的时候&#xff0c;我曾经诧异为什么要定义这么多header footer nav article标准&#xff0c;DIV不挻好的嘛&#x…

充分了解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…