整理下CSS学习笔记(一)

核心思想: HTML 搭建结构, CSS 添加样式,实现结构与样式的分离。

一、 CSS基础

1.css的编写位置

1.1 行内样式

写在标签的 style 属性中,(又称:内联样式)。

语法:

<h1 style="color:red;font-size:60px;">欢迎光临</h1>

存在的问题:

书写繁琐、样式不能复用、并且没有体现出:结构与样式分离 的思想,不推荐大量使用,只

有对当前元素添加简单样式时偶尔使用。

1.2 内部样式

写在 html 页面内部,将所有的 CSS 代码提取出来,单独放在 <style> 标签中。

语法:

<style>
h1 {
color: red;
font-size: 40px;
}
</style>

注意点:

1. <style> 标签一般放在 <head> 标签中。

2. 此种写法:样式可以复用、代码结构清晰。

存在的问题:

1. 并没有实现:结构与样式完全分离

2. 多个 HTML 页面无法复用样式。

1.3 外部样式

写在单独的 .css 文件中,随后在 HTML 文件中引入使用。

语法:

1. 新建一个扩展名为 .css 的样式文件,把所有 CSS 代码都放入此文件中。

2. 在 HTML 文件中引入 .css 文件。

<link rel="stylesheet" href="./xxx.css">

注意点:

1. <link> 标签要写在 <head> 标签中。

2. <link> 标签属性说明:

href :引入的文档来自于哪里。

rel :( relation :关系)说明引入的文档与当前文档之间的关系。

3. 外部样式的优势:实现了结构与样式的完全分离

4. 实际开发中,几乎都使用外部样式,这是最推荐的使用方式!

2.样式表的优先级

优先级规则: 行内样式 > 内部样式 = 外部样式
(内部样式、外部样式,这二者的优先级相同,且后面的会覆盖前面的)

3. CSS语法规范

CSS 语法规范由两部分构成:
选择器:找到要添加样式的元素。
声明块:设置具体的样式,格式为: 属性名: 属性值;
例:h1{color:white;
font-size:30px
}

二、CSS选择器

1.CSS基本选择器

1.通配选择器

(1)作用:可以选中所有的 HTML 元素。

(2)举例:

* {

color: orange;

font-size: 40px;

}

2. 元素选择器

作用:为页面中 某种元素 统一设置样式。
举例:
h1 {
color: red;
font-size: 40px;
}

3. 类选择器

(1)作用:根据元素的 class 值,来选中某些元素
(2)举例:
/* 选中所有class值为speak的元素 */
.speak
{
color: red;
}
注意:
1. class 值,是我们自定义的,按照标准:不要使用纯数字、不要使用中文、尽量使用
英文与数字的组合,若由多个单词组成,使用 - 做连接。
2.一个元素不能写多个 class 属性。
3.一个元素的 class 属性,能写多个值,要用空格隔开。
(例子:<h1 class="speak big">你好啊</h1> )

4 .ID选择器

作用:根据元素的 id 属性值,来 精准的选中 某个元素。
举例:
#earthy {
color: red;
font-size: 60px;
}
注意:
(1)id 属性值:尽量由字母、数字、下划线( _ )、短杠( - )组成,最好以字母开头、不要包含空
格、区分大小写。
(2)一个元素只能拥有一个 id 属性,多个元素的 id 属性值不能相同。
(3)一个元素可以同时拥有 id 和 class 属性。

2. CSS复合选择器

2.1交集选择器

作用:选中同时符合多个条件的元素。
举例:
/* 选中:类名为beauty的p元素 */
p.beauty {
color: blue;
}
/* 选中:类名包含rich和beauty的元素 */
.rich.beauty {
color: green;
}

2.2 并集选择器

作用:选中多个选择器对应的元素
举例:
/* 选中id为peiqi,或类名为rich,或类名为beauty的元素 */
#peiqi,
.rich,
.beauty {
font-size: 40px;
background-color: skyblue;
width: 200px;
}

