html&css学习笔记——CSS2基础

学习视频:尚硅谷前端入门html+css零基础教程,零基础前端开发html5+css3视频  P57-147

(以下笔记为作者学习并参考尚硅谷相关学习资料整理)

目录

二、CSS2基础

1.CSS编写位置

1.1行内样式(又称:内联样式)

1.2内部样式

1.3外部样式

2.样式表的优先级

3.CSS选择器

3.1CSS基础选择器

3.1.1通配选择器

3.1.2元素选择器

3.1.3类选择器

3.1.4ID选择器

3.2复合选择器

3.2.1交集选择器

3.2.2并集选择器

3.2.3后代选择器

3.2.4子代选择器

3.2.5兄弟选择器(向下找)

3.2.6属性选择器

3.2.7伪类选择器

3.2.7.1动态伪类

3.2.7.2结构伪类

3.2.7.3否定伪类

3.2.7.4UI伪类

3.2.7.5目标伪类(了解)

3.2.7.6语言伪类(了解)

3.2.8伪元素选择器

3.3选择器的优先级(权重)

4.CSS三大特性

4.1层叠性

4.2继承性

4.3优先级(详见3.3)

5.CSS常用属性

5.1颜色的表示

5.2CSS字体属性

5.2.1字体大小font-size

5.2.2字体族font-family

5.2.3字体风格 font-style

5.2.4字体粗细font-weight

5.2.5字体复合写法font

5.3CSS文本属性

  5.3.1文本颜色color 

5.3.2文本间距

5.3.3文本修饰text-decoration

5.3.4文本缩进text-indent

5.3.5文本对齐_水平text-align

5.3.6行高line-height

5.3.7文本对齐_垂直

5.4CSS列表属性

5.5CSS表格属性

5.5.1边框相关属性(其他元素也能用)

5.5.1表格独有属性(只有 table 标签才能使用)

5.6CSS背景属性

5.7CSS鼠标属性

6.CSS盒子模型

6.1CSS长度单位

6.2元素的显示模式

6.3总结各元素的显示模式

6.4修改元素的显示模式

6.5盒子模型的组成

6.6盒子内容区(content)

6.7盒子内边距(padding)

6.8盒子边框(border)

6.9盒子外边距(margin)

6.9.1margin塌陷问题

6.9.2margin合并问题

6.10处理内容溢出

6.11隐藏元素的方式

6.12样式的继承

6.13默认样式

6.14布局小技巧

6.15元素之间的空白问题

6.16行内块的幽灵空白问题

7.浮动

7.1特点

7.2解决浮动产生的影响

7.3解决影响(清除浮动)

7.4浮动布局练习

 8.定位

8.1相对定位

8.2绝对定位

8.3固定定位

8.3粘性定位

8.5定位层级

8.6定位的特殊应用

8.6.1让定位元素的宽充满包含块

8.6.2让定位元素在包含块中居中

 9.布局

9.1版心

9.2常用布局名词

9.3重置默认样式


二、CSS2基础

1.CSS编写位置

1.1行内样式(又称:内联样式)

写在标签的 style 属性中

欢迎光临

注意点:

1. style 属性的值不能随便写,写要符合 CSS 语法规范,是 名:值; 的形式。

2. 行内样式表,只能控制当前标签的样式,对其他标签无效。

存在的问题:

样式不能复用、并且没有体现出结构与样式分离的思想

1.2内部样式

写在 html 页面内部,将所有的 CSS 代码提取出来,单独放在

注意点:

1.

:last-child 所有兄弟元素中的最后一个

③ :nth-child(n) 所有兄弟元素中的第 n 个

④ :first-of-type 所有同类型兄弟元素中的第一个。

⑤ :last-of-type 所有同类型兄弟元素中的最后一个。

⑥ :nth-of-type(n) 所有同类型兄弟元素中的 第n个 。

  • 关于 n 的值:(an+b的形式)

1. 0 或 不写 :什么都选不中 —— 几乎不用。

2. n :选中所有子元素 —— 几乎不用。

3. 1~正无穷的整数 :选中对应序号的子元素。

4. 2n 或 even :选中序号为偶数的子元素。

