CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)

1. CSS 简介

CSS 的主要使用场景就是美化网页,布局页面的

1.1 HTML 的局限性

说起 HTML ,他只关注内容的语义。比如

表明这是一个大标题,

表明这是一个段落, 表明这有一个图片, 表示此处有链接。

虽然 HTML 可以做简单的样式,但是带来的是无尽的臃肿和繁琐

1.2 CSS-网页的美容师

CSS层叠样式表Cascading Style Sheets)的简称

有时我们也称之为 CSS 样式表或级联样式表

CSS 也是一种标记语言

CSS主要用于设置 HTML 页面中的文本内容(字体,大小,对齐方式等)、图片的外形(宽高、边框样式、边距等)以及版面的布局和外观显示样式

CSS 让我们的网页更加丰富多彩,布局更加灵活自如

简单理解:CSS 可以美化 HTML,让 HTML 更漂亮,让页面布局更简单

总结:

1. HTML 主要做结构,显示元素内容

2. CSS 美化 HTML,布局网页

3. CSS 最大价值:由 HTML 专注去做结构呈现,样式交给 CSS,即结构(HTML)与样式(CSS)相分离。

1.3 CSS 语法规范

使用 HTML 时,需要遵从一定的规范,CSS 也是如此,要想熟练地使用 CSS 对网页进行修饰,首先需要了解 CSS 样式规则

CSS 规则由两个主要的部分构成:选择器以及一条或多条声明

CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第1张图片

  •  选择器是用于指定 CSS 样式的 HTML 标签,花括号内是对该对象设置的具体样式
  •  属性和属性值以“键值对”的形式出现
  •  属性是对指定的对象设置的样式属性,例如字体大小,文本颜色等
  •  属性和属性值之间用英文“ : ”分开
  •  多个“键值对”之间用英文“ ; ”进行区分

1.4 CSS 代码风格

以下代码书写风格不是强制规范,而是符合实际开发书写方式

1. 样式格式书写

① 紧凑格式

h3 { color: deeppink;font-size: 20px;}

② 展开格式

h3 {
    color: pink;
    font-size: 20px;
}

哪个看的舒服一目了然吧

2. 样式大小写

h3 {
    color: pink;
}
H3 {
    COLOR: PINK;
}

建议都使用小写,特殊情况除外

3. 空格规范

h3 {
    color: pink;
}

① 属性值前面,冒号后面,保留一个空格

② 选择器(标签)和大括号中间保留空格

2. CSS 基础选择器

2.1 CSS 选择器的作用

选择器(选择符)就是根据不同需求把不同的标签选出来这就是选择器的作用

简答来说,就是选择标签用的

CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第2张图片

以上 CSS 做了两件事:

1. 找到所有 h1 标签,选择器(选对人)

2. 设置这些标签的样式,比如颜色为红色(做对事)

2.2 选择器分类

选择器分为基础选择器和复合选择器两个大类,我们这里先讲解一下基础选择器

  • 基础选择器是由单个选择器组成
  • 基础选择器又包括:标签选择器,类选择器,id选择器和通配符选择器

2.3 标签选择器

标签选择器(元素选择器)是指用 HTML 标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的 CSS 样式

语法

标签名{

        属性1:属性值1;

        属性2:属性值2;

        属性3:属性值3;

        ...

}

作用

标签选择器可以把某一类标签全部选择出来,比如所有的

标签和所有的 标签

优点

能快速为页面中同类型的标签统一设置样式

缺点

不能设计差异化样式,只能选择全部的当前标签

2.4 类选择器

如果想要差异化选择不同的标签,单独选一个或几个标签,可以使用类选择器

类选择器在 HTML 中以 class 属性表示,在 CSS 中,类选择器以一个点“.”号表示

语法

.类名 {

        属性1: 属性值1;

        ...

}

.red{
    color: red;
}

结构需要用 class 属性来调用 class 类的意思

变红色

注意

① 类选择器使用“.”*(英文点号)进行标识,后面紧跟类名(自定义,我们自己命名的)

② 可以理解为给这个标签起了一个名字,来表示

③ 长名称或词组可以使用中横线来为选择器命名

④ 不要使用纯数字、中文等命名,尽量使用英文字母来表示