2.3 HTML元素间的关系

分为:①父元素、②子元素、③祖先元素、④后代元素、⑤兄弟元素。
1. 父元素:直接包裹某个元素的元素,就是该元素的父元素。
2. 子元素:被父元素直接包含的元素
3. 祖先元素:父亲的父亲......,一直往外找,都是祖先
4. 后代元素:儿子的儿子......,一直往里找,都是后代。
5. 兄弟元素:具有相同父元素的元素,互为兄弟元素。

2.4 后代选择器

作用:选中指定元素中,符合要求的后代元素。
(选择器之间,用空格隔开,空格可以理解为:" xxx 中的",其实就是后代的意思。)
举例:
/* 选中ul中的所有li */
ul li {
color: red;
}
/* 选中ul中所有li中的a */
ul li a {
color: orange;
}
/* 选中类名为subject元素中的所有li */
.subject li {
color: blue;
}
/* 选中类名为subject元素中的所有类名为front-end的li */
.subject li.front-end {
color: blue;
}

2.5 子代选择器

作用:选中指定元素中,符合要求的子元素。
举例:
/* div中的子代a元素 */
div>a {
color: red;
}
/* 类名为persons的元素中的子代a元素 */
.persons>a{
color: red;
}

2.6 兄弟选择器

 相邻兄弟选择器:
作用:选中指定元素后,符合条件的相邻兄弟元素。
(1)相邻兄弟选择器:
作用:选中指定元素后,符合条件的相邻兄弟元素。 (所谓相邻,就是紧挨着他的下一个)
举例:
/* 选中div后相邻的兄弟p元素 */
div+p {
color:red;
}
(2)通用兄弟选择器:
作用:选中指定元素后,符合条件的所有兄弟元素。
举例:
/* 选中div后的所有的兄弟p元素 */
div~p {
color:red;
}
(注意:两种兄弟选择器,选择的是下面的兄弟。)  

2.7 属性选择器

作用:选中属性值符合一定要求的元素。
3b7bb2f06a0f4f81859979904491d753.png
7ca7e1271f6e4ab0bd59a1d38593bb22.png

2.8 伪类选择器

作用:选中特殊状态的元素。
常用的伪类选择器:

(1)动态伪类:

1. :link 超链接 未被访问的状态。
2. :visited 超链接 访问过的状态。
3. :hover 鼠标 悬停在元素上的状态。
4. :active 元素 激活的状态。
5. :focus 获取焦点的元素。

(2)结构伪类

1. :first-child 所有兄弟元素中的 第一个
2. :last-child 所有兄弟元素中的 最后一个
3. :nth-child(n) 所有兄弟元素中的 n
4. :first-of-type 所有 同类型兄弟元素中的 第一个
5. :last-of-type 所有 同类型兄弟元素中的 最后一个
6. :nth-of-type(n) 所有 同类型兄弟元素中的 n

(3)否定伪类:

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

(4)UI伪类:

1. :checked 被选中的复选框或单选按钮。
2. :enable 可用的表单元素(没有 disabled 属性)。
3. :disabled 不可用的表单元素(有 disabled 属性)

2.9 伪元素选择器

作用:选中元素中的一些特殊位置。
常用伪元素:
::first-letter 选中元素中的 第一个文字
::first-line 选中元素中的 第一行文字
::selection 选中 被鼠标选中的内容。
::placeholder 选中输入框的 提示文字
::before 在元素 最开始的位置,创建一个子元素(必须用 content 属性指定内容)。
::after 在元素 最后的位置,创建一个子元素(必须用 content 属性指定内容)

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