5. 2n+1 或 odd :选中序号为奇数的子元素。

6. -n+3 :选中的是前 3 个。

  • 了解即可:

1. :nth-last-child(n) 所有兄弟元素中的倒数第 n 个。

2. :nth-last-of-type(n) 所有同类型兄弟元素中的倒数第n个 。

3. :only-child 选择没有兄弟的元素(独生子女)。

4. :only-of-type 选择没有同类型兄弟的元素。

5. :root 根元素

6. :empty 内容为空元素(空格也算内容)。

3.2.7.3否定伪类

:not(选择器) 排除满足括号中条件的元素

3.2.7.4UI伪类

1. :checked 被选中的复选框或单选按钮。

2. :enable 可用的表单元素(没有 disabled 属性)。

3. :disabled 不可用的表单元素(有 disabled 属性)

3.2.7.5目标伪类(了解)

:target 选中锚点指向的元素。

3.2.7.6语言伪类(了解)

:lang() 根据指定的语言选择元素(本质是看 lang 属性的值)

3.2.8伪元素选择器

选中元素中的一些特殊位置

::first-letter 选中元素中的第一个文字

::first-line 选中元素中的第一行文字

::selection 选中被鼠标选中的内容。

::placeholder 选中输入框的提示文字

::before 在元素最开始的位置,创建一个子元素(必须用 content 属性指定内容)。

::after 在元素最后的位置,创建一个子元素(必须用 content 属性指定内容)

3.3选择器的优先级(权重)

①!important>行内样式 > ID选择器 > 类选择器 > 元素选择器 > 通配选择器>继承的样式

②权重

1)计算方法:每个选择器,都可计算出一组权重,格式为: (a,b,c)

        a : ID 选择器的个数。

        b : 类、伪类、属性 选择器的个数。

        c : 元素、伪元素 选择器的个数。

例如:

选择器 权重
ul>li
(0,0,2)
div ul>li p a span
(0,0,6)
#atguigu .slogan
(1,1,0)
#atguigu .slogan a
(1,1,1)
#atguigu .slogan a:hover
(1,2,1)

比较规则:按照从左到右的顺序,依次比较大小,当前位胜出后,后面的不再对比

3)!important 写在具体样式后面,一般不用

4)并集选择器的每一个部分是分开算

4.CSS三大特性

4.1层叠性

如果发生了样式冲突(元素的同一个样式名,被设置了不同的值),那就会根据一定的规则(选择器优先级),进行样式的层叠(覆盖)。

4.2继承性

元素会自动拥有其元素、或其祖先元素上所设置的某些样式。(优先继承离得近的)

常见的可继承属性: text-?? , font-?? , line-?? 、 color ......

4.3优先级(详见3.3)

5.CSS常用属性

5.1颜色的表示

①颜色名

②rgb 或 rgba(红绿蓝透明度)

若三种颜色值相同,呈现的是灰色,值越大,灰色越浅; rgb(0, 0, 0) 是黑色, rgb(255, 255,255) 是白色。 ; 对于 rbga 来说,前三位的 rgb 形式要保持一致,要么都是 0~255 的数字,要么都是 百分比 。

③HEX 或 HEXA

格式为:# rrggbb

每一位数字的取值范围是: 0 ~ f ,即:( 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f ) 所以每一种光的最小值是: 00 ,最大值是: ff

注意点: IE 浏览器不支持 HEXA ,但支持 HEX

④HSL 或 HSLA

格式为: hsl(色相,饱和度,亮度)

色相:取值范围是 0~360 度;饱和度:取值范围是 0%~100% 。(向色相中对应颜色中添加灰色, 0% 全灰, 100% 没有灰) ;亮度:取值范围是 0%~100% 。( 0% 亮度没了,所以就是黑色。 100% 亮度太强,所以就是白色了)

HSLA 其实就是在 HSL 的基础上,添加了透明度。

5.2CSS字体属性

5.2.1字体大小font-size

注意点:

1. Chrome 浏览器支持的最小文字为 12px ,默认的文字大小为 16px ,并且 0px 会自动消失。

2. 不同浏览器默认的字体大小可能不一致,所以最好给一个明确的值,不要用默认大小。

