CSS与CSS3知识点复习整理

**本篇文章食用的简单说明**

本篇文章为复习CSS与CSS3进行了知识点梳理,其中标题十部分在文章《HTML与HTML5知识点复习整理》中已经包括(有标注),加粗部分为重点!!!加粗加红为重重点!!!

由于CSS涉及过多,本篇文章只是大概部分,一些技巧和移动端知识在后续过程中会继续更新,欢迎小伙伴在评论区补充~

推荐大家按记忆梳理部分的内容自行回忆知识点,如有遗忘部分在左下方目录处点击相应部分可以进行跳转。

又是努力学习前端的一天,希望大家共同进步~~~(QAQ我只是一个表情)❤

***记忆梳理***

一、CSS是什么,用来做什么

二、CSS引入方式

三、CSS基础选择器

  1. 包括几种,它们的作用
  2. 区别

四、CSS复合选择器

  1. 包括几种,它们的作用

五、CSS新增选择器

  1. 包括几种,它们的作用
  2. 选择器权重
  3. 三大特性

六、字体属性

  1. 字体
  2. 字号
  3. 字体粗细
  4. 字体样式
  5. 字体连写

七、文本属性

  1. 文本颜色
  2. 文本对齐
  3. 文本缩进
  4. 文本修饰
  5. 行高:单行文字垂直居中的代码*

八、背景属性

  1. 背景颜色
  2. 背景图像
  3. 背景平铺
  4. 背景图片位置
  5. 背景附着
  6. 背景色半透明
  7. 背景复合写法

九、注释

