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. Guitar Pro使用技巧之乐段回放练习

    Guitar Pro中的"回放"功能是我们在吉他练习中非常常用的一项功能.我们在吉他练习中碰到某一乐段比较练习比较困难时,我们就可以用鼠标在Guitar Pro上选中该乐段,然后进 ...

  2. 【模版 Luogu P3808/P3796/P5357】AC自动机(简论)

    浙江集训Day9,没有出任何实质性成果,只好把昨天打完的板子记一下. 该博客基于luogu的三道模版题.只有一个大致的讲解,主要提供代码给自己参考. ------------------------- ...

  3. C语言讲义——预处理

    C预处理器是一个文本替换工具,在实际编译之前完成一些预先的处理. C预处理器(C Preprocessor)简写为 CPP 预处理器命令都是以#开头,如: #include <stdio.h&g ...

  4. java线程与内存的关系

    转载: https://blog.csdn.net/hellozhxy/article/details/91972846

  5. 【mq读书笔记】mq消息存储

    comitlog文件 ConsumerQueue文件 IndexFile文件 RocketMQ将所有主题的消息存储在同一个文件中,确保消息发送时顺序写文件. 为了提高消息消费的效率RocketMQ引入 ...

  6. redis面试问题(二)

    1.redis和其他缓存相比有哪些优点呢 见上一篇 2. 你刚刚提到了持久化,能重点介绍一下么 见上一篇 3.Redis中对于IO的控制做过什么优化? pipeline? 4 有没有尝试进行多机red ...

  7. SQL优化思路与解决方案

    1.面对问题SQL的思考 这条查询SQL的语句到底有没有问题? 存在什么问题? 什么情况下存在问题? 怎么去优化? 2.SQL优化思路 where查询字段是否建立索引? 是否有建立索引但是查询时候没有 ...

  8. IdentityServer4系列 | 简化模式

    一.前言 从上一篇关于资源密码凭证模式中,通过使用client_id和client_secret以及用户名密码通过应用Client(客户端)直接获取,从而请求获取受保护的资源,但是这种方式存在clie ...

  9. 在 CentOS 7 安装 Tomcat

    一. 安装 JDK 8 1.1 下载 JDK 8 cd /opt/ wget --no-cookies --no-check-certificate --header "Cookie: gp ...

  10. moviepy音视频剪辑:视频基类VideoClip子类VideoFileClip、CompositeVideoClip、ImageSequenceClip介绍

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑相关类及关系>介绍了VideoClip主要有六个直接子类(VideoFileClip ...