通过 不同的选择器,选中 相同的元素 ,并且为 相同的样式名设置 不同的值时,就发生了样式的冲突, 到底应用哪个样式,此时就需要看 优先级了。
简单描述: 行内样式 > ID选择器 > 类选择器 > 元素选择器 > 通配选择器
复杂描述:看权重(鼠标悬浮看)
特殊规则:
1. 行内样式权重大于所有选择器。
2. !important 的权重,大于行内样式,大于所有选择器,权重最高!

三、CSS三大特性

1. 层叠性

概念:如果发生了样式冲突,那就会根据一定的规则(选择器优先级),进行样式的层叠(覆
盖)。

2. 继承性

概念:元素会自动拥有其父元素、或其祖先元素上所设置的某些样式。
规则:优先继承 离得近

3. 优先级

简单: !important > 行内样式 > ID 选择器 > 类选择器 > 元素选择器 > * > 继承的样
式。
详细:需要计算权重

四、CSS常用属性

1.CSS字体属性

1.1 字体大小

属性名: font-size
作用:控制字体的大小。

举例:

div {

font-size: 40px;
}

1.2 字体族

属性名: font-family
作用:控制字体类型。

举例:

div {
font-family: "STCaiyun","Microsoft YaHei",sans-serif
}
注意:
可以设置多个字体,按照从左到右的顺序逐个查找,找到就用,没有找到就使用后面
的,且通常在最后写上 serif (衬线字体)或 sans-serif (非衬线字体)

1.3 字体风格

属性名: font-styl
作用:控制字体是否为斜体。
常用值:
1. normal :正常(默认值)
2. italic :斜体(使用字体自带的斜体效果)
3. oblique :斜体(强制倾斜产生的斜体效果)
实现斜体时,更推荐使用 italic 。

1.4 字体粗细

属性名: font-weight
作用:控制字体的粗细。
常用值:
1. lighter :细
2. normal : 正常
3. bold :粗
数值:
1. 100~1000 且无单位,数值越大,字体越粗
2. 100~300 等同于 lighter , 400~500 等同于 normal , 600 及以上等同于 bold 。

1.5 字体复合写法

属性名: font 
作用:将上述所有字体相关的属性复合在一起编写。

2. CSS文本属性

2.1 文本颜色

属性名: color
作用:控制文字的颜色。
举例:
div {
color: rgb(112,45,78);
}

2.2 文本间距

字母间距: letter-spacing
单词间距: word-spacing (通过空格识别词)
属性值为像素( px ),正值让间距增大,负值让间距缩小。

2.3 文本修饰

属性名: text-decoration
作用:控制文本的各种装饰线。
可选值:
1. none : 无装饰线(常用)
2. underline :下划线(常用)
3. overline : 上划线
4. line-through : 删除线
可搭配如下值使用:
1. dotted :虚线
2. wavy :波浪线
3. 也可以指定颜色
举例:
div {
color: rgb(112,45,78);
}
a {
text-decoration: none;
}

2.4 文本缩进

属性名: text-indent 
作用:控制文本首字母的缩进。
举例:
div {
text-indent:40px;
}

2.5 文本对齐_水平

属性名: text-align 
作用:控制文本的水平对齐方式。
常用值:
1. left :左对齐(默认值)
2. right :右对齐
3. center :居中对齐

2.6 行高

属性名: line-height
作用:控制一行文字的高度。
可选值:
1. normal :由浏览器根据文字大小决定的一个默认值。
2. 像素( px )。
3. 数字:参考自身 font-size 的倍数(很常用)。
4. 百分比:参考自身 font-size 的百分比

2.7 文本对齐_垂直

1. 顶部:无需任何属性,在垂直方向上,默认就是顶部对齐。
2. 居中:对于单行文字,让 height = line-height 即可。

2.8vertical-align

属性名: vertical-align 
作用:用于指定同一行元素之间,或表格单元格内文字的垂直对齐方式。
常用值:
1. baseline (默认值):使元素的基线与父元素的基线对齐。
2. top :使元素的顶部与其所在行的顶部对齐。
3. middle :使元素的中部与父元素的基线加上父元素字母 x 的一半对齐。
4. bottom :使元素的底部与其所在行的底部对齐。
特别注意: vertical-align 不能控制块元素

