HTML、CSS、JavaScript

发布于:2025-04-13 ⋅ 阅读:(16) ⋅ 点赞:(0)

目录

HTML

1.完整的HTML结构

2.文档声明

3.html元素

4.head元素

5.body元素

6.HTML元素

7.常见的元素

7.1 h元素

7.2 p元素

7.3 img元素

7.3.1 img元素

7.3.2图片的路径

7.4 a元素

7.4.1 a元素

7.4.2 a元素-锚点链接

 7.2.3其他URL地址

8. iframe元素

9.div、span

9.1div、span元素的历史

9.2 div、span元素的区别

10.不常用元素

11.HTML全局属性

邂逅CSS

1.认识CSS

2.编写CSS样式

2.1内联样式

 2.2内部样式表

2.3外部样式表

2.4 @import

3.CSS注释

4.常见的CSS属性

5.目前需要掌握的CSS属性

6.CSS属性-字体

6.1 font-size(重要)

6.2 font-family

6.3font-weight

6.4 font-style(一般)

6.4font-variant(了解)

6.5 line-height(常用)

7. font

8.CSS常见选择器

8.1CSS选择器(selector)

8.2通用选择器

8.3简单选择器(基本选择器)

8.4属性选择器

8.5后代选择器

8.6 兄弟选择器

8.7选择器组 – 交集选择器 

8.8认识伪类 


HTML

1.完整的HTML结构

一个完整的HTML结构包括哪几部分呢?

  • 文档声明
  • html元素
    • ✓ head元素
    • ✓ body元素
<!DOCTYPE html>
<html>

	<head>
		<meta charset="utf-8" />
		<title>html</title>
	</head>
	<body>
	</body>

</html>

2.文档声明

◼ HTML最上方的一段文本我们称之为 文档类型声明,用于声明文档类型

◼ <!DOCTYPE html>

         HTML文档声明,告诉浏览器当前页面是HTML5页面;

         让浏览器用HTML5的标准去解析识别内容;

         必须放在HTML文档的最前面,不能省略,省略了会出现兼容性问题;

 ◼ HTML5的文档声明比HTML 4.01、XHTML 1.0简洁非常多(了解即可)

3.html元素

◼元素 表示一个 HTML 文档的根(顶级元素),所以它也被称为根元素。

        所有其他元素必须是此元素的后代。

<!DOCTYPE html>
<html lang="zh-CN">
</html>

◼ W3C标准建议为html元素增加一个lang属性,作用是

         帮助语音合成工具确定要使用的发音;

         帮助翻译工具确定要使用的翻译规则;

◼ 比如常用的规则:

        lang=“en”表示这个HTML文档的语言是英文;

        lang=“zh-CN”表示这个HTML文档的语言是中文;

4.head元素

◼ HTML head 元素 规定文档相关的配置信息(也称之为元数据),包括文档的标题,引用的文档样式和脚本等。

        什么是元数据(meta data),是描述数据的数据;

        这里我们可以理解成对整个页面的配置:

◼ 常见的设置有哪些呢?一般会至少包含如下2个设置。

◼ 网页的标题:title元素

◼ 网页的编码:meta元素

         可以用于设置网页的字符编码,让浏览器更精准地显示每一个文字,不设置或者设置错误会导致乱码;

         一般都使用utf-8编码,涵盖了世界上几乎所有的文字;

<meta charset="utf-8" />

5.body元素

◼ body元素里面的内容将是你在浏览器窗口中看到的东西,也就是网页的具体内容和结构。

        之后学习的大部分HTML元素都是在body中编写呈现的;

6.HTML元素

◼ HTML元素本身很多,但是常用的元素就是那么几个。

         https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element

         我们只需要记住常用的,不常用的学会查看文档即可;

◼ 常用的元素(暂时掌握下面几个就够了,90%时间都在写这几个):

         p元素、h元素;  img元素、a元素、iframe元素;

         div元素、span元素; ◼ 下阶段学习的元素:

         ul、ol、li元素;  button元素、input元素;

         table、thead、tbody、thead、th、tr、td;

◼ HTML5新增元素(后续学习)

7.常见的元素

7.1 h元素