⑤ 命名要有意义,尽量使别人一眼就知道这个类名的目的

案例

利用类选择器画三个盒子




    
    
    
    利用类选择器画三个盒子
    


    

有点意思

这是红色
这是绿色
这又是红色

CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第3张图片

2.4 类选择器-多类名

我们可以给一个标签指定多个类名,从而达到更多的选择目的。这些类名都可以选出这个标签

简单说就是一个标签有多个名字

1. 多类名使用方式

亚瑟

① 在标签 class 属性中写 多个类名

② 多个类名中间必须用空格分开

③ 这个标签就可以分别具有这些类名的样式

2. 多类名开发中使用场景

① 可以把一些标签元素相同的样式(共同的部分)放到一个类里面

② 这些标签都可以调用这个公共的类,然后再调用自己独有的类

③ 从而节省 CSS 代码,统一修改也非常方便

  • 各个类名中间用空格隔开
  • 简单理解:就是给某个标签添加了多个类,或者这个标签有多个名字
  • 这个标签就可以分别具有这些类名的样式
  • 从而节省 CSS 代码,统一修改也非常方便
  • 多类名选择器在后期布局比较复杂的情况下,还是较多使用的

2.5 id 选择器

id 选择器可以为标有特定 id 的 HTML 元素指定特定的样式

HTML 元素以 id 属性来设置 id 选择器,CSS 中 id 选择器以 “#” 来定义

语法

#id名{
    属性1:属性值1;
    ...
}

例如,将 id 为 nav 元素中的内容设置为红色

#nav{
    color:red;
}

id 选择器和类选择器的区别

  1.  类选择器(class)像是人名,一个人可以有多个名字,一个名字也可以被多个人使用
  2.  id 选择器像是身份证号码,每个人独一无二,不能重复
  3.  id 选择器和类选择器最大的不同在于使用次数上
  4.  类选择器在修改样式中用的最多,id 选择器一般用于页面唯一性的元素经常和 JS 搭配使用

2.6 通配符选择器

在 CSS 中,通配符选择器使用 “*” 定义,它表示选取页面中所有元素(标签)。

语法

*{
    属性1:属性值1;
    ...
}
  • 通配符选择器不需要调用,自动就给所有的元素使用样式
  • 特殊情况才使用,后面讲解使用场景(以下是清楚所有的元素标签的内外边距)
*{
    margin:0;
    padding:0;
}

2.7 基础选择器总结

CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第4张图片

  •  每个基础选择器都有使用场景,都需要掌握
  •  如果是修改样式,类选择器是使用最多的

3. CSS 字体属性

CSS Fonts (字体)属性用于定义字体系列、大小、粗细和文本样式(如斜体)。

3.1 字体系列

CSS 使用 font-family 属性定义文本的字体系列

p { font-family:"微软雅黑";}
div (font-family:Arial,"Microsoft Yahei","微软雅黑";)
  • 各种字体之间必须使用英文状态下的逗号隔开
  • 一般情况下,如果有空隔开的多个单词组成的字体,加引号
  • 尽量使用系统默认自带字体,保证在任何用户的浏览器中都能正确显示
  • 最常见的几个字体:body{font-family:'Microsoft YaHei','tahoma,arial','Hiragino Sans GB';}

3.2 字体大小

CSS 使用 font-size 属性定义字体大小

p {
    font-size: 20px;
}
  • px(像素)大小是我们网页的最常用的单位
  • 谷歌浏览器默认的文字大小为16px
  • 不同浏览器可能默认显示的字号大小不一致,我们尽量给一个明确值大小,不要默认大小
  • 可以给 body 指定整个页面文字的大小

3.3 字体粗细

CSS 使用 font-weight 属性设置文本字体的粗细

p {
    font-weight: bold;
}
属性值 描述
normal 默认值(不加粗)
bold

定义粗体(加粗的)

100-900 400等同于 normal,而 700 等同于 bold 注意这个数字后面没单位

学会让加粗标签(比如 h 和 strong 等)不加粗,或者其他标签加粗,实际开发时,更常用数字

3.4 文字样式

CSS 使用 font-style 属性设置文本的风格

p{
    font-style: normal;
}
属性值 作用
normal 默认值,浏览器会显示标准的字体样式 font-style: normal;
italic 浏览器会显示斜体的字体样式