3. CSS列表属性

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

4. CSS表格属性

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

712340fc3dfb49d4b2b8cdaa2078d1cd.png

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

60764a8061204b1eae0df7af3987495a.png

5. CSS背景属性

1e4d69db385449ad97da0687fe335a72.png

6. CSS鼠标属性

属性名:cursor
作用:设置鼠标光标的样式
常用值:
pointer :小手
move :移动图标
text :文字选择器
crosshair :十字架
wait :等待
help :帮助
/* 自定义鼠标光标 */
cursor: url("./arrow.png"),pointer;

五、CSS盒子模型

1.总结各元素的显示模式

88fd869f148a46f6a508888d9d6304ff.png

2.修改元素的显示模式

通过 CSS 中的 display 属性可以修改元素的默认显示模式
a0ae50525c9d48b7ae8455c4b4d37cbe.png

3. 盒子模型的组成

CSS 会把所有的 HTML 元素都看成一个 盒子,所有的样式也都是基于这个盒子。
1. margin (外边距): 盒子与外界的距离。
2. border (边框): 盒子的边框。
3. padding (内边距): 紧贴内容的补白区域。
4. content (内容):元素中的文本或后代元素都是它的内容。
9307581cbd8a4d3e91116878af38496e.png

4. 盒子内容区(content

36c843acc97e4c099a7d9892ed6db3bf.png

5. 盒子内边距(padding

785160c92a2549edb0de24231ca22f82.png

padding 复合属性的使用规则:
1. padding: 10px; 四个方向内边距都是 10px 。
2. padding: 10px 20px; 上下 10px ,左右 20px 。(上下、左右)
3. padding: 10px 20px 30px 40px; 上 10px ,右 20px ,下 30px ,左 40px 。(上、右、
下、左)

6. 盒子边框(border

ecc9e2564d9e495ab338337a4cadbec5.png

7. 盒子外边距_margin

876bf11def3144bfb003f68562132216.png

8.margin 塌陷问题

什么是 margin 塌陷?
第一个子元素的 margin 会作用在父元素上,最后一个子元素的 margin 会作用在父元素上。
解决方案:给父元素设置 css 样式 overflow:hidden

9.处理内容溢出

4e4aeb07764b4542bf0e2a8df754d53d.png

10. 隐藏元素的方式

方式一: visibility 属性
visibility 属性默认值是 show ,如果设置为 hidden ,元素会隐藏。
元素看不见了,还占有原来的位置(元素的大小依然保持)。
方式二: display 属性
设置 display:none ,就可以让元素隐藏。
彻底地隐藏,不但看不见,也不占用任何位置,没有大小宽高。
小贴士:优先级: 元素的默认样式 > 继承的样式,所以如果要重置元素的默认样式,选择器一定要直接选择器到该元素。

11. 布局小技巧

1. 行内元素、行内块元素,可以被父元素当做文本处理。
2. 如何让子元素,在父亲中 水平居中
若子元素为 块元素,给父元素加上: margin:0 auto; 。
若子元素为 行内元素行内块元素,给父元素加上: text-align:center 。
3. 如何让子元素,在父亲中 垂直居中
若子元素为 块元素,给子元素加上: margin-top(自己算)
4.若子元素为 行内元素行内块元素
让父元素的 height = line-height

12. 元素之间的空白问题

产生的原因:
行内元素、行内块元素,彼此之间的换行会被浏览器解析为一个空白字符。
解决方案:给父元素设置 font-size:0 ,再给需要显示文字的元素,单独设置字体大小。

六、浮动

1.元素浮动后的特点

1. 脱离文档流。
2. 不管浮动前是什么元素,浮动后:默认宽与高都是被内容撑开,而且可以设置宽高。
3. 不会独占一行,可以与其他元素共用一行。
4. 不会 margin 合并,也不会 margin 塌陷,能够完美的设置四个方向的 margin 和 padding 。
5. 不会像行内块一样被当做文本处理(没有行内块的空白问题)。

2.浮动相关属性

eec11b64415542d9978d994b5af3da60.png

3.解决浮动产生的影响(清除浮动)

给浮动元素的父元素,设置伪元素,通过伪元素清除浮动

.parent::after {
content: " ";
display: block;
clear:both;
}
(布局中的一个原则:设置浮动的时候,兄弟元素要么全都浮动,要么全都不浮动。)

七、定位

1. 相对定位

(相对定位的特点: 不会脱离文档流)

1.1 如何设置相对定位?

给元素设置 position:relative 即可实现相对定位。
可以使用 left 、 right 、 top 、 bottom 四个属性调整位置。

1.2 相对定位的参考点在哪里?

相对自己原来位置

注意:绝大多数情况下,相对定位,会与绝对定位配合使用

2. 绝对定位

2.1 如何设置绝对定位?

给元素设置 position: absolute 即可实现绝对定位。
可以使用 left 、 right 、 top 、 bottom 四个属性调整位置。

2.2绝对定位元素的特点:

1. 脱离文档流,会对后面的兄弟元素、父元素有影响。
2. 绝对定位、浮动不能同时设置,如果同时设置,浮动失效,以定位为主。
3. 无论是什么元素(行内、行内块、块级)设置为绝对定位之后,都变成了定位元素。

2.3绝对定位的参考点在哪里?

参考它的 包含块
什么是包含块?
 对于脱离文档流的元素:包含块是第一个拥有定位属性的祖先元素(如果所有祖先都
没定位,那包含块就是整个页面)

3. 固定定位

3.1 如何设置为固定定位?

给元素设置 position: fixed 即可实现固定定位。
可以使用 left 、 right 、 top 、 bottom 四个属性调整位置。

3.2 固定定位的参考点在哪里?

参考它的 视口
什么是视口?—— 对于 PC 浏览器来说,视口就是我们看网页的那扇“窗户”

3.3 固定定位元素的特点

1. 脱离文档流,会对后面的兄弟元素、父元素有影响。
2. 固定定位和浮动不能同时设置,如果同时设置,浮动失效,以固定定位为主
3. 无论是什么元素(行内、行内块、块级)设置为固定定位之后,都变成了定位元素

4. 粘性定位

4.1 如何设置为粘性定位?

给元素设置 position:sticky 即可实现粘性定位。
可以使用 left 、 right 、 top 、 bottom 四个属性调整位置,不过最常用的是 top 值。

4.2 粘性定位的参考点在哪里?

离它最近的一个拥有“滚动机制”的祖先元素,即便这个祖先不是最近的真实可滚动祖先。

4.3 粘性定位元素的特点

(1)不会脱离文档流,它是一种专门用于窗口滚动时的新的定位方式。
(2)最常用的值是 top 值。

八、布局

1.版心

在 PC 端网页中,一般都会有一个固定宽度且水平居中的盒子,来显示网页的主要内容,这是网页 的版心

版心的宽度一般是 960 ~ 1200 像素之间。
版心可以是一个,也可以是多

2. 常用布局名词

ad35bd7189c042358404e890d1ec29cc.png

3. 重置默认样式

方案1: reset.css
选择到具有默认样式的元素,清空其默认的样式。
经过 reset 后的网页,好似“一张白纸”,开发人员可根据设计稿,精细的去添加具体的样式。
方案2: Normalize.css
Normalize.css 是一种最新方案,它在清除默认样式的基础上,保留了一些有价值的默认样式。
官网地址: http://necolas.github.io/normalize.css/
备注: Normalize.css 的重置,和 reset.css 相比,更加的温和,开发时可根据实际情况进行
选择。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值