HTML基础知识普及

HTML常用元素

meta/title/style/link/script/base

<meta charset="utf-8"> 规定页面的字符编码
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
meta name="viewport"
viewport视口:手机屏幕/电脑屏幕等设备的视口有多大
width=device-width: 视口宽度=设备宽度
initial-scale=1.0: 初始化的缩放比例是1
maximum-scale=1.0: 最大缩放是1
user-scalable=no: 用户不能缩放

<base href="/"> 框架中用于指定 其它文件路径的基准路径

div: 是 层? 是 区域? 是 容易? 由于语义不明确,似乎可以是任意一种。
section, article, aside, header, footer: 有明确含义的 一块区域
p: 段落
span/em/strong: 行内元素(em, strong 带默认样式:em斜体 strong粗体)

table/thead/tbody/tr/td:表格相关元素。
tr(table row)表格中的一行,td(table data)单元格。
thead封装整行,将该行作为表头
th:将tr中的第一个单元格 设置为 标题单元格

ul/ol/li/dl/dt/dd:列表相关的元素。
ul(unordered list无序列表)
ol(ordered list有序列表)
li(list item列表项)
dl(defined list定义的列表)
dt(defined title定义的标题)
dd(defined data定义的内容)

a:链接

form/input/select/textarea/button:表单 输入框 下拉框 文本输入区域 按钮

HTML重要属性
  • a[href, target]
    target:在哪儿打开链接,默认在当前窗口打开。target=blank新窗口打开
  • img[src, alt]
    alt:alternative替代资源,一般为文字
  • table td[colspan, rowspan]
    单元行 需要占用多行/多列,使用colspan rowspan属性
  • form[target, method, enctype]
    target: 表单提交地址
    method: 提交方式)post get)
    enctype: encode type 编码类型(对post而言)
    urlencode(提交文本) formdata(把数据进行编码后 进行提交。因此,可以上传文件)
  • input [type, value, name, id]
  • button[type]
  • select>option[value]
  • label[for]
    与表单项 相关联。点击某个label时,相当于点击 该label对应的表单项。用于单选框 复选框
如何理解HTML
  • 描述网页内容各个部分之间的 结构关系
H5新增内容
  • 新区块标签
    • section
    • article
    • nav
    • aside
  • 表单增强
    • input新增类型:日期,时间,搜索
    • 表单验证: required, min, max, pattern
    • placeholder autofocus
H5新增语义
  • header/footer: 即可表示 网站的头部,也可表示 区块的头部(比如article中 可以包含header footer)
  • section/article: div是没有语义的 区块(当找不到合适的语义标签时,就使用div).
    section和article相比,section适用于更琐碎的信息
  • nav:navigate
  • aside: 侧边栏
  • em/strong: emphasis(斜体)/strong(加粗)
  • i: icon图标
HTML元素分类

可以按样式,按功能(区块,链接,表单元素)

  • 按默认样式分:
    • block块:呈方块形状,默认会占据整行(div section article aside)
    • inline行内元素/内联元素:没有 规则的形状,不会独占一行(跟文本相关的元素 span em strong)
    • inline-block: 可以像inline元素一样 和其它元素 在同一行。对外像inline元素,对内 像block元素(形状可能是块状,有自己的宽高尺寸等)。
      (inline-block: 一些表单元素,下拉框 输入框)

div, p 都是块级元素
span, em, strong 都是inline元素
select 是inline-block元素

  • 按内容分(content model):
    • Flow: 在文档流中 有一些影响的元素(大部分可见的元素 都属于flow元素)
    • Metadata:表示信息的元素,有一些metadata不在flow中,html中head中的title,base,script等,这些标签是不占据文档流的。
    • Heading:h1-h6标题,hgroup
    • Sectioning: 主要是一些分区的元素,比如section article aside nav
    • Interactive:有交互/互动的元素(和用户有交互), 链接(点了链接就跳转了).
      比如 a, audio, button等 和用户有交互的元素
    • Phrasing: 这部分的元素 大都属于inline类型的元素,被包含在一个段落中 是段落的一部分。phrasing本身并不是完整的(只是其他元素中的一部分),比如em(一句话中可能有两个需要强调的词组,就使用em包裹)。
    • Embeded: 可嵌入的元素(是嵌入别的元素中,还是被嵌入?)一些元素 可以在其中 嵌入其他元素。比如audio video img
Flow content
Phrasing content
Interactive content
Embeded content
Metadata content

HTML元素的嵌套关系

哪些元素 可以出现在 哪些地方,哪个元素 可以被另一个元素包含。