十、HTML元素分类与元素转换/CSS元素显示模式(《HTML与HTML5知识点复习整理中已经包括

  1. 元素分类
  2. 元素转换

十一、网页布局

  1. 盒子模型
  2. 外边距应用、块级行内行内块的居中方式
  3. 标准流
  4. 浮动
  5. 定位

十一、CSS3新特性

  1. 图片模糊
  2. 函数自动计算
  3. 过渡

十二、元素的显示与隐藏

  1.  包括几种,它们的作用,区别

一、CSS指层叠样式表(Cascading Style Sheets),美化HTML,解决布局问题。解释:以多种方式规定样式信息,样式表定义如何显示 HTML 元素。

二、CSS引入方式---"多种方式"

2.1 外部方式

优先级:<link /> @import

(1)链接<link />:一边加载数据,一边优化,视觉效果好。

<head><!-- link只能在head部分,可以引入多个css -->

<link type="text/css" rel="styleSheet" href="css文件路径" />

</head>

(2)导入:@import:先加载数据,再加载样式,可能造成数据先显示,样式还在加载。

 <style type="text/css"><!-- @import必须在style部分 -->

@import url("css文件路径");

</style>

2.2 内部方式<style>

<head>

<style type="text/css"> 

div {                                 /* css整体放在head部分*/

        width:200px;

        height:100px;

        bacground-color:pink;

}

</style>

</head>

2.3 行内方式/内联方式:直接在HTML元素内使用style,优先级最大,不推荐

<h1 style="color:red;">我是h1标题,还记得我吗QAQ</h1>

优先级:行内样式>外部样式=内部样式(后两者“就近原则”,以最后出现的为准

三、CSS基础选择器

3.1 标签选择器:用 HTML 标签名称作为选择器,选出所有相同的标签,权重为1

3.2 class类选择器:可以选出1个或多个标签,权重为10

<style>

.box {                /* .class {属性1...} */

            width: 200px;

            height: 100px;

            background-color: pink;

}

</style>

<div class="box">我是一个盒子</div><!-- class="类名" 类名的第一个字符不能使用数字 -->

多类名:多个类名中间必须用空格分开,这个标签就可以分别具有这些类名的样式,较多使用

<div class="类名1 类名2">我是一个盒子</div>

3.3 id选择器:一次只能选择一个标签,id 属性在每个 HTML 文档中只能出现一次

<style>

#box {                /* .id {属性1...} */

            width: 200px;

            height: 100px;

            background-color: pink;

}

</style>

<div id="box">我是一个盒子</div><!-- id="类名" -->

3.4  通配符选择器:选择所有标签

<style>

* {                /*   * {属性1...}   */

            margin:0'

            padding:0;         /* 常用来清除内外边距 */

}

</style>

3.5 类选择器与id选择器的区别

类选择器一个标签可以起多个名字,一个名字可以多个标签使用,修改样式中使用多。

id选择器唯一不得重复,经常与JavaScript搭配使用。

四、CSS复合选择器

4.1 派生选择器:根据上下文关系来确定某个标签的样式

(1)后代选择器:元素2 可以是儿子,也可以是孙子等,只要是元素1 的后代即可

<style>

strong {                 /* 被h2 strong覆盖*/

            color: blue;

}

h2 {

            color: #000;

}

h2 strong {             /* 元素1 元素2 { 样式声明 }  元素1 和 元素2 中间用空格隔开*/

            color: pink;

}

</style>

<h2>我是一个正常的h2标题</h2>

<h2>我是一个<strong>粉色的h2标题</strong></h2>

(2)>子元素选择器选择它下一级全部的亲儿子,元素2 必须是亲儿子,其孙子、重孙之类都不归他管. 你也可以叫他 亲儿子选择器

<style>
h1 > strong {color:pink;}
</style>
<h1>我是 <strong>h1</strong> <strong>标签!</strong> 变为粉色</h1>
<h1>我是 <em>h1 <strong>标签!</strong></em> 不变色</h1>

(3)+相邻兄弟选择器:选择紧接在另一个元素后的元素,而且二者有相同的父元素。

4.2 , 并集选择器:选择某些相同样式的元素,集体声明

4.3 : 伪类选择器

        4.3.1 链接伪类选择器:请按照 LVHA 的循顺序声明 :link-:visited-:hover-:active

        4.3.2 :focus 伪类选择器:用于选取获得焦点(光标)的表单元素

五、CSS3新增选择器

5.1 属性选择器:根据元素特定属性选择元素,权重为10

E[att]:选择具有att属性的E元素

E[att = "val"]:选择具有att属性且值等于val的E元素

E[att^ = "val"]:选择具有att属性且值等于val开头的E元素

E[att$ = "val"]:选择具有att属性且值等于val结尾的E元素

E[att* = "val"]:选择具有att属性且值中含有等于val的E元素

5.2 结构伪类选择器:根据文档结构来选择元素,权重为10

E:first-child 匹配父元素第一个子元素E

E:last-child 匹配父元素最后一个子元素E

E:nth-child(n) 匹配父元素第n个子元素E

E:first-of-type(n) 指定类型E的第一个元素

E:last-of-type(n) 指定类型E的最后个元素

E:nth-of-type(n) 指定类型E的第n个元素

        5.2.1 E:nth-child(n) 匹配父元素第n个子元素E

                 (1)n可以是数字,关键字和公式

                 (2)n里面数字从1开始

                 (3)关键字:even偶数,odd奇数

                 (4)常见公式:从0开始,但是第0个元素或超出个数会忽略

                         2n 偶数,2n+1 奇数,5n 5的倍数,n+5 从第五个(包含第5个)到最后,-n+5 前五个(包含第5个)...

5.3 nth-child和nth-of-type区别

nth-child对父元素里面所有孩子排序选择(序号固定),先找到第n个孩子,查看是否匹配

nth-of-type对父元素里面指定子元素排序选择,先匹配,后找第n个孩子

5.4 ::伪元素选择器:新创建的元素在文档树中找不到,称为伪元素

        5.4.1 ::before和::after:创建一个元素,但属于行内元素,必须有content属性,权重为1

                    ::before在元素内部的前面插入内容,但属于行内元素

                    ::after在元素内部的后面插入内容,但属于行内元素

5.4.1 清除浮动的方法

(1)额外标签法/隔墙法:在最后一个浮动的子元素后面添加一个额外/空标签。

(2)父级添加overflow属性:overflow:hidden/auto/scroll.但无法显示溢出部分。

**伪元素清除浮动算是第一种额外标签法的一个升级和优化**

(3)父级添加after属性

.clearfix:after {

        content:"";         /* 伪元素必须写的属性*/

        display:block;    /* 插入的元素必须是块级*/

        height:0;            /* 不要看见这个元素*/

        clear:both;         /* 核心代码清除浮动*/

        visibility:hidden; /* 不要看见这个元素*/

}

(4)父级添加双伪元素

.clearfix:before,.clearfix:after {

        content:"";         /* 伪元素必须写的属性*/

        display:table;    /* 转换为块级元素并且一行显示*/

}

.clearfix:after {

        clear:both;         /* 核心代码清除浮动*/

}

5.5 *选择器权重*---三大特性1.优先级:同一个元素指定多个选择器产生优先级;选择器相同,则执行层叠性,选择器不同,则根据选择器权重执行。

*选择器权重*

继承或*通配符              0,0,0,0

标签/元素选择器           0,0,0,1

类,属性,伪类选择器      0,0,1,0

id选择器                       0,1,0,0

行内样式style=""          1,0,0,0

!important重要的          无穷大

**权重叠加**:如果是复合选择器,则会权重叠加,需计算权重

div ul li   0,0,0,3

.nav ul li 0,0,1,2

a:hover  0,0,1,1

.nav a     0,0,1,1

注意:权重是4组数字组成,但不会进位

通配符*和继承权重0;标签/元素选择器1;类,伪类选择器10;id选择器100;行内样式表1000;!important无穷大

继承权重0,如果元素未直接选中,不管父元素权重多高,子元素权重都为0

5.6 三大特性2.继承性:子标签继承父标签的某些样式(以text-,font-,line- 开头,color)

5.7 三大特性3.层叠性:相同选择器设置相同样式会覆盖/层叠 样式冲突:后来者居上

六、字体属性

6.1 font-family字体

p {font-family:"微软雅黑";}

div {font-family: Arial,"Microsoft Yahei","微软雅黑";}

6.2 font-size字号/字体大小:12px 16px(谷歌默认) 18px

6.3 font-weight字体粗细:normal默认值不加粗--400;bold加粗--700;100-900 数值不跟单位。

6.4 font-style字体样式:normal默认值;italic斜体

6.5 字体连写/字体复合(简写)属性:不能更换顺序;取默认值属性可以省略,但必须保留 font-size 和 font-family 属性

body {

        font: font-style        font-weight        font-size/line-height        font-family;

}

七、文本属性

7.1 color文本颜色:常用十六进制#FF0000;预定义颜色red;RGB代码rgb(255,0,0或100%,0%,0%)

7.2 text-align文本对齐:设置文字水平对齐

7.3 text-indent文本缩进:段落首行缩进2字符,text-indent:2em;

7.4 text-decoration文本修饰 none默认取消underline下划线;overline上划线;line-trough删除线

7.5 line-height行高:行与行之间的距离

**单行文字垂直居中的代码**

解决方案: 文字的行高=盒子的高度 /* 文字在当前盒子内垂直居中*/

简单理解: 行高的上空隙和下空隙把文字挤到中间了. 是如果行高小于盒子高度,文字会偏上,如果行高大于盒子高度,则文字偏下

八、背景属性

8.1 background-color 背景颜色:默认值transparent(透明)

8.2 background-image 背景图像:url路径;none无背景图

8.3 background-repeat背景平铺:repeat默认纵向横向平铺;no-repeat不平铺;repeat-x/y 横/纵

8.4 background-position背景图片位置

(1)参数方位名词position:top|center|bottom|left|center|right

两个值无顺序 left top;top left一样

一个值,则第二个值默认居中对齐

(2)参数精确单位length:百分数%|浮动数和单位组成长度值

第一个x坐标,第二个y坐标

一个值就是x坐标,y默认垂直居中

(3)参数混合单位

第一个x坐标,第二个y坐标

8.5 background-attachment背景附着:scroll背景滚动;fixed背景固定

8.6 background: rgba(0, 0, 0, 0.3);背景色半透明(CSS3新增属性:最后一个参数是alpha透明度,取值范围0-1之间,0.x的0可以省略

8.7 背景复合写法:没有特定的书写顺序,一般习惯约定顺序

background: 背景颜色 背景图片地址 背景平铺 背景图像滚动 背景图片位置;

background:transparent        url(image.jpg)        repeat-y        fixed        top;

 九、注释:/*  注释  */ 

十、HTML元素分类与元素转换/CSS元素显示模式

10.1 元素分类

(1)block块级元素:独占一行(一行只能放一个块级元素),可以设置宽度、高度以及边距等样式属性,宽度默认是容器(父级宽度)的100%

        常见的块级元素有:<div>、<h1>-<h6>、<p>、<ul>、<ol>、<li>、<dd>、<dt>、<dl>等。

(2)inline行内元素/内联元素:不会独占一行(一行可以放多个行内元素),宽度默认由其本身决定,直接设置宽度高度无效默认宽度就是它本身内容的宽度

        常见的行内元素有:<span>、<img />、<input />、<select>、<textarea>、<br />、<strong>、<a>、<b>、<em>、<i>、<del>、<s>、<ins>、<u>等。

(3)inline-block行内块元素/内联块元素:不会独占一行(一行可以放多个行内元素)默认宽度就是它本身内容的宽度,可以设置宽度、高度以及边距等样式属性。(行内部分特点+块级部分特点

        常见的行内块元素有:<img />、<input />、<td>

10.2 元素转换

          10.2.1 display方法

                    转换为块元素:display:block;
                    转换为行内元素:display:inline;
                    转换为行内块元素:display: inline-block;

          10.2.2 float浮动

                    行内元素设置浮动后,该元素的display属性会被赋予block,转换为块级元素

          10.2.3 position定位

                    行内元素添加定位后,绝对定位position:absolute;与固定定位position:fixed;,转换为块级元素

十一、网页布局!!!超级重要!!!

10.1 盒子模型:把网页布局元素看作盒子,包括:外边距margin、边框border、内边距padding、实际内容content。

外边距应用:**盒子水平居中**---块级元素

.box {

        width:960px; /*  给盒子指定宽度width  */

        margin:0 auto; /*  盒子左右外边距设置auto  */

}

 行内元素或者行内块元素水平居中给父元素添加text-align:center;

CSS3新特性:box-sizing 来指定盒模型解决撑大盒子问题

值有两个context-box默认会撑大,border-box不会撑大

box-sizing:content-box; 盒子大小计算方式width+padding+border

box-sizing:border-box; 盒子大小计算方式width,因此padding和border不超过windth宽则不会撑大盒子

10.2 标准流(普通流/文档流):标签按照规定好默认方式排列。

10.3 float浮动:让多个块级元素一行内排列显示。

选择器{

        float: 属性值;        /*  none默认不浮动;left左浮动;right右浮动;  */

}

10.3.1  !!!浮动特性!!!

1. 浮动元素会脱离标准流,脱离标准普通流的控制(浮) 移动到指定位置(动),俗称脱标

    浮动的盒子不再保留原先的位置

2. 多个盒子都设置了浮动,浮动的元素会一行内显示并且元素顶部对齐

浮动的元素是互相贴靠在一起的(不会有缝隙),如果父级宽度装不下这些浮动的盒子, 多出的盒子 会另起一行对齐

3. 浮动的元素会具有行内块元素的特性.

10.3.2 清除浮动:由于父级盒子有时不给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为 0 时,就会影响下面的标准流盒子,影响排版布局,所以清除浮动。

***清除浮动的方法在目录五、5.4的5.4.1中***

注意:

(1)清除浮动的本质是清除浮动元素造成的影响

(2)如果父盒子本身有高度,则不需要清除浮动

(3)清除浮动之后,父级就会根据浮动的子盒子自动检测高度。父级有了高度,就不会影响下面的标准流了

网页布局准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动

10.4  position定位:定位模式 + 边偏移 

定位的使用场景:

某个元素可以自由的在一个盒子内移动位置,并且压住其他盒子。

当我们滚动窗口的时候,盒子是固定屏幕某个位置的。

10.4.1 定位模式

position:static;静态定位,默认无边偏移

position:relative;相对定位,相对于它原来的位置移动,标准流

position:absolute;绝对定位,是相对于它祖先元素来移动,脱离标准流不再占有原先的位置

position:fixed;固定定位,元素固定于浏览器可视区的位置,以浏览器的可视窗口为参照点移动元素,脱离标准流不再占有原先的位置

position:sticky;粘性定位,是相对定位和固定定位的混合。以浏览器的可视窗口为参照点移动元素,标准流

**子绝父相**:子级是绝 对定位的话,父级要加上相对定位。

**绝对定位的盒子居中**:加了绝对定位的盒子不能通过 margin:0 auto 水平居中,但是可以通过以下计算方法实现水平和垂直居中。

left: 50%;                        让盒子的左侧移动到父级元素的水平中心位置。

margin-left: -100px;        让盒子向左移动自身宽度的一半。

**固定在版心右侧位置**

1.让固定定位的盒子 left: 50%.。走到浏览器可视区(也可以看做版心) 的一半位置。

2.让固定定位的盒子 margin-left: 版心宽度的一半距离。 多走 版心宽度的一半位置

3.就可以让固定定位的盒子贴着版心右侧对齐了。

10.4.2 边偏移

top顶端偏移量;bottom底部偏移量;left左侧偏移量;right右侧偏移量;

10.4.3 定位叠放次序 z-index:控制盒子的前后次序,只有定位才有该属性。

选择器 {

        z-index: 1;        /*  数值可以是正整数、负整数或 0, 默认是 auto  */

}

数值越大,盒子越靠上;如果属性值相同,则按照书写顺序,后来居上;数字后面不能加单位

10.4.4 定位导致的元素转换

(1)行内元素添加绝对或者固定定位,可以直接设置高度和宽度

(2)块级元素添加绝对或者固定定位,如果不给宽度或者高度,默认大小是内容的大小

10.4.5 拓展

(1)脱标的盒子不会触发外边距塌陷 

          浮动元素、绝对定位(固定定位)元素的都不会触发外边距合并的问题。

(2)绝对定位(固定定位)完全压住下面标准流所有的内容,浮动只会压住下面标准流的盒子,但是不会压住下面标准流盒子里面的文字(图片 )

        浮动之所以不会压住文字,因为浮动产生的目的最初是为了做文字环绕效果的。 文字会围绕浮动元素

10.5 网页布局使用原则

先用标准流的父元素排列上下位置, 之后内部子元素采取浮动排列左右位置. 符合网页布局第一准侧。浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流

1. 标准流:可以让盒子上下排列或者左右排列,垂直的块级盒子显示就用标准流布局。

2. 浮动:可以让多个块级元素一行显示或者左右对齐盒子,多个块级盒子水平显示就用浮动布局。

3. 定位:定位最大的特点是有层叠的概念,就是可以让多个盒子前后叠压来显示。如果元素自由在某个盒子内移动就 用定位布局。

十一、CSS3 的新特性

11.1 filter图片变模糊:filter:函数();---filter:blur(5px);blur模糊处理,数值越大越模糊

11.2 calc 函数自动计算:width:calc(100%-80px);

11.3 transition过渡

经常和 :hover 一起 搭配使用;

transition: 要过渡的属性(css属性,全部all) 花费时间0.5s(必须写单位) 运动曲线(ease默认可省略) 何时开始0s延迟时间必须写单位可省略;

*记住过渡的使用口诀: 谁做过渡给谁加*

十二、 元素的显示与隐藏

12.1 display 显示隐藏:设置一个元素应如何显示

display: none ;隐藏元素,不再占有原来的位置

display:block ;除了转换为块级元素之外,同时还有显示元素的意思

12.2 visibility 显示隐藏:指定一个元素应可见还是隐藏

visibility:hidden; 元素隐藏,继续占有原来的位置

visibility:visible ; 元素可视

12.3 overflow 溢出显示隐藏:如果内容溢出一个元素的框(超过其指定高度及宽度) 时,会发生什么

overflow:visible;不剪切内容也不加滚动条

overflow:hidden;不显示超过对象尺寸的内容,超出部分隐藏

overflow:scroll;不管超出与否,总显示滚动条

overflow:auto;超出自动显示滚动条,不超出不显示

注意:有定位的盒子, 请慎用overflow:hidden 因为它会隐藏多余的部分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值