基础要打牢,一周时间过了一遍html与css,分两次对了解到的知识做一个简单的总结。
HTML的起手式
首先,什么是HTML,搬用MDN上的解释:HyperText Markup Language,与我们熟悉的c/c++等不同,它不是编程语言,而是一种用来告诉浏览器如何组织页面的标记语言,由一系列的元素组成。
那么何谓元素:参加下图
标签+内容就组成了一个元素。至于标签,在接下来会详细介绍,在此之前,我们了解了HTML之后,就可以在诸如cscode等软件上开始写代码啦。
框架
当你打开vccode,新建一个html文件之后,输入!+tab就会出现如下的一个东东,即是我们编写的html的一个主体,前辈们也非常形象,包含了等部分,那么接下来就逐一介绍一下。
<!DOCTYPE html>
<html lang = "zh - CN">
<head>
<meta charset = "UTF-8">
<meta name = "viewport" content = "width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta http-equiv = "X - UA - Compatible" content = " IE = edge ">
<title>内容</type>
</head>
<body>
内容
</body>
</html>
解释
[引用自MDN](HTML 基础 - 学习 Web 开发 | MDN (mozilla.org))
<!DOCTYPE html>— 文档类型。混沌初分,HTML 尚在襁褓(大约是 1991/92 年)之时,DOCTYPE用来链接一些 HTML 编写守则,比如自动查错之类。DOCTYPE在当今作用有限,仅用于保证文档正常读取。现在知道这些就足够了。<html></html>—<html>元素。该元素包含整个页面的内容,也称作根元素。<head></head>—<head>元素。该元素的内容对用户不可见,其中包含例如页面描述、CSS 样式表和字符编码声明等。<meta charset="utf-8">— 该元素指定文档使用 UTF-8 字符编码 ,UTF-8 包括绝大多数人类已知语言的字符。基本上 UTF-8 可以处理任何文本内容,还可以避免以后出现某些问题,没有理由再选用其他编码。<title></title>—<title>元素。该元素设置页面的标题,显示在浏览器标签页上,也作为收藏网页的描述文字。<body></body>—<body>元素。该元素包含期望让用户在访问页面时看到的内容,包括文本、图像、视频、游戏、可播放的音轨或其他内容。
在上边提到的<head></head>标签所包裹的内容对用户不可见,在它其中包含css的样式,网页的标题(主要不要弄混和h1和title),以及一些元数据等。接下来我们就简单说一下元数据:
- 首先是文档编码,一般使用通用的utf-8即可,这里的utf-8明明是解码方式,为什么要用charset即字符集呢?这涉及到一个遗留问题,就是在以前的解码方式和字符集的名字都是一样的,而utf却有8/16/32等,所以就只能这么叫了
- 其次是大家可以注意到,元数据有的是以name和content组成的,其中name是指这个元数据的类型、信息,content则是指具体的内容,[打开一个大型的网站](淘宝网 - 淘!我喜欢 (taobao.com))开发模式下可以看到他们常用的元数据,在我们的简单demo中,可以使用淘宝的关于窗口的以下代码。
<meta name = "viewport" content = "width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
主要是限制屏幕的缩放
标签
标签用来告诉浏览器,如何处理这段代码。标签的内容就是浏览器所要渲染的、展示在网页上的内容。
- 标签一般是成对出现,分为开始标签和结束标签,例如
<header></header>,但也有部分只有一个,比如上边提到的<meta>等 - 标签不区分大小写,但为了代码美观,一般还是采用小写
- 标签支持嵌套,这时候标签的闭合顺序就很关键,注意不要烦这种错误
<div><p>我爱中华</div></p>
下边是一些常用标签
文本标签
-
标题:
<h1 - h6>:自动加黑加粗,指标题,按数字,字号逐渐减小 -
章节:
<section>:每一部分即是一个章节,如果需要第一章下边有个1.1节,那么就可以嵌套使用section -
文章:
<article> -
段落:
<p>是一个块级元素,代表文章的一个段落(paragraph)。不仅是文本,任何想以段落显示的内容,比如图片和表单项,都可以放进p元素。 -
头部:
<header>:顶部的东西 -
脚部:
<footer>:底部的东西,比如常见的版权声明 © -
主要内容:
<main>:<main>是顶层标签,不能放置在<header>、<footer>、<article>、<aside>、<nav>等标签之中 -
旁支内容:
<aside> -
划分:
<div>是一个通用标签,表示一个区块(division),最常见用途就是提供 CSS 的钩子。它没有语义,如果网页需要一个块级元素容器,又没有其他合适的标签,就可以使用这个标签。所以经常出现div嵌套div的情况,可读性太差,所以尽量多使用有语义的标签。 -
<span>:与div类似的通用标签,但是是行内标签(即不会产生换行),不带有任何语义。它通常用作 CSS 样式的钩子,如果需要对某些行内内容指定样式,就可以把它们放置在<span>。 注: section、div、article的区别与联系(转载其他大佬的说法): -
div:这个标签一直是我们见得最多、用得最多的标签。它本身无任何语义,用作布局以及样式化标签。
-
section:用作一段有专题性的内容,一般在它里面会带有标题。 section典型的应用场景应该是文章的章节、标签对话框中的标签页、或者论文中有编号的部分。
-
article:article是一个特殊的section标签,它比section具有更明确的语义, 它代表一个独立的、完整的相关内容块。
div、section、article,语义是从无到有,逐渐增强的。div无任何语义,仅仅用作样式化或者脚本化的标签,对于一段主题性的内容,则就适用section,而假如这段内容可以脱离上下文,作为完整的独立存在的一段内容,则就适用 article。 原则上来说,能使用article的时候,也是可以使用section的,但是实际上,假如使用article更合适,那么就不要使用section
图片引用自-粟稷-知乎
内容标签
<ol> + <li>有序列表 reverse:逆序 start:指定开始的数字或字母等 type:顺序的类型,比如1234或者abcd<ul> + <li>无序列表<dl> + <dt> + <dd>dl:描述列表 dt:描述对象 dd:描述内容<pre>: 是一个块级元素,表示保留原来的格式(preformatted),即浏览器会保留该标签内部原始的换行和空格。浏览器默认以等宽字体显示标签内容。<hr>: 加分割线,尽量不用<br>: 用来打断、换行,一般用来实现行的打断,如果需要分段,则需要使用css的样式。<wbr>是一个类似 效果标签,只不过是用来防止在不应该打断的地方打断,即一个主动一个被动<a>: 用来加超链接<em>: 语气上的强调,斜体显示<strong>: 内容上的强调,浏览器会加粗<code>:行内元素,输入等宽的代码,内联元素,分行可以用pre<quote>: 引用 内联<block>:块的引用 块级<sub>和<sup>:数字的上下标<var>:变量的引用
全局属性
属性可以定制元素的行为,不同的属性会导致元素有不同的行为。全局属性通俗来讲就是可以对所有元素使用的属性,不过可能有的元素加上没变化
- class:给标签分类
- contentditable:使得元素可以被编辑
- hidden:使元素看不见
- id:不到万不得已不使用id
- style:元素样式
- tabindex:利用tab键可以在元素间切换,tabindex = 1/2/3,按顺序切换,其中0是最后一个,-1是不被选中
- title:鼠标悬停时可以显示所有内容
注:
网道解释的挺好的