基本原则:

  • 块级元素(block) 可以包含 行内元素(inline).
    比如div元素可以包含(a, span)
  • 块级元素 不一定 能包含块级元素
    块级 包含 块级:div包div, section包div。
    块级元素(段落p) 不能包含 块级元素(div)
  • 行内元素 一般不能包含 块级元素
    span包div 是不行的。
    行内元素(a元素) 可以包含 块级元素(div)。
HTML的嵌套关系 依赖于:
* 元素的分类
* content model
HTML元素默认样式
html不写样式时,会有 默认的样式

* 默认样式的意义:
    如果默认没有样式 需要对每个元素定义 各种基础的样式,增加了 开发人员的负担。
* 默认样式 会带来问题:
    有些默认样式 是我们不想要的,需要清除默认样式 再写一些自己需要的样式。
    比如下拉框是没办法清除 默认样式的,此时 需要的定制成本 是很高的。
    有些样式 不同浏览器的处理结果 是不同的
* css reset
    有些样式 是我们不想要的,统一去掉
    有些样式 不同浏览器的处理结果 不一样,显式地统一
css reset的简单粗暴方式:
    *{
        margin:0;
        padding:0;
    }
浏览器在查找元素时,使用的是什么策略?如果我用*,会不会一个一个的去匹配元素 会不会比较慢
HTML面试真题
* 1. doctype的意义是什么?
    对盒子模型 进行标准的处理(width看做content-width)
    让浏览器知道 元素书写方法的合法性(doctype: html4, xhtml)

* 2. html, xhtml, html5的关系
    html属于SGML的一个应用(SGML是一个通用的标记语言,xml也是SGML的一个应用)
    xhtml属于xml,是html进行xml严格化的结果
    html5是个独立的规范,不属于SGML或XML,书写方式上 html5比XHTML宽松
* 3.html5 有什么变化?
    变化是 相对于html4 和xhtml而言的
    * 增加 新的语义化元素,比如section article nav aside header footer, 便于书写 更富有语义的结构。把之前语义不强的i,b元素 都不推荐使用了。
    * 表单增强,包括新的元素 和 表单验证。
    * 新的API(离线application cache, 音视频,图形canvas,实时通信websocket,本地存储local storage,设备能力 包括定位 获取加速计 陀螺仪的状态)
    * 元素分类和嵌套的变更,html5对元素 重新进行了分类,嵌套规则也有一些变化,但是 推理的过程 完全变了,因为分类变化了。比较明显的就是a元素的变化,a能否包含 块级元素,取决于a外面的元素是什么 
* 4. em和i有什么区别
    主要是语义化上面的变化,em和i的默认样式 都是斜体的。
    * em是语义化的标签,表强调
    * i是纯样式的标签,表斜体 其没有强调的意思
    * html5中不推荐使用i,一般把i作为图标 表示icon的含义
* 5.语义化的意义是什么
    * html文档 按照语义化去编写 读起来就会 很容易,能够一眼看到它的大纲 开发者就容易理解
    * 也是机器容易理解的结构(比如 搜索引擎,读屏软件)
        如果大纲写的好,机器就容易理解你的页面 
    * 有助于SEO
    * 不要到处用div,需要section就用section 需要article就用article
    * semantic microdata,这是另外一个规范 会在html中添加一些新的标记,让后去标注 这个东西 是什么。对页面中的元素 做进一步的语义化标记 方便搜索。
* 6.哪些元素可以自闭合
    不是所有的元素里面 都可以放别的元素的,有些元素就是放在那儿 它里面就没有别的元素了。常见的有以下这些元素:
    * 表单元素input(input框内 不能有其他元素)
    * 图片img(不能在图片中嵌入 别的元素)
    * br hr(br换行  hr水平线)
    * meta link(元信息:meta link)
* 7.HTML和DOM的关系
    * HTML是写好的带结构的文本,是'死'的
    * DOM是 由HTML 经过浏览器解析 而来的,DOM是存在于浏览器内存中的 一个树状的结构, 是'活'的
    * JS维护DOM
* 8.property和attribute的区别
    一般都译作'属性',认为:property是'特性' attribute是'属性'. 
    * 写在html中的 被认为是 attribute
    * property一般被用在 (html经过解析之后的得到的dom)dom元素中
        调试技巧,在inspect查看器中选中的元素 在console中有个名称'$0'. 使用'$0',可以查看选中元素的一些属性。
* 9.form的作用有哪些
    使用form有很多好处,就算是用ajax提交数据 也应该加上form。
    * 直接提交表单(直接用get/post的方式 进行表单提交),必须有form
    * 表单和submit/reset配合,submit可以提交表单 reset可以重置表单
    * 使用form 可以使 浏览器记录下 表单中的数据
    * 第三方库 可以整体提取值
        jquery中的serialize 可以把表单中的值 
    * 第三方库 在有form时,才能进行表单验证
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容