10-HTML基础回顾

#本文主要内容

  • html 的常见元素

  • html 元素的分类

  • html 元素的嵌套关系

  • html 元素的默认样式和 CSS Reset

  • html 常见面试题

#html 的常见元素

html 的常见元素主要分为两类:head 区域的元素、body 区域的元素。下面来分别介绍。

#1、head 区域的 html 元素

head 区域的 html 元素,不会在页面上留下直接的内容。

  • meta

  • title

  • style

  • link

  • script

  • base

base元素的介绍:

<base href="/">
 

base 标签用于指定基础的路径。指定之后,所有的 a 链接都是以这个路径为基准。

#2、html 元素(body 区域)

body 区域的 html 元素,会直接出现在页面上。

  • div、section、article、aside、header、footer

  • p

  • span、em、strong

  • 表格元素:table、thead、tbody、tr、td

  • 列表元素:ul、ol、dl、dt、dd

  • a

  • 表单元素:form、input、select、textarea、button

div 是最常见的元素,大多数场景下,都可以用div(实在不行就多包几层div)。可见,div 是比较通用的元素,这也决定了 div 的的语义并不是很明确。

常见标签的重要属性:

  • a[href,target]
  • img[src,alt]
  • table td[colspan,rowspan]。设置当前单元格占据几行几列。在合并单元格时,会用到。
  • form[target,method,enctype]
  • input[type,value]
  • button[type]
  • selection>option[value]
  • label[for]

#html 文档的大纲

我们平时在写论文或者其他文档的时候,一般会先列出大纲,然后再写具体的内容。

同样,html 网页也可以看成是一种文档,也有属于它的大纲。

一个常见的html文档,它的结构可以是:

    <section>
<h1>一级标题</h1> <section>
<h2>二级标题</h2>
<p>段落内容</p>
</section> <section>
<h2>二级标题</h2>
<p>段落内容</p>
</section> <aside>
<p>广告内容</p>
</aside> </section> <footer>
<p>某某公司出品</p>
</footer>
 

#查看网页大纲的工具

我们可以通过 http://h5o.github.io/ 这个工具查看一个网页的大纲。

使用方法:

(1)将网址 http://h5o.github.io/ 保存到书签栏

(2)去目标网页,点击书签栏的网址,即可查看该网页的大纲。

这个工具非常好用,既可以查看网页的大纲,也可以查看 markdown 在线文档的结构。

#html 元素的分类

按照样式分类:

  • 块级元素

  • 行内元素

  • inline-block:比如form表单元素。对外的表现是行内元素(不会独占一行),对内的表现是块级元素(可以设置宽高)。

按照内容分类:

图片来源:https://html.spec.whatwg.org/multipage/dom.html#kinds-of-content

#html 元素的嵌套关系

  • 块级元素可以包含行内元素。

  • 块级元素不一定能包含块级元素。比如 div 中可以包含 div,但 p 标签中不能包含 div。

  • 行内元素一般不能包含块级元素。比如 span 中不能包含 div。但有个特例:在 HTML5 中, a 标签中可以包含 div。

注意:在 HTML5 中 a > div 是合法的, div > a > div是不合法的 ;但是在 html 4.0.1 中, a > div 仍然是不合法的。

#html 元素的默认样式和 CSS Reset

比如下拉框这种比较复杂的元素,是自带默认样式的。如果没有这个默认样式,则该元素在页面上不会有任何表现,则必然增加一些工作量。

同时,默认样式也会带来一些问题:比如,有些默认样式我们是不需要的;有些默认样式甚至无法去掉。

如果我们不需要默认的样式,这里就需要引入一个概念:CSS Reset。

#常见的 CSS Reset 方案

方案一:

CSS Tools: Reset CSS。链接:https://meyerweb.com/eric/tools/css/reset/

方案二:

雅虎的 CSS Reset。链接:https://yuilibrary.com/yui/docs/cssreset/

我们可以直接通过 CDN 的方式引入:

<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/3.18.1/build/cssreset/cssreset-min.css">
1

方式三:(比较有争议)

*{
margin: 0;
padding: 0;
}
 

上面何种写法,比较简洁,但也有争议。有争议的地方在于,可能会导致 css 选择器的性能问题。

#Normalize.css

上面的几种 css reset 的解决思路是:将所有的默认样式清零。

但是,Normalize.css 的思路是:既然浏览器提供了这些默认样式,那它就是有意义的。既然不同浏览器的默认样式不一致,那么,Normalize.css就将这些默认样式设置为一致。

#html 常见面试题

#doctype 的意义是什么

  • 让浏览器以标准模式渲染

  • 让浏览器知道元素的合法性

#HTML、XHTML、HTML5的区别

  • HTML 属于 SGML

  • XHTML 属于 XML,是 HTML 进行 XML 严格化的结果

  • HTML5 不属于SGML,也不属于 XML(HTML5有自己独立的一套规范),比 XHTML 宽松。

#HTML5 有什么新的变化

  • 新的语义化元素

  • 表单增强

  • 新的API:离线、音视频、图形、实时通信、本地存储、设备能力等。

#em 和 i 的区别

共同点:二者都是表示斜体。

区别:

  • em 是语义化的标签,表示强调。

  • i 是纯样式的标签,表示斜体。HTML5 中不推荐使用。

#语义化的意义是什么

  • 开发者容易理解,便于维护。

  • 机器(搜索引擎、读屏软件等)容易理解结构

  • 有助于 SEO