◼ 在一个页面中通常会有一些比较重要的文字作为标题,这个时候我们可以使用h元素

<h1>-<h6>标题 (Heading) 元素呈现了六个不同的级别的标题

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<title>html</title>
	</head>

	<body>
		<!--
			标题标签:h1-h6
			注意:无效标签按照纯文本内容展示在页面中
        -->
        <h1>一级标题</h1>
        <h2>二级标题</h2>
        <h3>三级标题</h3>
        <h4>四级标题</h4>
        <h5>五级标题</h5>
        <h6>六级标题</h6>
	</body>

</html>

 

◼ 注意:h元素通常和SEO优化有关系(什么是SEO,后续再介绍)

7.2 p元素

◼ 如果我们想表示一个段落,这个时候可以使用p元素。

◼ HTML元素(或者说 HTML 段落元素)表示文本的一个段落。

        p元素是paragraph单词的缩写,是段落、分段的意思;

        p元素多个段落之间会有一定的间距;

7.3 img元素

7.3.1 img元素

◼ HTML 元素将一份图像嵌入文档。

         img是image单词的所以,是图像、图像的意思;

         事实上img是一个可替换元素( replaced element );

◼ img有两个常见的属性:

         src属性:source单词的缩写,表示源

                ✓ 是必须的,它包含了你想嵌入的图片的文件路径。         

         alt属性:不是强制性的,有两个作用

                ✓ 作用一:当图片加载不成功(错误的地址或者图片资源不存在),那么会显示这段文本;

                ✓ 作用二:屏幕阅读器会将这些描述读给需要使用阅读器的使用者听,让他们知道图像的含义;

<img src="./imgs/女学生.jpeg" alt="这是一个女学生" width="200px" />
<img src="./imgs/女学生.jpe" alt="这是一个女学生" width="200px" />

效果图: 

7.3.2图片的路径

◼ 设置img的src时,需要给图片设置路径:

         网络图片:一个URL地址(后续会专门讲URL);

                ✓ 网络图片的设置非常简单,给一个地址即可;

         本地图片:本地电脑上的图片,后续会和html一起部署到服务;