注意:平时我们很少给文字加斜体,反而要给斜体标签(em,i)改为不倾斜字体。

3.5 字体复合属性

字体属性可以把以上文字样式综合来写,这样可以更节约代码:

body{
    font: font-style    font-weight    font-size/line-height    font-family;
}
  • 使用 font 属性时,必须按上面语法格式中的顺序书写,不能更换顺序,并且各个属性间用空格隔开
  • 不需要设置的属性可以省略,但必须保留 font-size 和 font-family 属性,否则 font 属性将不起作用

4. CSS 文本属性

CSS Text(文本)属性可定义文本的外观,比如文本的颜色,对齐文本,装饰文本,文本缩进,行间距等

4.1 文本颜色

color 属性用于定义文本的颜色

div{
    color: red;
}
表示 属性值
预定义的颜色值 red,green,blue,pink
十六进制 #FF0000,#FF6600,#29D794
RGB代码 rgb(255,0,0)或rgb(100%,0%,0%)

开发中最常用的是十六进制

4.2 对齐文本

text-align 属性用于设置元素内文本内容的水平对齐方式

div{
    text-align: center;
}
属性值 解释
left 左对齐(默认值)
right 右对齐
center 居中对齐

4.3 装饰文本

text-decorating 属性规定添加到文本的修饰,可以给文本添加下划线,删除线,上划线等。

div{
    text-decoration: underline;
}
属性值 描述
none 默认 没有装饰线
underline 下划线 链接 a 自带下划线
overline 上划线
line-through 删除线

4.4 文本缩进

text-indent 属性用来指定文本的第一行的缩进,通常是将段落的首行缩进

div{
    text-indent: 10px;
}

通过设置该属性,所有元素的第一行都可以缩进一个给定的长度,甚至该长度可以是负值

p{
    text-indent: 2em;
}

em 是一个相对单位,就是当前元素(font-size)1个文字的大小,如果当前元素没有设置大小,则会按照父元素的一个文字大小

4.5 行间距

line-height 属性用于设置行间的距离(行高)。可以控制文字行与行之间的距离

p{
    line-height: 26px;
}

CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第5张图片

5. CSS 引入方式

5.1 CSS 的三种样式表

按照 CSS 样式书写的位置(或者引入的方式),CSS 样式表可以分为三大类:

1. 行内样式表(行内式)

2. 内部样式表(嵌入式)

3. 外部样式表(链接式)

5.2 行内样式表

行内样式表(内联样式表)是在元素标签内部的 style 属性中设定 CSS 样式适合于修改简单样式

青春不常在,抓紧谈恋爱
  • style 其实就是标签的属性

  • 在双引号中间,写法要符合 CSS 规范

  • 可以控制当前的标签设置样式

  • 由于书写繁琐,并且没有体现出结构与样式相分离的思想,所以不推荐大量使用,只有对当前元素添加简单样式的时候,可以考虑使用

  • 使用行内样式表设定 CSS,通常也被称为行内式引入

5.3 内部样式表

内部样式表(内嵌样式表)是写到 HTML 页面内部。是将所有的 CSS 代码抽取出来,单独放到一个

  • 手机 电话卡 电视 盒子 笔记本 平板 出行 穿戴 智能 路由器 健康 儿童 耳机 音响

    CSS 没有给我们提供文字垂直居中的代码。我们可以通过一个小技巧来实现。

    让文字的行高等于盒子的高度,就可以让文字在当前盒子内垂直居中。

    10. CSS 的背景

    通过 CSS 背景属性,可以给页面元素添加背景样式。

    背景属性可以设置背景颜色、背景图片、背景平铺、背景图片位置、背景图像固定等。

    10.1 背景颜色

    background-color 属性定义了元素的背景颜色。

    background-color:颜色值;
    

    一般情况下元素背景颜色默认值是 transparent(透明),我们也可以手动指定背景颜色为透明色

    10.2 背景图片

    background-image 属性描述了元素的背景图像。实际开发常见于 logo 或者一些装饰性的小图片或者是超大的背景图片,优点是非常便于控制位置。

    background-image : none | url (url)
    参数值 作用
    none 无背景图(默认的)
    url 使用绝对或相对地址指定背景图像

    10.3 背景平铺

    如果需要在 HTML 页面上对背景图像进行平铺,可以使用 background-repeat 属性

    background-repeat: repeat | no-repeat | repeat-x |repeat-y
    参数值 作用
    repeat 背景图像在纵向和横向上平铺(默认的)
    no-repeat 背景图像不平铺
    repeat-x 背景图像在横向上平铺
    repeat-y 背景图像在纵向上平铺

    10.4 背景图片位置

    利用 background-position 属性可以改变图片在背景中的位置

    background-position: x y;

    参数代表的意思是:x坐标和y坐标,可以使用方位名词或者精确单位

    参数值 说明
    length 百分数|由浮点数字和单位识别符组成的长度
    position top | center | bottom | left | center | right 方位名词

    1. 参数是方位名词

    • 如果指定的两个值都是方位名词,则两个值前后顺序无关,比如 left top 和 top left 效果一致
    • 如果只指定了一个方位名词,另一个值省略,则第二个值默认居中对齐

    2. 参数是精确单位

    • 如果参数值是精度坐标,那么第一个肯定是x坐标,第二个一定是y坐标
    • 如果只指定一个数值,那该数值一定是x坐标,另一个默认垂直居中

    3. 参数是混合单位

    • 如果指定的两个值是精确单位和方位名词混合使用,则第一个值是x坐标,第二个值是y坐标

    10.5 背景图像固定(背景附着)

    background-attachment 属性设置背景图像是否固定或者随着页面的其余部分滚动

    background-attachment 后期可以制作视差滚动的效果

    background-attachment : scroll | fixed
    参数 作用
    scroll 背景图像是随对象内容滚动
    fixed 背景图像固定

    10.6 背景复合写法

    为了简化背景属性的代码,我们可以将这些属性合并简写在同一个属性 background 中,从而节约代码量

    当使用简写属性时,没有特定的书写顺序,一般习惯约定顺序为:

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

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

    这是实际开发中,我们更提倡的写法

    10.7 背景色半透明

    CSS3 为我们提供了背景颜色半透明的效果

    background rgba(0,0,0, 0.3);
    • 最后一个参数是 alpha 透明度,取值范围在 0~1 之间
    • 我们习惯把 0.3 的 0 省略掉,写为 background rgba(0,0,0,3);
    • 注意:背景半透明是指盒子背景半透明,盒子里面的内容不受影响
    • CSS3 新增属性,是 IE9 + 版本浏览器才支持的
    • 但是现在实际开发,我们不太关注兼容性写法了,可以放心使用
    • 最后一个参数是 alpha 透明度,取值范围在 0~1 之间

    案例:五彩导航

    练习价值:

    1. 链接属于行内元素,但是此时需要宽度高度,因此需要模式转换
    2. 里面文字需要水平居中和垂直居中,因此需要单行文字垂直居中的代码
    3. 链接里面需要设置背景图片,因此需要用到背景的相关属性设置
    4. 鼠标经过变化背景图片,因此需要用到链接伪类选择器

    制作效果

    鼠标移动到标题栏时 

    代码示例

    
    
    
        
        
        
        五彩导航
        
    
    
        
    
    

    11. CSS 的三大特性

    css 有三个非常重要的三个特性:层叠性,继承性,优先级。

    11.1 层叠性

    相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式。层叠性主要解决样式冲突的问题

    层叠性原则:

    • 样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式
    • 样式不冲突,不会层叠

    11.2 继承性

    现实中的继承:我们继承了父亲的姓

    CSS中的继承:子标签会继承父标签的某些样式,如文本颜色和字号,简单的理解就是:子承父业

    • 恰当地使用继承可以简化代码,降低 CSS 样式的复杂性
    • 子元素可以继承父元素的样式(text-,font-,line- 这些元素开头的可以继承,以及color)

    行高的继承性

    body {
        font:12px/1,5 Microsoft YaHei;
    }
    • 行高可以跟单位也可以不跟单位
    • 如果子元素没有设置行高,则会继承父元素的行高为1.5
    • 此时子元素的行高是:当前子元素的文字大小*1.5
    • body行高 1.5 这样写法最大的优势就是里面子元素可以根据自己文字大小自动调整行高

    11.3 优先级

    当同一个元素指定多个选择器,就会有优先级的产生

    • 选择器相同,则执行层叠性
    • 选择器不同,则根据选择器权重执行

    CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第7张图片

     优先级注意点:

    1. 权重是有4组数字组成,但是不会有进位
    2. 可以理解为类选择器永远大于元素选择器,id选择器永远大于类选择器以此类推
    3. 等级判断从左向右,如果某一位数值相同,则判断下一位数值
    4. 继承的权重是0,如果该元素没有直接选中,不管父亲权重多高,子元素得到的权重都是0

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

    • 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

    12. 盒子模型

    页面布局要学习三大核心,盒子模型,浮动和定位,学习好盒子模型能非常好的帮助我们布局页面

    12.1 看透网页布局的本质

    网页布局过程:

    1. 先准备好相关的网页元素,网页元素基本都是盒子 Box

    2. 利用 CSS 设置好盒子样式,然后摆放到相应位置

    3. 忘盒子里面装内容

    网页布局的核心本质:就是利用 CSS 摆盒子

    12.2 盒子模型 (Box Model)组成

    所谓 盒子模型:就是把 HTML 页面中的布局元素看作是一个矩形的盒子,也就是一个装内容的容器。CSS 盒子模型本质上是一个盒子,封装周围的 HTML 元素,它包括:边框,外边距,内边距和实际内容

    CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第8张图片

     12.3 边框(border)

    border 可以设置元素的边框,边框有三部分组成边框宽度(粗细)边框样式 边框颜色

    语法:

    border: border-width || border-style || border-color
    属性 作用
    border-width 定义边框粗细,单位是px
    border-style 边框的样式
    border-color 边框颜色
    
    
    
        
        
        
        Document
        
    
    
        
    
    

    CSS 边框属性允许你指定一个元素边框的样式和颜色

    边框简写:

    border: 1px solid red; 没有顺序

    边框分开写法:

    border-top: 1px solid red; /* 只设定上边框,其余同理 */

    课堂检测:给定一个 200*200 的盒子,设置上边框为红色,其余边框为蓝色(注意层叠性)

    
    
    
        
        
        
        Document
        
    
    
        

    12.4 表格的细线边框

    border-collapse 属性控制浏览器绘制表格边框的方式。它控制相邻单元格的边框。

    语法:

    border-collapse:collapse;
    • collapse 单词是合并的意思
    • border-collapse:collapse; 表示相邻边框合并在一起

    12.5 边框会影响盒子实际大小

    边框会额外增加盒子的实际大小。因此我们有两种方案解决。

    1. 测量盒子大小的时候,不量边框。

    2. 如果测量的时候包含了边框,则需要 width/height 减去边框宽度。

    12.6 内边距(padding)

    padding 属性用于设置内边距,即边距与内容之间的距离。

    属性 作用
    padding-left 左内边距
    padding-right 右内边距
    padding-top 上内边距
    padding-bottom 下内边距

    padding 属性(简写属性)可以有一到四个值。

    值的个数 表达意思
    padding:5px; 1个值,代表上下左右都有5像素内边距
    padding:5px 10px; 2个值,代表上下内边距是5像素,左右内边距是10像素
    padding:5px 10px 20px; 3个值,代表上内边距5像素
    padding:5px 10px 20px 30px; 4个值,上是5像素 右10像素,下20像素,左30像素 顺时针

    当我们给盒子指定 padding 值之后,发生了 2 件事情:

    1. 内容和边距有了距离,添加了内边距。

    2. padding 影响了盒子实际大小。

    也就是说,如果盒子已经有了宽度和高度,此时再指定内边框,会撑大盒子。

    解决方案:

    如果保证盒子跟效果图大小保持一致,则让 width/height 减去多出来的内边距大小即可。

    案例:新浪导航案例-padding影响盒子好处

    padding内边距可以撑开盒子,我们可以做非常巧妙的运用。

    因为每个导航栏里面的字数不一样多,我们可以不用给每个盒子宽度了,直接给padding最合适

    相关取值:

    1. 上边框为3像素,颜色为 #ff8500

    2. 下边框为1像素,颜色为 #edeef0

    3. 盒子高度为41像素,背景颜色为 #fcfcfc

    4. 文字颜色为 #4c4c4c

    
    
    
        
        
        
        新浪导航
        
    
    
        
    
    

    案例:小米导航案例修改-padding影响盒子大小计算

    padding内边距可以撑开盒子,有时候,也会让我们去修改宽度

    所以小米侧边栏这个案例,文字距离左侧的距离不应该用 text-indent 这样不准确

    实际开发的做法是给 padding 值,这样更加准确

    
    
    
        
        
        
        小米导航
        
    
    
        
    
    

    如果盒子本身没有指定 width/height 属性,则此时 padding 不会撑开盒子大小。

    12.7 外边距(margin)

    margin 属性用于设置外边距,即控制盒子和盒子之间的距离。

    属性 作用
    margin-left 左外边距
    margin-righ 右外边距
    margin-top 上外边距
    margin-bottom 下外边距

    margin 简写方式代表的意义跟 paddin 完全一致

    外边距可以让块级盒子水平居中,但是必须满足两个条件:

    1. 盒子必须指定了宽度(width)

    2. 盒子左右的外边距都设置为 auto

    .header { width: 960px; margin: 0 auto;}

    常见的写法,以下三种都可以:

    • margin-left: auto ; margin-right: auto ;
    • margin: auto;
    • margin: 0 auto;

    注意:以上方法是让块级元素水平居中,行内元素或者行内块元素水平居中给其父元素添加            text-align: center; 即可。

    12.8 外边距合并

    使用 margin 定义块元素的垂直外边距时,可能会出现外边距的合并。

    1.相邻块元素垂直外边距的合并

    当上下相邻的两个块元素(兄弟关系)相遇时,如果上面的元素有下外边距 margin-bottom,下面的元素有上外边距 margin-top,则他们之间的垂直间距不是 margin-bottom 与 margin-top 之间。取两个值中的较大者这种现象被称为相邻块元素垂直外边距的合并。

    解决方案:

    尽量只给一个盒子添加 margin 值。

    2. 嵌套块元素垂直外边距的塌陷

    对于两个嵌套关系(父子关系)的块元素,父元素有上外边距同时子元素也有上外边距,此时父元素会塌陷较大的外边距值。

    解决方案:

    1. 可以为父元素定义上边距

    2. 可以为父元素定义上内边距

    3. 可以为父元素添加 overflow:hidden

    还有其他方法,比如浮动、固定,绝对定位的盒子不会有塌陷问题,后面咱们再总结

    12.9 清楚内外边距

    网页元素很多都带有默认的内外边距,而且不同浏览器默认的也不一致。因此我们在布局前,首先要清楚下网页元素的内外边距

    * {
        padding:0;    /* 清楚内边距 */
        margin:0;    /* 清楚外边距 */
    }

    注意:行内元素为了照顾兼容性,尽量只设置左右内外边距,不要设置上下内外边距。但是转换为块级和行内块元素就可以了

    PS 基本操作

    • 文件→打开:可以打开我们要测量的图片
    • Ctrl + R:可以打开标尺,或者 视图→标尺
    • 右击标尺,把里面的单位改为像素
    • Ctrl + 加号(+)可以放大视图,Ctrl + 减号(-)可以缩小视图
    • 按住空格键,鼠标可以变成小手,拖动 PS 视图
    • 选区拖动,可以测量大小
    • Ctrl + D 可以取消选取,或者在旁边空白处点击一下也可以取消选区

    CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第9张图片

     综合案例 - 产品模块

    
    
    
        
        
        
        综合案例-产品模块
        
    
    
        

    快递牛,整体不错蓝牙可以说秒连。红米给力

    来自于 117384232 的评价

     效果图

    CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第10张图片

     Pink 老师总结

    1. 布局为啥用不同盒子,我只想用div?

    标签都是有语义的,合理的地方用合理的标签。比如产品标题 就用 j,大量文字段落就用 p

    2. 为啥用那么多类名?

    类名就是给每个盒子起了一个名字,可以更好的找到这个盒子,选取盒子更容易,后期维护也方便

    3. 到底用 margin 还是 padding?

    大部分情况两个可以混用,两者各有优缺点,但是根据实际情况,总是有更简单的方法实现

    4. 自己做没有思路?

    布局有很多种实现方式,大家可以开始先模仿Pink 老师的写法,然后再做出自己的风格

    最后大家一定多运用辅助工具,比如屏幕画笔,ps等等

    综合案例 - 快报模板

    
    
    
        
        
        
        快报模板
        
    
    
        
    
    

    13. 圆角边框(重点)

    在 CSS3 中,新增了圆角边框样式,这样我们的盒子就可以变圆角了。

    border-radius 属性用于设置元素的外边框圆角。

    语法:

    border-radius:length;

    radius 半径(圆的半径)原理:(椭)圆与边框的交集形成圆角效果

    • 参数值可以为数值百分比的形式
    • 如果是正方形,想要设置为一个圆,把数值修改为高度或者宽度的一半即可,或者直接写50%
    • 如果是个矩形,设置为高度的一半就可以做
    • 该属性是一个简写属性,可以跟四个值,分别代表左上角、右上角、右下角、左下角
    • 分开写:border-top-left-radius、border-top-right-radius、border-bottom-right-radius 和 border-bottom-left-radius

    14. 盒子阴影(重点)

    CSS3 中新增了盒子阴影,我们可以使用 box-shadow 属性为盒子添加阴影

    语法:

    box-shadow: h-shadow v-shadow blur spread color inset;
    描述
    h-shadow 必需,水平阴影的位置,允许负值
    v-shadow 必需,垂直阴影的位置,允许负值
    blur 可选,模糊距离
    spread 可选,阴影的尺寸
    color 可选,阴影的颜色,请参阅 CSS 颜色值
    inset 可选,将外部阴影(outset)改为内部阴影

    注意:

    1. 默认的是外阴影(outset),但是不可以写这个单词,否则导致阴影无效

    2.盒子阴影不占用空间,不会影响其他盒子排列

    15. 文字阴影

    在 CSS3 中,我们可以使用 text-shadow 属性将阴影应用于文本。

    语法:

    text-shadow: h-shadow v-shadow blur color;
    描述
    h-shadow 必需,水平阴影的位置,允许负值
    v-shadow 必需,垂直阴影的位置,允许负值
    blur 可选,模糊的距离
    color 可选,阴影的颜色。参阅 CSS 颜色值

    16. 浮动(float)

    16.1 传统网页布局的三种方式

    网页布局的本质——用 CSS 来摆放盒子,把盒子摆放到相应的位置。

    CSS 提供了三种传统布局方式简单说,就是盒子如何进行行排列顺序:

    • 普通流(标准流)
    • 浮动
    • 定位

    16.2 标准流(普通流/文档流)

    所谓的标准流:就是标签按照规定好默认方式排序

    1. 块级元素会独占一行,从上向下顺序排列。

    常用元素:div、hr、p、h1-h6、ul、ol、dl、form、table

    2. 行内元素会按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行。

    常用元素:span、a、i、em 等

    以上都是标准布局,我们前面学习的就是标准流,标准流就是最基本的布局方式

    这三种布局方式都是用来摆放盒子的,盒子摆放到合适位置,布局自然就完成了。

    注意:实际开发中,一个页面基本都包含了这三种布局方式,(后面移动端学习新的布局方式)。

    16.3 为什么需要浮动?

    1. 如何让多个块级盒子(div)水平排列成一行?

    比较难,虽然转换为行内块元素可以实现一行显示,但是他们之间会有大的空白缝隙,很难控制。

    总结:有很多的布局效果,标准流没有办法完成,此时就可以利用浮动完成布局,因为浮动可以改变元素标签默认的排列方式。

    浮动最典型的应用:可以让多个块级元素一行内排列显示。

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

    16.4 什么是浮动?

    float 属性用于创建浮动框,将其移动到一边,直到左或右边缘触及包含块或另一个浮动框的边缘

    语法:

    选择器{ float: 属性值; }
    属性值 描述
    none 元素不浮动(默认值)
    left 元素向左浮动
    right 元素向右浮动

    16.5 浮动特性(重难点)

    加了浮动之后的元素,会具有很多特性,需要我们掌握的。

    1. 浮动元素会脱离标准流(脱标)
    2. 浮动的元素会一行内显示并且元素顶部对齐
    3. 浮动的元素会具有行内块元素的特性。

    设置了浮动(float)的元素最重要特性:

    1. 脱离标准普通流的控制(浮)移动到指定位置(动),(俗称脱标
    2. 浮动的盒子不再保留原先的位置

    2. 如果多个盒子都设置了浮动,则它们会按照属性值一行内显示并且顶端对齐排列

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

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

    任何元素都可以浮动,不管原先是什么模式的元素,添加浮动之后具有行内块元素相似的特性。

    • 如果块级盒子没有设置宽度,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定
    • 浮动的盒子中间是没有缝隙的,是紧挨着一起的
    • 行内元素同理

    16.6 浮动元素经常和标准父级搭配使用

    为了约束浮动元素位置,我们网页布局一般采取的策略是:

    先用标准流的父元素排列上下位置,在内部子元素采取浮动排列左右位置,符合网页布局第一准则

    CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第11张图片

     案例:小米布局案例

    网页布局第二准则:先设置盒子大小,之后设置盒子的位置

    CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第12张图片

     代码示例

    
    
    
        
        
        
        浮动元素搭配标准流父盒子1
        
    
    
        
    左侧
    右侧

    CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第13张图片

     代码示例

    
    
    
        
        
        
        浮动元素搭配标准流父盒子2
        
    
    
        
    • 1
    • 2
    • 3
    • 4

    CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第14张图片

     代码示例

    
    
    
        
        
        
        浮动布局练习3
        
    
    
        
    左青龙
    1
    2
    3
    4
    5
    6
    7
    8

    17 常见网页布局

    17.1 常见网页布局

    CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第15张图片


     CSS 学习笔记总结(借鉴黑马程序员pink老师前端入门)_第16张图片

     17.2 浮动布局注意点

    1. 浮动和标准流的父盒子搭配

    先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置

    2. 一个元素浮动了,理论上其余的兄弟元素也要浮动

    一个盒子里面有多个子盒子,如果其中一个盒子浮动了,那么其他兄弟也应该浮动,以防出现问题

    浮动的盒子只会影响浮动盒子后面的标准流,不会影响前面的标准流

    18. 清除浮动

    18.1 为什么需要清除浮动?

    由于父级盒子很多情况下,不方便给高度,但是子盒子浮动又不占有位置,最后父级盒子高度为0时,就会影响下面的标准流盒子。

    • 由于浮动元素不再占用原文档流的位置,所以它会对后面的元素排版产生影

    18.2 清除浮动本质

    • 清除浮动的本质是清除浮动元素造成的影响
    • 如果父盒子本身有高度,则不需要清除浮动
    • 清除浮动之后,父级就会根据浮动的子盒子自动检测高度,父级有了高度,就不会影响下面的标准流了

    18.3 清除浮动

    语法:

    选择器{clear:属性值;}
    属性值 描述
    left 不允许左侧有浮动元素(清除左侧浮动的影响)
    right 不允许右侧有浮动元素(清除右侧浮动的影响)
    both 同时清除左右两侧浮动的影响

    我们实际工作中,几乎只用clear:both;

    清除浮动的策略是:闭合浮动

    1. 额外标签法也称为隔墙法,是 W3C 推荐的做法。

    2. 父级添加 overflow 属性

    3. 父级添加 after 属性

    4. 父级添加双伪元素

    额外标签法

    额外标签法也称为隔墙法,是 W3C 推荐的做法。

    额外标签法会在浮动元素末尾添加一个空的标签。例如

    ,或其他标签

    • 优点:通俗易懂,书写方便
    • 缺点:添加许多无意义的标签,结构化较差

    注意:要求这个新的空标签必须是块级元素

    总结:

    1. 清除浮动本质是?

    清除浮动的本质是清除浮动元素脱离标准流造成的影响

    2. 清除浮动策略是?

    闭合浮动,只让浮动在父盒子内部影响,不影响父盒子外面的其他盒子

    3. 额外标签法

    隔墙法,就是在最后一个浮动的子元素后面添加一个额外标签,添加清除浮动样式

    实际工作可能会遇到,但是不常用

    父级添加 overflow

    可以给父级添加 overflow 属性,将其属性设置为 hidden,auto或scroll

    子不教,父之过,注意是给父元素添加代码

    • 优点:代码简洁
    • 缺点:无法显示溢出的部分

    持续更新中~

你可能感兴趣的:(前端学习笔记,前端,css,css3)