3. 通常以给 body 设置 font-size 属性,这样 body 中的其他元素就都可以继承了。

5.2.2字体族font-family
div {
    font-family: "STCaiyun","Microsoft YaHei",sans-serif
}

注意:

1. 使用字体的英文名字兼容性会更好,具体的英文名可以自行查询,或在电脑的设置里去寻找。

2. 如果字体名包含空格,必须使用引号包裹起来。

3. 可以设置多个字体,按照从左到右的顺序逐个查找,找到就用,没有找到就使用后面的,且通常在最后写上 serif (衬线字体)或 sans-serif (非衬线字体)。

4. windows 系统中,默认的字体就是微软雅黑。

5.2.3字体风格 font-style

常用值:

1. normal :正常(默认值)

2. italic :斜体(使用字体自带的斜体效果)

3. oblique :斜体(强制倾斜产生的斜体效果)

5.2.4字体粗细font-weight

关键词:

1. lighter :细

2. normal : 正常

3. bold :粗

4. bolder :很粗 (多数字体不支持)

数值: 1. 100~1000 且无单位,数值越大,字体越粗 (或一样粗,具体得看字体设计时的精确程度)。 2. 100~300 等同于 lighter , 400~500 等同于 normal , 600 及以上等同于bold 。

5.2.5字体复合写法font

编写规则: 1. 字体大小、字体族必须都写上。 2. 字体族必须是最后一位、字体大小必须是倒数第二位。 3. 各个属性间用空格隔开。

5.3CSS文本属性

  5.3.1文本颜色color 
5.3.2文本间距

字母间距: letter-spacing

单词间距: word-spacing (通过空格识别词)

属性值为像素( px ),正值让间距增大,负值让间距缩小。

5.3.3文本修饰text-decoration

可选值:

1. none : 无装饰线(常用) ;2. underline :下划线(常用) ;

3. overline : 上划线 ;4. line-through : 删除线

可搭配如下值使用: 1. dotted :虚线 ;2. wavy :波浪线 ;3. 也可以指定颜色

5.3.4文本缩进text-indent

可以用em为单位

5.3.5文本对齐_水平text-align
常用值: 1. left :左对齐(默认值) ;2. right :右对齐 ;3. center :居中对齐
5.3.6行高line-height

可选值:

1. normal :由浏览器根据文字大小决定的一个默认值。

2. 像素( px )。

3. 数字:参考自身 font-size 的倍数(很常用)。

4. 百分比:参考自身 font-size 的百分比。

注意事项:

1. line-height 过小会怎样?—— 文字产生重叠,且最小值是 0 ,不能为负数。

2. line-height 是可以继承的,且为了能更好的呈现文字,最好写数值。

3. line-height 和 height 是什么关系? 设置了 height ,那么高度就是 height 的值。 不设置 height 的时候,会根据 line-height 计算高度。

应用场景:

1. 对于多行文字:控制行与行之间的距离。

2. 对于单行文字:让 height 等于 line-height ,可以实现文字垂直居中。 (由于字体设计原因,靠上述办法实现的居中,并不是绝对的垂直居中,但如果一行中都是文字,不会太影响观感。)

5.3.7文本对齐_垂直

方式一:line-height 和 height

1. 顶部:无需任何属性,在垂直方向上,默认就是顶部对齐。

2. 居中:对于单行文字,让 height = line-height 即可。

3. 底部:对于单行文字,目前一个临时的方式: 让 line-height = ( height × 2 ) - font-size - x 。 (x 是根据字体族,动态决定的一个值)

方式二:vertical-align

作用:用于指定同一行元素之间,或表格单元格内文字的垂直对齐方式。(不能控制块元素)

常用值:

1. baseline (默认值):使元素的基线与父元素的基线对齐。

2. top :使元素的顶部与其所在行的顶部对齐。

3. middle :使元素的中部与父元素的基线加上父元素字母 x 的一半对齐。

4. bottom :使元素的底部与其所在行的底部对齐。

5.4CSS列表属性

列表相关的属性,可以作用在 ul 、 ol 、 li 元素上   

属性名

功能

属性值

list-style-type

设置列表符号

none :不显示前面的标识(很常用!)