◼ 本地图片的路径有两种方式:

         方式一:绝对路径(几乎不用);

                ✓ 从电脑的根目录开始一直找到资源的路径;

         方式二:相对路径(常用);

                 ✓ 相当于当前文件的一个路径;

                ✓ . 代表当前文件夹(1个.),可以省略

                ✓ .. 代表上级文件夹(2个.

◼ 对于网页来说,不管什么操作系统(Windows、Mac、Linux),路径分隔符都是 /,而不是 \

7.4 a元素

7.4.1 a元素

◼ 在网页中我们经常需要跳转到另外一个链接,这个时候我们使用a元素;

◼ HTML<a>元素,(或称锚(anchor)元素):

         定义超链接,用于打开新的URL;

◼ a元素有两个常见的属性:

          href:Hypertext Reference的简称

                ✓ 指定要打开的URL地址;

                ✓ 也可以是一个本地地址;

         target:该属性指定在何处显示链接的资源。

                ✓ _self:默认值,在当前窗口打开URL;

                ✓ _blank:在一个新的窗口中打开URL;

                ✓ 其他不常用, 后面iframe可以讲一下;

           download:该属性指定在何处显示链接的资源。

                 ✓ 导致浏览器将链接的 URL 视为下载资源。

7.4.2 a元素-锚点链接

◼ 锚点链接可以实现:跳转到网页中的具体位置

◼ 锚点链接有两个重要步骤:

        在要跳到的元素上定义一个id属性;

        定义a元素,并且a元素的href指向对应的id;

 7.2.3其他URL地址

◼ a元素一定是用来跳转到新网页的么?

        1.下载资源

        2.发送邮件

8. iframe元素

◼ 宽度默认是 300 像素,高度默认是 150 像素。

◼ 利用iframe元素可以实现:在一个HTML文档中嵌入其他HTML文档

◼ frameborder属性

         用于规定是否显示边框

                ✓ 1:显示

                ✓ 0:不显示 ◼ a元素target的其他值:

         _parent:在父窗口中打开URL

         _top:在顶层窗口中打开URL

<iframe src="./video.html" frameborder="1"></iframe>

9.div、span

9.1div、span元素的历史

◼ 在HTML中有两个特殊的元素div元素、span元素:

         div元素:division,分开、分配的意思;

         span元素:跨域、涵盖的意思;

◼ 这两个元素有什么作用呢?无所用、无所不用。

◼ 产生的历史:

         网页的发展早期是没有css,这个时候我们必须通过语义化元素来告知浏览器一段文字如何显示;

         后来出现了css,结构和样式需要分离,这个时候html只需要负责结构即可;

         比如h1元素可以是一段普通的文本+CSS修饰样式;

         这个时候就出现了div、span来编写HTML结构所有的结构,样式都交给css来处理;

◼ 所以,理论上来说:

         我们的页面可以没有div、span;

         我们的页面也可以全部都是div、span;

9.2 div、span元素的区别

◼ 这个时候有一个问题:我出现一个不就可以了吗?

◼ div元素和span元素都是“纯粹的” 容器,也可以把他们理解成“盒子”,它们都是用来包裹内容的;

        div元素:多个div元素包裹的内容会在不同的行显示;

                ✓ 一般作为其他元素的父容器,把其他元素包住,代表一个整体

                ✓ 用于把网页分割为多个独立的部分

        span元素:多个span元素包裹的内容会在同一行显示;

                ✓ 默认情况下,跟普通文本几乎没差别

                ✓ 用于区分特殊文本和普通文本,比如用来显示一些关键字

10.不常用元素

◼ strong元素:内容加粗、强调;

         通常加粗会使用css样式来完成;

         开发中很偶尔会使用一下;

◼ i元素:内容倾斜;

         通常斜体会使用css样式来完成;

         开发中偶尔会用它来做字体图标(因为看起来像是icon的缩写);

◼ code元素:用于显示代码  偶尔会使用用来显示等宽字体;

◼ br元素:换行元素

         开发中已经不使用;

◼ 更多元素详解,查看MDN文档:

        https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element

11.HTML全局属性

◼ 我们发现某些属性只能设置在特定的元素中:

         比如img元素的src、a元素的href;

◼ 也有一些属性是所有HTML都可以设置和拥有的,这样的属性我们称之为 “全局属性(Global Attributes)”

         全局属性有很多:https://developer.mozilla.org/zh-CN/docs/Web/HTML/Global_attributes

◼ 常见的全局属性如下:

         id:定义唯一标识符(ID),该标识符在整个文档中必须是唯一的。其目的是在链接(使用片段标识符),脚本或样 式(使用 CSS)时标识元素。

         class:一个以空格分隔的元素的类名(classes )列表,它允许 CSS 和 Javascript 通过类选择器或者DOM方法来选 择和访问特定的元素;

         style:给元素添加内联样式;

         title:包含表示与其所属元素相关信息的文本。 这些信息通常可以作为提示呈现给用户,但不是必须的。

邂逅CSS

1.认识CSS

◼ CSS表示层叠样式表(Cascading Style Sheet,简称:CSS,又称为又称串样式列表、级联样式表、串接样式表、阶层式样式表) 是为网页添加样式的代码。

◼ CSS是一种语言吗?(知道即可)

         MDN解释:CSS 也不是真正的编程语言,甚至不是标记语言。它是一门样式表语言;

         维基百科解释:是一种计算机语言,但是不算是一种编程语言;

◼ 早期的网页都是通过HTML来编写的,但是我们希望HTML页面可以更加丰富:

         这个时候就增加了很多具备特殊样式的元素:比如i、strong、del等等;

         后来也有不同的浏览器实现各自的样式语言,但是没有统一的规划;

         1994年,哈肯·维姆·莱和伯特·波斯合作设计CSS,在1996年的时候发布了CSS1;

         直到1997年初,W3C组织才专门成立了CSS的工作组,1998年5月发布了CSS2;

         在2006~2009非常流行 “DIV+CSS”布局的方式来替代所有的html标签;

         从CSS3开始,所有的CSS分成了不同的模块(modules),每一个“modules”都有于CSS2中额外增加的功能,以及向后 兼容。

         直到2011年6月7日,CSS 3 Color Module终于发布为W3C Recommendation。

◼ 总结:CSS的出现是为了美化HTML的,并且让结构(HTML)与样式(CSS)分离;

         美化方式一:为HTML添加各种各样的样式,比如颜色、字体、大小、下划线等等;

         美化方式二:对HTML进行布局,按照某种结构显示(CSS进行布局 – 浮动、flex、grid);

2.编写CSS样式

◼ CSS这么重要,那么它的语法规则是怎么样的呢?

◼ 声明(Declaration)一个单独的CSS规则,如 color: red; 用来指定添加的CSS样式。

         属性名(Property name):要添加的css规则的名称;

         属性值(Property value):要添加的css规则的值;

◼ 但是有个问题:我们会编写了,要编写到什么位置呢?

◼ CSS提供了3种方法,可以将CSS样式应用到元素上优先级由高到低:

         内联样式(inline style)

         内部样式表(internal style sheet)、文档样式表(document style sheet)、内嵌样式表(embed style sheet)

         外部样式表(external style sheet)

2.1内联样式

◼ 内联样式(inline style),也有人翻译成行内样式。

         内联样式表存在于HTML元素的style属性之中

<div style="color: red; font-size: 15px">我是一个div标签</div>

 ◼ CSS样式之间用分号;隔开,建议每条CSS样式后面都加上分号;

◼ 很多资料不推荐这种写法:

         1.在原生的HTML编写过程中确实这种写法是不推荐的

         2.在Vue的template中某些动态的样式是会使用内联样式的;

◼ 所以,内联样式的写法依然需要掌握。

 2.2内部样式表

◼ 内部样式表(internal style sheet)  将CSS放在HTML文件元素里的

    <style>
      img {
        width: 200px;
        height: 200px;
        object-fit: cover;
        object-position: center;
        border: 1px solid red;
      }

    </style>

◼ 在Vue的开发过程中,每个组件也会有一个style元素,和内部样式表非常的相似(原理并不相同);

2.3外部样式表

◼ 外部样式表(external style sheet) 是将css编写一个独立的文件中,并且通过元素引入进来; ◼ 使用外部样式表主要分成两个步骤:

         第一步:将css样式在一个独立的css文件中编写(后缀名为.css);

         第二步:通过元素引入进来;

2.4 @import

◼ 可以在style元素或者CSS文件中使用@import导入其他的CSS文件

3.CSS注释

◼ CSS代码也可以添加注释来方便阅读:

         CSS的注释和HTML的注释是不一样的;

         /* 注释内容 */

4.常见的CSS属性

见md文档

◼ CSS官方文档地址

         https://www.w3.org/TR/?tag=css

◼ CSS推荐文档地址:

     https://developer.mozilla.org/zhCN/docs/Web/CSS/Reference#%E5%85%B3%E9%94%AE%E5%AD%97%E7%B4%A2%E5%BC%95

◼ 由于浏览器版本、CSS版本等问题,查询某些CSS是否可用:

         可以到https://caniuse.com/查询CSS属性的可用性;

         这个网站在后续的browserlist工具中我们再详细说明;

5.目前需要掌握的CSS属性

 font-size:文字大小

 color:前景色(文字颜色)

 background-color:背景色

 width :宽度

 height:高度

6.CSS属性-字体

6.1 font-size(重要)

◼ font-size决定文字的大小

◼ 常用的设置

         具体数值+单位

                ✓ 比如100px

                ✓ 也可以使用em单位(不推荐):1em代表100%,2em代表200%,0.5em代表50%

                em 单位的值是相对于元素的父元素的字体大小

         百分比

                ✓ 基于父元素的font-size计算,比如50%表示等于父元素font-size的一半

6.2 font-family

◼ font-family用于设置文字的字体名称

         可以设置1个或者多个字体名称;

         浏览器会选择列表中第一个该计算机上有安装的字体;

         或者是通过 @font-face 指定的可以直接下载的字体。

selector {
    font-family: font1, font2, font3, ..., generic-family;
}
  • font1, font2, font3:这是你期望使用的具体字体名称。若第一种字体在用户的系统中不可用,浏览器就会尝试使用第二种字体,依此类推。
  • generic-family:这是通用字体族名称,属于备选项。当列表中所有具体字体都不可用时,浏览器会使用通用字体族来显示文本。通用字体族有 serif(有衬线字体)、sans-serif(无衬线字体)、monospace(等宽字体)、cursive(手写风格字体)和 fantasy(奇幻字体)。

6.3font-weight

◼ font-weight用于设置文字的粗细(重量)

◼ 常见的取值:

        ◼ 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 :每一个数字表示一个重量

        ◼ normal:等于400

        ◼ bold:等于700

◼ strong、b、h1~h6等标签的font-weight默认就是bold

6.4 font-style(一般)

◼ font-style用于设置文字的常规、斜体显示

        ◼ normal:常规显示

        ◼ italic(斜体):用字体的斜体显示(通常会有专门的字体)

        ◼ oblique(倾斜):文本倾斜显示(仅仅是让文字倾斜)

◼ em、i、cite、address、var、dfn等元素的font-style默认就是italic

6.4font-variant(了解)

◼ font-variant可以影响小写字母的显示形式

         variant是变形的意思;

◼ 可以设置的值如下

         normal:常规显示

         small-caps:将小写字母替换为缩小过的大写字母

    <p style="font-variant: small-caps">aaaaa</p>

6.5 line-height(常用)

◼ line-height用于设置文本的行高

        ◼ 行高可以先简单理解为一行文字所占据的高度

◼ 行高的严格定义是:两行文字基线(baseline)之间的间距

◼ 基线(baseline):与小写字母x最底部对齐的线

◼ 注意区分height和line-height的区别

         height:元素的整体高度

         line-height:元素中每一行文字所占据的高度

◼ 应用实例:假设div中只有一行文字,如何让这行文字在div内部垂直居中

         让line-height等同于height 

7. font

◼ font是一个缩写属性

         font 属性可以用来作为 font-style, font-variant, font-weight, font-size, line-height 和 font-family 属性的简写;

         font-style font-variant font-weight font-size/line-height font-family

◼ 规则:

         font-style、font-variant、font-weight可以随意调换顺序,也可以省略

         /line-height可以省略,如果不省略,必须跟在font-size后面

         font-size、font-family不可以调换顺序,不可以省略

selector {
    font: font-style font-variant font-weight font-size/line-height font-family;
}

各属性含义如下:

  • font-style:设置字体的样式,可选值有 normal(正常)、italic(斜体)、oblique(倾斜)。
  • font-variant:设置小型大写字母的字体显示文本,可选值有 normal(正常)、small-caps(小型大写字母)。不过该属性在现代网页设计中使用较少。
  • font-weight:设置字体的粗细,可选值有 normal(正常)、bold(粗体)、bolder(更粗)、lighter(更细),还可以使用具体的数值,如 100 - 900
  • font-size:设置字体的大小,可以使用像素(px)、百分比(%)、emrem 等单位。
  • line-height:设置行高,即文本行与行之间的垂直间距,可以是一个无单位的数值(表示相对于字体大小的倍数),也可以使用具体的长度单位。
  • font-family:设置字体族,可以是具体的字体名称,也可以是通用字体族,如 serifsans-serifmonospace 等。

8.CSS常见选择器

8.1CSS选择器(selector)

◼ 开发中经常需要找到特定的网页元素进行设置样式

         思考:如何找到特定的那个元素?

◼ 什么是CSS选择器

         按照一定的规则选出符合条件的元素,为之添加CSS样式

◼ 选择器的种类繁多,大概可以这么归类

         通用选择器(universal selector)

         元素选择器(type selectors)

         类选择器(class selectors)

         id选择器(id selectors)

         属性选择器(attribute selectors)

         组合(combinators)

         伪类(pseudo-classes)

         伪元素(pseudo-elements)

8.2通用选择器

◼ 通用选择器(universal selector)

         所有的元素都会被选中;

◼ 一般用来给所有元素作一些通用性的设置

         比如内边距、外边距;

         比如重置一些内容;

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

◼ 效率比较低,尽量不要使用;

8.3简单选择器(基本选择器)

◼ 简单选择器是开发中用的最多的选择器:

         元素选择器(type selectors), 使用元素的名称;

         类选择器(class selectors), 使用 .类名 ;

         id选择器(id selectors), 使用 #id;

id注意事项:

◼ 一个HTML文档里面的id值是唯一的,不能重复

         id值如果由多个单词组成,单词之间可以用中划线-、下划线_连接,也可以使用驼峰标识

         最好不要用标签名作为id值

◼ 中划线又叫连字符(hyphen)

8.4属性选择器

◼ 拥有某一个属性 [att]

◼ 属性等于某个值 [att=val]

◼ 其他了解的(不用记)

 [attr*=val]: 属性值包含某一个值val;

 [attr^=val]: 属性值以val开头;

 [attr$=val]: 属性值以val结尾;

 [attr|=val]: 属性值等于val或者以val开头后面紧跟连接符-;

 [attr~=val]: 属性值包含val, 如果有其他值必须以空格和val分割;

8.5后代选择器

◼ 后代选择器一: 所有的后代(直接/间接的后代)

         选择器之间以空格分割

 ◼ 后代选择器二: 直接子代选择器(必须是直接自带)

         选择器之间以 > 分割;

8.6 兄弟选择器

◼ 兄弟选择器一:相邻兄弟选择器(后者生效)

         使用符号 + 连接

◼ 兄弟选择器二: 普遍兄弟选择器 ~(后面所有兄弟)

         使用符号 ~ 连接

8.7选择器组 – 交集选择器 

◼ 交集选择器: 需要同时符合两个选择器条件(两个选择器紧密连接)

         在开发中通常为了精准的选择某一个元素;

◼ 并集选择器: 符合一个选择器条件即可(两个选择器以,号分割)

         在开发中通常为了给多个元素设置相同的样式;

8.8认识伪类 

◼ 什么是伪类呢?

         Pseudo-classes: 翻译过来是伪类;

         伪类是选择器的一种,它用于选择处于特定状态的元素;

◼ 比如我们经常会实现的: 当手指放在一个元素上时, 显示另外一个颜色;

◼ 常见的伪类有

◼ 1.动态伪类(dynamic pseudo-classes)

         :link、:visited、:hover、:active、:focus

◼ 2.目标伪类(target pseudo-classes)

         :target

◼ 3.语言伪类(language pseudo-classes)

         :lang( )

◼ 4.元素状态伪类(UI element states pseudo-classes)

         :enabled、:disabled、:checked 伪类(pseudo-classes)

◼ 5.结构伪类(structural pseudo-classes)(后续学习)

         :nth-child( )、:nth-last-child( )、:nth-of-type( )、:nth-lastof-type( )  :first-child、:last-child、:first-of-type、:last-of-type  :root、:only-child、:only-of-type、:empty

◼ 6.否定伪类(negation pseudo-classes)(后续学习)

         :not()

◼ 所有的伪类: https://developer.mozilla.org/zhCN/docs/Web/CSS/Pseudo-classes

1.动态伪类

◼ 使用举例

         a:link 未访问的链接

         a:visited 已访问的链接

         a:hover 鼠标挪动到链接上(重要)

         a:active 激活的链接(鼠标在链接上长按住未松开)

◼ 使用注意

         :hover必须放在:link和:visited后面才能完全生效

         :active必须放在:hover后面才能完全生效

         所以建议的编写顺序是 :link、:visited、:hover、:active

◼ 除了a元素,:hover、:active也能用在其他元素上

2.动态伪类 - :focus

◼ :focus指当前拥有输入焦点的元素(能接收键盘输入)

         文本输入框一聚焦后,背景就会变红色

◼ 因为链接a元素可以被键盘的Tab键选中聚焦,所以:focus也适用于a元素

◼ 动态伪类编写顺序建议为

         :link、:visited、:focus、:hover、:active

◼ 直接给a元素设置样式,相当于给a元素的所有动态伪类都设置了

         相当于a:link、a:visited、a:hover、a:active、a:focus的color都是red

3.伪元素

◼ 常用的伪元素有

         :first-line、::first-line

         :first-letter、::first-letter

         :before、::before

         :after、::after

◼ 为了区分伪元素和伪类,建议伪元素使用2个冒号,比如::first-line

◼ ::first-line可以针对首行文本设置属性

◼ ::first-letter可以针对首字母设置属性

◼ ::before和::after用来在一个元素的内容之前或之后插入其他内容(可以是文字、图片)

         常通过 content 属性来为一个元素添加修饰性的内容 

9.CSS继承-层叠-元素类型

9.1 CSS属性的继承

◼ CSS的某些属性具有继承性(Inherited):

         如果一个属性具备继承性, 那么在该元素上设置后, 它的后代元素都可以继承这个属性;  当然, 如果后代元素自己有设置该属性, 那么优先使用后代元素自己的属性(不管继承过来的属性权重多高);

◼ 如何知道一个属性是否具有继承性呢?

         常见的font-size/font-family/font-weight/line-height/color/text-align都具有继承性;  这些不用刻意去记, 用的多自然就记住了;

◼ 另外要多学会查阅文档, 文档中每个属性都有标明其继承性的:

注意(了解): 继承过来的是计算值, 而不是设置值

常见的继承属性有哪些呢?(不用记)

9.2 CSS属性的层叠

◼ CSS的翻译是层叠样式表, 什么是层叠呢?

         对于一个元素来说, 相同一个属性我们可以通过不同的选择器给它进行多次设置;

         那么属性会被一层层覆盖上去;

         但是最终只有一个会生效;

◼ 那么多个样式属性覆盖上去, 哪一个会生效呢?

         判断一: 选择器的权重, 权重大的生效, 根据权重可以判断出优先级;

         判断二: 先后顺序, 权重相同时, 后面设置的生效;

◼ 那么如何知道元素的权重呢?

选择器的权重

◼ 按照经验,为了方便比较CSS属性的优先级,可以给CSS属性所处的环境定义一个权值(权重)

         !important:10000

         内联样式:1000

         id选择器:100

         类选择器、属性选择器、伪类:10

         元素选择器、伪元素:1

         通配符:0

9.3 CSS属性的类型

◼ 在前面我们会经常提到div是块级元素会独占一行, span是行内级元素会在同一行显示.

         到底什么是块级元素, 什么是行内级元素呢?

◼ HTML定义元素类型的思路:

         HTML元素有很多, 比如h元素/p元素/div元素/span元素/img元素/a元素等等;

         当我们把这个元素放到页面上时, 这个元素到底占据页面中一行多大的空间呢?

                ✓ 为什么我们这里只说一行呢? 因为垂直方向的高度通常是内容决定的;

         比如一个h1元素的标题, 我们必然是希望它独占一行的, 其他的内容不应该和我的标题放在一起;

         比如一个p元素的段落, 必然也应该独占一行, 其他的内容不应该和我的段落放在一起;

         而类似于img/span/a元素, 通常是对内容的某一个细节的特殊描述, 没有必要独占一行;

◼ 所以, 为了区分哪些元素需要独占一行, 哪些元素不需要独占一行, HTML将元素区分(本质是通过CSS的)成了两类:

         块级元素(block-level elements): 独占父元素的一行

         行内级元素(inline-level elements):多个行内级元素可以在父元素的同一行中显示

通过CSS修改元素类型

◼ 前面我们说过, 事实上元素没有本质的区别:

         div是块级元素, span是行内级元素;

         div之所以是块级元素仅仅是因为浏览器默认设置了display属性而已;

9.4 display属性

◼ CSS中有个display属性,能修改元素的显示类型,有4个常用值

         block:让元素显示为块级元素

         inline:让元素显示为行内级元素

         inline-block:让元素同时具备行内级、块级元素的特征

         none:隐藏元素

◼ 事实上display还有其他的值, 比如flex, 后续会专门学习;

◼ block元素:

         独占父元素的一行

         可以随意设置宽高

         高度默认由内容决定

◼ inline-block元素:

         跟其他行内级元素在同一行显示

         可以随意设置宽高  可以这样理解

                ✓ 对外来说,它是一个行内级元素

                ✓ 对内来说,它是一个块级元素

◼ inline:

         跟其他行内级元素在同一行显示;

         不可以随意设置宽高;

         宽高都由内容决定;

编写HTML时的注意事项:

◼ 块级元素、inline-block元素

         一般情况下,可以包含其他任何元素(比如块级元素、行内级元素、inline-block元素)  特殊情况,p元素不能包含其他块级元素

◼ 行内级元素(比如a、span、strong等)

         一般情况下,只能包含行内级元素

9.5 元素的隐藏

◼ 方法一: display设置为none

         元素不显示出来, 并且也不占据位置, 不占据任何空间(和不存在一样);

◼ 方法二: visibility设置为hidden

         设置为hidden, 虽然元素不可见, 但是会占据元素应该占据的空间;

         默认为visible, 元素是可见的;
◼ 方法三: rgba设置颜色, 将a的值设置为0

         rgba的a设置的是alpha值, 可以设置透明度, 不影响子元素;

rgba的局部性​​:父元素使用rgba设置颜色透明度,子元素需显式覆盖颜色才能避免透明效果

◼ 方法四: opacity设置透明度, 设置为0

         设置整个元素的透明度, 会影响所有的子元素;

opacity的全局影响​​:若父元素使用opacity: 0,子元素无论是否设置颜色都会透明,因为opacity会强制继承到整个子树

9.6 overflow属性

◼ overflow用于控制内容溢出时的行为

         visible:溢出的内容照样可见

         hidden:溢出的内容直接裁剪

         scroll:溢出的内容被裁剪,但可以通过滚动机制查看

                 会一直显示滚动条区域,滚动条区域占用的空间属于width、height

         auto:自动根据内容是否溢出来决定是否提供滚动机制

9.7 CSS样式不生效技巧

◼ 为何有时候编写的CSS属性不好使,有可能是因为

         选择器的优先级太低

         选择器没选中对应的元素

         CSS属性的使用形式不对

                ✓ 元素不支持此CSS属性,比如span默认是不支持width和height的

                ✓ 浏览器不支持此CSS属性,比如旧版本的浏览器不支持一些css module3的某些属性

                ✓ 被同类型的CSS属性覆盖,比如font覆盖font-size

◼ 建议

         充分利用浏览器的开发者工具进行调试(增加、修改样式)、查错

10.CSS盒子模型

10.1 认识盒子模型

◼ 事实上, 我们可以把HTML每一个元素看出一个个的盒子:

◼ 内容(content)

          元素的内容width/height
◼ 内边距(padding)
         元素和内容之间的间距
◼ 边框(border)
         元素自己的边框
◼ 外边距(margin)
         元素和其他元素之间的间距

◼ 因为盒子有四边, 所以margin/padding/border都包括top/right/bottom/left四个边:

      

10.2 内容width/height

◼ 设置内容是通过宽度和高度设置的:

         宽度设置: width

         高度设置: height

◼ 注意: 对于行内级非替换元素来说, 设置宽高是无效的!

◼ 另外我们还可以设置如下属性:

         min-width:最小宽度,无论内容多少,宽度都大于或等于min-width

         max-width:最大宽度,无论内容多少,宽度都小于或等于max-width

         移动端适配时, 可以设置最大宽度和最小宽度;

◼ 下面两个属性不常用:

         min-height:最小高度,无论内容多少,高度都大于或等于min-height

         max-height:最大高度,无论内容多少,高度都小于或等于max-height

10.3 内边距padding

◼ padding属性用于设置盒子的内边距, 通常用于设置边框和内容之间的间距;

◼ padding包括四个方向, 所以有如下的取值:

         padding-top:上内边距

         padding-right:右内边距

         padding-bottom:下内边距

         padding-left:左内边距

◼ padding单独编写是一个缩写属性:

         padding-top、padding-right、padding-bottom、padding-left的简写属性

         padding缩写属性是从零点钟方向开始, 沿着顺时针转动的, 也就是上右下左;

◼ padding并非必须是四个值, 也可以有其他值;

10.4 边框/圆角border

10.5 外边距margin

10.6 盒子和文字阴影

10.7 box-sizing