#哪些元素可以自闭和

自闭和的元素中不能再嵌入别的元素。且 HTML5 中要求加斜杠。

  • 表单元素 input

  • 图片 img

  • br、hr

  • meta、link

#form 表单的作用

  • 直接提交表单

  • 使用 submit / reset 按钮

  • 便于浏览器保存表单

  • 第三方库(比如 jQuery)可以整体获取值

  • 第三方库可以进行表单验证

所以,如果我们是通过 Ajax 提交表单数据,也建议加上 form。

html 10-HTML基础回顾的更多相关文章

  1. Javascript基础回顾 之(三) 面向对象

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  2. Javascript基础回顾 之(二) 作用域

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  3. C#基础回顾:正则表达式

    C#基础回顾:正则表达式 写在前面:本文根据笔者的学习体会结合相关书籍资料对正则表达式的语法和使用(C#)进行基本的介绍.适用于初学者. 摘要:正则表达式(Regular Expressions),相 ...

  4. 数论算法 剩余系相关 学习笔记 (基础回顾,(ex)CRT,(ex)lucas,(ex)BSGS,原根与指标入门,高次剩余,Miller_Rabin+Pollard_Rho)

    注:转载本文须标明出处. 原文链接https://www.cnblogs.com/zhouzhendong/p/Number-theory.html 数论算法 剩余系相关 学习笔记 (基础回顾,(ex ...

  5. Java基础回顾_第二部分_Java流程控制

    Java基础回顾_第二部分 Java流程控制 Scanner对象(扫描器,捕获输入) import java.util.Scanner; public class Demo01 { public st ...

  6. Java基础回顾_第一部分

    Java基础回顾 基本数据类型 数值类型 什么是字节? 位(bit):是计算机中数据的最小单位 字节(byte):是计算机中数据处理的基本单位,习惯上用大写字母B来表示 1 B = 8 bit 字符: ...

  7. [C#] C# 基础回顾 - 匿名方法

    C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...

  8. SQL Server-交叉联接、内部联接基础回顾(十二)

    前言 本节开始我们进入联接学习,关于连接这一块涉及的内容比较多,我们一步一步循序渐进学习,简短内容,深入的理解,Always to review the basics. 交叉联接(CROSS JOIN ...

  9. Javascript基础回顾 之(一) 类型

    本来是要继续由浅入深表达式系列最后一篇的,但是最近团队突然就忙起来了,从来没有过的忙!不过喜欢表达式的朋友请放心,已经在写了:) 在工作当中发现大家对Javascript的一些基本原理普遍存在这里或者 ...

  10. JavaScript 基础回顾——对象

    JavaScript是基于对象的解释性语言,全部数据都是对象.在 JavaScript 中并没有 class 的概念,但是可以通过对象和类的模拟来实现面向对象编程. 1.对象 在JavaScript中 ...

随机推荐

  1. FL Studio CPU面板讲解

    在FL Studio中,其CPU面板主要是由CPU使用表.内存使用表和复音数这几个部分组成的.这些对刚接触这款音乐制作软件的同学来说是非常陌生的吧!因为不知道这些是什么,主要的作用是什么.所以小编这里 ...

  2. css3系列之@font-face

    @font-face 这个属性呢,必须设置在 css的根下,也就是说,不能设置在任何元素里面. @font-face: 参数: font-family:  给这个文字库 起个名字. src: url( ...

  3. ThreadLocal以及强软弱虚引用

    1.ThreadLocal ThreadLocal即线程本地,可以实现每个线程存入取出TreadLocal值互不影响.因为TheadLocal底层是用了一个Map结构存放数据,而这个Map是从当前这个 ...

  4. 看完这篇还不会 Elasticsearch 搜索,那我就哭了!

    本文主要介绍 ElasticSearch 搜索相关的知识,首先会介绍下 URI Search 和 Request Body Search,同时也会学习什么是搜索的相关性,如何衡量相关性. Search ...

  5. ios中多线程GCD NSOperation NSThread 相关的操作解析

    //1.GCD 继承自C语言 优点 简单方便 //开启一个子线程处理耗时的操作 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIO ...

  6. framework中的sentinel

    引入切面: 切面+sentinel-web-servlet private void initDataSource() { String zkUrl = zaSentinelConfig.getDat ...

  7. GitHub 访问不顺怎么办?在线等,急

    在日常的工作生活学习中 经常会遇到无法访问 GitHub.访问不稳定等等突发情况 这不,今天群里的朋友们又双叒叕遇到了问题-- 为方便用户从 GitHub 快速备份开源仓库,稳定访问,CODING 现 ...

  8. jdk1.8hashmap常见的面试问题

    1.HashMap原理,内部数据结构? 底层使用哈希表(数组加链表)来存储,链表过长会将链表转成红黑树,以实现在O(logn)时间复杂度内查找 2.讲一下HashMap中的put方法过程? 对key求 ...

  9. JDK8HashMap的一些思考

    JDK8HashMap 文中提及HashMap7的参见博客https://www.cnblogs.com/danzZ/p/14075147.html 红黑树.TreeMap分析详见https://ww ...

  10. vue回调接口

    1.微博回调接口 1.1oauth/urls.py 中添加路由 urlpatterns = [ path('weibo/callback/', views.OauthWeiboCallback.as_ ...