square :实心方块

disc :圆形

decimal :数字

lower-roman :小写罗马字

upper-roman :大写罗马字

lower-alpha :小写字母

upper-alpha :大写字母

list-style-position

设置列表符号的位置

inside :在 li 的里面

outside :在 li 的外边

list-style-image

自定义列表符号

url(图片地址)

list-style

复合属性

没有数量、顺序要求

5.5CSS表格属性

5.5.1边框相关属性(其他元素也能用)
CSS 属性名
功能
属性值
border-width 边框宽度

border-color

边框颜色
border-style 边框风格
none 默认值
solid 实线
dashed 虚线
dotted 点线
double 双实线
border 复合
没有数量、顺序的要求
5.5.1表格独有属性(只有 table 标签才能使用)
css属性名 功能 属性值
table-layout 设置列宽度
auto :自动,列宽根据内容计算(默认 值)。
fixed :固定列宽,平均分。
border-spacing 单元格间距
CSS 中可用的长度值。
生效的前提:单元格边框不能合并。
border-collapse 合并单元格边框
collapse :合并
separate :不合并
empty-cells 隐藏没有内容的单元格
show :显示,默认
hide :隐藏
生效前提:单元格不能合并。
caption-side 设置表格标题位置
top :上面(默认值)
bottom :在表格下面

5.6CSS背景属性

CSS属性名 功能 属性值
background-color 背景颜色
默认背景颜色是 transparent 。
background-image 背景图片
url(图片的地址)
background-repeat 背景重复方式
repeat :重复,铺满整个元素,默认值。
repeat-x :只在水平方向重复。
repeat-y :只在垂直方向重复。
no-repeat :不重复。
background-position 背景图位置
通过关键字设置位置:
写两个值,用空格隔开
水平: left 、 center 、 right
垂直: top 、 center 、 bottom
如果只写一个值,另一个方向的值取 center
通过长度指定坐标位置:
以元素左上角,为坐标原点,设置图片左上角的
位置。
两个值,分别是 x 坐标和 y 坐标。
只写一个值,会被当做 x 坐标, y 坐标取 center
background 复合属性 没有数量和顺序要求(不写的用默认值)

5.7CSS鼠标属性

CSS属性名

功能

属性值

cursor

设置鼠标光标的样式

pointer :小手

move :移动图标

text :文字选择器

crosshair :十字架

wait :等待

help :帮助

(其他的查看文档)

扩展:自定义鼠标图标      cursor: url("./arrow.png"),pointer;

6.CSS盒子模型

6.1CSS长度单位

1. px :像素。

2. em :相对元素 font-size 的倍数(相对自身或其父元素或往上找)。

3. rem :相对根字体大小,html标签就是根。

4. % :相对父元素计算。

注意: CSS 中设置长度,必须加单位,否则样式无效!

6.2元素的显示模式

  • 块元素(block)(又称:块级元素)

特点: 1. 在页面中独占一行,不会与任何元素共用一行,是从上到下排列的。 2. 默认宽度:撑满父元素。 3. 默认高度:由内容撑开。 4. 可以通过 CSS 设置宽高。

  • 行内元素(inline) (又称:内联元素)

特点: 1. 在页面中不独占一行,一行中不能容纳下的行内元素,会在下一行继续从左到右排

列。 2. 默认宽度:由内容撑开。 3. 默认高度:由内容撑开。 4. 无法通过 CSS 设置宽高

  • 行内块元素(inline-block) (又称:内联块元素)

特点: 1. 在页面中不独占一行,一行中不能容纳下的行内元素,会在下一行继续从左到右排

列。 2. 默认宽度:由内容撑开。3. 默认高度:由内容撑开。 4. 可以通过 CSS 设置宽高

6.3总结各元素的显示模式

  • 块元素(block)(又称:块级元素)

1. 主体结构标签: 、

2. 排版标签:

~


3. 列表标签:

    1. 4. 表格相关标签:

      、 、 、 、 、

      5.

      • 行内元素(inline) (又称:内联元素)

      1. 文本标签:

      2.

      • 行内块元素(inline-block) (又称:内联块元素)

      1. 图片:

      2. 单元格:

      3. 表单控件: