前端开发基础知识

HTML、XML、XHTML 有什么区别

HTML,超文本标记语言,是语法较为松散的、不严格的Web语言;
XML,可扩展标记语言,主要用于存储数据和结构,可扩展;
XHTML,可扩展超文本标记语言,基于XML,作用与HTML类似,但语法更严格。

HTML 语义化

什么是语义化:

“语义化”指的是机器在需要更少的人类干预的情况下能够研究和收集信息,让网页能够被机器理解,最终让人类受益。具体而言,借用BI论坛网友通俗的解释,“语义化意思就是不要把你女朋友当做一般的朋友看待”,下面是粗浅的XML形式实例:


图示

然而,通过CSS控制,我们很容易就能将“女朋友”展示地跟“朋友”一样,只关注表现层的话,标签视乎只是一个“钩子(hook)”,提供给CSS和JS做处理,那为什么我们还要强调“语义化”呢,下面会详细谈到。

语义化的意义:
  1. 让计算机(如爬虫)读懂网页的内容
  2. 更优秀的用户体验
  3. 开发效率
  4. 行业标准

内容与样式分离原则

一个符合标准的网页,标签中的标签名应该全部都是小写的,属性要加上引号,样式和行为不再夹杂在标签中,而应该分别单独存放在样式文件和脚本文件中。理想状态下,网页源代码由三部分组成:.html文件、.css文件和.js文件。HTML标签只用负责承载内容,而样式交给了CSS,行为交给了JavaScript。

常见的meta标签

<!-- 关键字,搜所引擎 SEO -->
<meta http-equiv="keywords" content="关键字1,关键字2,..."> 
<!-- 页面描述 -->
<meta http-equiv="description" content="网页描述"> 
<!-- content的取值为webkit,ie-comp,ie-stand之一,区分大小写,分别代表用webkit内核,IE兼容内核,IE标准内核。 -->
<meta name="renderer" content="webkit|ie-comp|ie-stand">
<!-- 若页面需默认用极速核,增加标签: -->
<meta name="renderer" content="webkit">
<!-- 若页面需默认用ie兼容内核,增加标签: -->
<meta name="renderer" content="ie-comp">
<!-- 若页面需默认用ie标准内核,增加标签: -->
<meta name="renderer" content="ie-stand">
<!-- 如果安装了GCF,则使用GCF来渲染页面,如果没有安装GCF,则使用最高版本的IE内核进行渲染。
 X-UA-Compatible:这是个是IE8的专用标记,用来指定IE8浏览器去模拟某个特定版本的IE浏览器的渲染方式(比如人见人烦的IE6),以此来解决部分兼容问题。 -->
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" >
<!-- 强制页面在当前窗口以独立页面显示。 -->
<meta http-equiv="Window-target" content="_top">
<!-- 自动刷新,并指向新的页面 -->
<meta http-equiv="Refresh" content="2;URL=http://">
<!-- 禁止浏览器缓存 -->
<!-- 是用于设定禁止浏览器从本地机的缓存中调阅页面内容,设定后一旦离开网页就无法从Cache中再调出
用法: -->
<meta http-equiv="pragram" content="no-cache"> 
<!-- 清除缓存(再访问这个网站要重新下载!) -->
<meta http-equiv="cache-control" content="no-cache, must-revalidate"> 
<!-- 设定网页的到期时间 -->
<meta http-equiv="expires" content="0"> 
<!-- 手机端 -->
<meta name="format-detection" content="telphone=no, email=no"/>
<!-- 忽略页面中的数字识别为电话,忽略email识别 -->
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<!-- 设置苹果工具栏颜色 -->
<!-- 不让百度转码 -->
<meta http-equiv="Cache-Control" content="no-siteapp" />
<!-- 不缓存 -->
<meta http-equiv="cache-control" content="no-cache" />
<!-- 初始化设备 -->
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no, minimal-ui" />
<!-- 网站开启对iphone私有 web app 程序的支持 -->
<meta content="yes" name="apple-mobile-web-app-capable" />
<!-- 改变顶部状态条的颜色 iphone私有的属性-->
<meta content="black" name="apple-mobile-web-app-status-bar-style" />

严格模式和混杂模式

放在网页顶部的doctype声明是让浏览器进入正确呈现模式的关键。浏览器自动切换到恰当的呈现模式,以便正确显示由doctype声明所指定的文档种类。
理论上,这应该是一个非常直观的切换。假如doctype指出当前网页是一个遵循标准(也就是HTML 4+或XHTML 1+)的文档,浏览器就会切换到Standards模式。假如没有指定doctype,或者指定HTML 3.2以及更老的版本,浏览器就切换到Quirks模式。这样一来,浏览器既能正确显示遵循标准的文档,又不至于完全舍弃老式的、与标准不符的网页。

浏览器乱码的原因

  1. 比如网页源代码是gbk的编码,而内容中的中文字是utf-8编码的,这样浏览器打开即会出现html乱码。反之网页是编码utf-8,内容是gbk也会出现乱码。
  2. html网页编码是gbk,而程序从数据库中调出呈现是utf-8编码的内容也会造成编码乱码。
  3. 浏览器不能自动检测网页编码,造成网页乱码。

常见浏览器与内核

  1. Trident内核

代表产品Internet Explorer,又称其为IE内核。Trident(又称为MSHTML),是微软开发的一种排版引擎。使用Trident渲染引擎的浏览器包括:IE、傲游、世界之窗浏览器、Avant、腾讯TT、Netscape 8、NetCaptor、Sleipnir、GOSURF、GreenBrowser和KKman等。

  1. Gecko内核

代表作品Mozilla FirefoxGecko是一套开放源代码的、以C++编写的网页排版引擎。Gecko是最流行的排版引擎之一,仅次于Trident。使用它的最著名浏览器有Firefox、Netscape6至9。

  1. WebKit内核

代表作品Safari、Chromewebkit 是一个开源项目,包含了来自KDE项目和苹果公司的一些组件,主要用于Mac OS系统,它的特点在于源码结构清晰、渲染速度极快。缺点是对网页代码的兼容性不高,导致一些编写不标准的网页无法正常显示。主要代表作品有Safari和Google的浏览器Chrome。

  1. Presto内核

代表作品OperaPresto是由Opera Software开发的浏览器排版引擎,供Opera 7.0及以上使用。它取代了旧版Opera 4至6版本使用的Elektra排版引擎,包括加入动态功能,例如网页或其部分可随着DOM及Script语法的事件而重新排版。

常见的html标签

标签名 作用
html 将所有HTML内容都包含在这个标签内
head 用于定义文档的头部,它是所有头部元素的容器。
title 文档的标题
meta 提供有关页面的元信息
body 文档的内容
h1 一级标题,h1h6分别对应六级标题,从16标题一次减小
p 整段文字
a 定义锚,即在页面插入链接
img 图片
ul 无序列表
ol 有序列表
li 列表项
br 换行
div 定义文档中的节,默认表现为块元素
span 定义定义文档中的节,默认表现为行内元素
em 定义强调文本
i 定义斜体字
strong 定义强调文本
q 定义短引用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容

  • 1.HTML、XML、XHTML的区别 HTML:超文本标记语言(Hyper Text Markup Langua...
    IT男的成长记录阅读 288评论 0 1
  • 前言 转自博客园 原文 一、简单介绍一下什么是浏览器内核。浏览器最重要或者说核心的部分是“Rendering En...
    吴晗君阅读 3,641评论 1 30
  • 什么是HTML? HTML指的是超文本标记语言 HTML不是一种编程语言,而是一种标记语言 标记语言是一套标记标签...
    Echolate阅读 444评论 0 1
  • 1、HTML、XML、XHTML 有什么区别HTML是超文本标记语言(Hyper Text Markup Lang...
    feihang阅读 313评论 0 0
  • 早晨六点多的时候还是醒过来,原定八点的闹钟像是多余。又要一天的停电施工,总感觉心里面没底,八点再次起来洗漱完毕,我...
    南京江宁铲屎官阅读 144评论 0 0