前端与CSS(上)|青训营笔记

120 阅读13分钟

前端与CSS(上)|青训营笔记

CSS.webp

这是我参与「第四届青训营 」笔记创作活动的的第二天

一.CSS是什么?

CSS(Cascading Style Sheets,层叠演示表)是用来给HTML标签添加样式的语言 用来定义页面元素的样式、设置字体颜色、设置位置大小添加动画效果

二.CSS是如何工作的?

捕获.PNG

三.选择器Selector

找出页面中的元素,以便给他们设置样式并使用多种方式选择元素、按照标签名类名或id、按照属性、按照DOM树中的位置

基础选择器

由单个选择器组成的基础选择器又包括:标签选择器、类选择器、id选择器、通配符选择器

1. 标签选择器

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

2. 类选择器

差异化选择不同的标签,单独选一个或者多个标签可以使用类选择器

类选择器-多类名:
                一个标签可以有多个类命
                使用方式:
                    <div class="red font20">多类名</div>
                    (1).在标签class属性中写多个类名
                    (2).多个类命中间必须用空格分开

3. id选择器

区别:只能调用一次,别人切勿使用(一次性)

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

HTML元素以ID属性来设置id选择器,CSS中的id选择器以"#"来定义

语法:
                    #id名{
                        属性1;
                        属性2;
                    }

4. 通配符选择器

在CSS中,通配符选择器使用"*",他表示选取页面中所有的元素(标签)

语法:
                        *{
                            属性
                        }

复合选择器

在CSS中,可以根据选择器的类型分为基础选择器和复合选择器,复合选择器是建立在基础选择器之上,对基本选择器进行组合形成的

  • 复合选择器可以更准确的、更高效的选择目标元素(标签)
  • 复合选择器是由两个或者多个基础选择器,通过不同的方式组合而成的
  • 常用的复合选择器包括:后代选择器、子选择器、并集选择器、伪类选择器等等

1. 后代选择器(重要)

后代选择器又称为包含选择器,可以选择父类元素里的子元素

        语法:  
            元素1   元素2{样式声明}
            上述语法表示选择元素1里面的所有元素2(后代元素)

        例如
        ul  li {样式声明}
        元素1和元素2是分开的 中间用空格隔开
        元素1是父级,元素2是子级,最终选择的是元素2
        

2. 子选择器(重要)

子元素选择器只能选择作为某元素

        元素1>元素2{样式声明}
        例如:
            div>p
        元素1和元素2中间用大于号隔开
        元素1是父级,元素2是子级,最终选择的是元素2
        元素2必须是亲儿子,其孙子都不归他管    

3. 并集选择器(重要)

并集选择器可以选择多组标签,同时为他们定义样式,任何形式都可以做并集选择器,逗号分隔

4. 伪类选择器

伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第一个,第n个元素。

伪类选择器书写最大的特点是用冒号(:)表示,比如:hover、:first-child

链接伪类选择器描述
a:link选择所有未被访问的链接
a:visited选择所有已被访问的链接
a:hover选择鼠标指针位于其上的链接
a:avtive选择活动链接(鼠标按下为弹起的链接)
        注意书写顺序:为了确保生效按照:link-visited-hover-active

5. :focus伪类选择器

:focus伪类选择器用于选取获得焦点的表单元素

焦点就是光标,一般情况下类表单元素才能获取,因此这个选择器也主要针对于表单元素来说

input:focus{
                background-colo:yellow;
            }

四.组合(Combinators)

  名称	  语法	      说明		      示例
直接组合	   AB	 满足A同时满足B		  input:focus
后代组合	   AB	 选中B,如果他是A的子孙	      nav a
亲子组合	   A>B	 选中B,如果他是A的子元素	    section>p
兄弟选择器  A~B	 选中B,如果他在A后且和A同级     h2~p
相邻选择器  A+B	 选中B,如果它紧跟在A后面	       h2+p

五.通用字体族

  • Serif衬线体(Georgia、宋体)
  • Sans-Serif无线体(Arial、Helvetica、黑体、微软雅黑)
  • Cursive手写体(Caflisch Script、楷体)
  • Fantasy(Comic Sans MS,Papyrus)
  • Monospace 等宽字体(Consolas、Courier、中文字体)

1. 字体系列

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

            p{ font-famliy:"微软雅黑";}
            div{font-famliy:Arial,"microsoft Yahei","微软雅黑";}

各个字体之前需要用英文逗号隔开 ; 一般情况下,如果有空格隔开的多个单词组成的字体,加引导; 经量使用系统默认自带字体,保证在任何用户的浏览器中可以正确显示; 常见的几个字体:body{font-family:'microsoft Yahei',tahoma,Arial,'Hiragino Sans GB';}

2. 字体大小 css使用font-size属性定义定义字体大小

        p{
            font-size:20px;
        }
        

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

3. 文字粗细

CSS使用font-weight属性文字粗细; 列如:strong 加粗

4. 文字样式

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

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

5. 字体复合属性

body{
font:font-style font-weigth font-size/line-height font-family;
}

使用font属性时,必须按上面语法格式中的顺序书写,不能更换顺序。并且各个属性间空格隔开;不需要设置的属性可以省略(取默认值),但必须保留font-size和font-famliy属性,否则font属性将不起作用

字体属性总结

属性        表示        注意点
font-size   字号        我们通常用的单位是PX像素,一定要跟上单位
font-famliy 字体        实际工作中按照团队约定来写字体
font-weight 字体粗细    记住加粗是700或者不加粗是normal或者400记住数字不跟单位
font-style  字体样式    记住倾斜是italic 不倾斜是normal工作中常用normal
font        字体连写    1.字体连写是有顺序的 不能随意换位置。2.其中字号和字体必须同时出现

六.文本

1. 装饰文本

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

 div{
 text-decoration:underline;
}
属性值描述
none默认.没有下划线(最常用)
underline下划线。链接a自带下划线(常用)
overline上划线(几乎不用)
line-through删除线(不常用)

2. 文本缩进

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

  div{
        text-indent:10px;
     }
                可以设置负值

   p{
        text-indent:2em;
    }

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

3. 行间距 (文本缩进里面)

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

P{
   line-height:26px;
}

文本属性总结

 属性            表示        注意点
color           文本颜色    我们通常用 十六进制 比如而且是简写的#fff
text-align      文本对其    设定文字水平的方式
text-indent     文本缩进    用于段落首行缩进的2个字符 text-align:2em;
text-decoration 文本修饰    记住 添加下划线underline 取消下划线 none
line-height     行高        控制行于行之间的距离 

七.CSS的三种样式表

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

  • 行内样式表(行内式)
  • 内部样式表(嵌入式)
  • 外部样式表(链接式) 1. 内部样式表(内嵌样式表)

是写到html页面的内部,是将所有的CSS代码抽取出来,单独放到一个标签中

   <style>
             div{
                    color:red;
                    font-size:12px;
                }
            </style>

2. 行内样式表(使用较少)

内联样式表是在元素的标签内部的style属性中设置CSS样式,适用于修改简单的样式

div style="color:red;font-size:12px">青春常在</div>

style其实就是标签的属性在双引号中间,写法要求符合CSS规范可以控制当前的标签设置样式

3. 外部样式表

实际开发都是外部样式表,适用于比较多的情况,核心是样式单独写到CSS文件中,之后把CSS文件引入到HTML页面中使用

<link rel="stylesheet" href="CSS文件路径">
属性作用
rel定义当前文档与被链接文档之间的关系,在这里需要指定为"stylesheet".表明被链接的文档是一个样式表文件
href定义所链接外部样式表文件的URL,可以是相对路径,也可以是绝对路径

使用外部样式表设定CSS,通常也被称为外链式或链接式引入,这种方式是开发中常用的方式

CSS引入方式总结

    样式表          优点                    缺点            使用情况        控制范围
    行内样式表      书写方便,权重高          结构样式混写      较少          控制一个标签
    内部样式表      部分结构和样式的相分离    没有彻底分离      较多          控制一个页面
    外部样式表      完全实现结构和样式相分离   需要引入         最多          控制多个页面

八.Emmet语法(扩展)

    ul>li
    div>span
    $自增符号

九.CSS的元素显示模式和转换

CSS的元素显示模式

HTML元素一般分为块元素和行内元素两种类型

块元素特点

  1. 独占一行
  2. 高度,宽度,外边距以及内边距都可以控制
  3. 宽度默认是容器(父级宽度)的100%
  4. 是一个容器及盒子,里面可以放行内或者块级元素

注意:文字类的元素内不能使用块级元素

 例如:<p>、<h1>~<h6>

行类元素称为内联元素

行内元素: <a>,<strong>,<b>,<em>,<i>,<del>,<s>,<ins>,<u>,<span>

行类元素特点

  1. 相邻行内元素在一行上,一行可以显示多个

  2. 高,宽直接设置是无效的

  3. 默认宽度就是它本身内容的宽度

  4. 行内元素只能容纳文本或其他行内元素 注意:链接里面不能再放链接了

 特殊行内元素<a>里面可放块级元素,但是给<a>转换一下块级模式最安全

行内块元素的特点:

  1. 和相邻行内元素(行内块)在一行,但是他们之间会有空白缝隙。一行可以显示多个(行内块元素特点)

  2. 默认宽度就是它本身内容的宽度(行内元素特点)

  3. 高度,行高,外边距以及内边距都可以控制(块级元素特点)

     几个特殊标签<img/>,<input/>,<td>同时具有块元素和行元素的特点
     
    

元素显示模式总结:

    元素模式     元素排列                 设置样式                默认宽度                包含
    块级元素    一行只能放一个块级元素    可以设置宽度高度         容器的100%           容器级可以包含任何标签
    行内元素    一行可以放多个行内元素    不可以直接设置宽度高度    它本身内容的宽度     容纳文本或其他行内元素
    行内块元素  一行放多个行块元素        可以设置宽度和高度        它本身内容的宽度

元素显示模式转换

特殊情况下,需要元素模式的转换,简单理解一个模式的元素需要另外一种模式的特性
比如想要增加链接<a>的触发范围。
  • 转换块元素:display:block;
  • 转换行内元素:dispaly:inline;
  • 转换为行内块元素:display:inlink-block;

十.CSS的背景

1. 背景演示background-color

一般情况下元素背景颜色默认值是transparent(透明的)

2. 背景图片background-image

background-image:none/url(图片地址);

3. 背景平铺

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

  • background-repeat:
  • repeat|背景图片在纵向和横向上平铺
  • no-repeat|背景图片不平铺
  • repeat-x|背景图象在横向上平铺
  • repeat-y|背景图图象在纵向上平

4. 背景图片位置

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

background-position:x y;

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

参数值说明
length百分数、有浮点数和单位标识符组成的长度值
positiontop、cent、bottom、left、right 方位名词

5. 参数

  1. 参数是方位名词

如果指定两个值都是方位名词,则两个值前后顺序无关,比如left top 和 top left 效果一致

如果只是指定了一个方位名词,另一个值省略,则第二个值默认居中对齐

  1. 参数是精确单位

如果参数值是精确坐标,那么第一个肯定是X坐标,第二个一定是Y坐标

如果只定义一个值另外一个就是垂直居中

  1. 参数是混合单位

一个精确单位加一个方位名词

补充 (背景复合型写法)

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

6. 背景图象固定(背景附着)

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

参数作用
scroll背景图象是随对象内容滚动
fixed背景图象固定

7. 背景颜色半透明(alpha透明度)**

background:rgba(0,0,0,0.3);

最后一个参数是alpha透明度,取值范围在0~1之间

注意:盒子背景色半透明

背景总结

 属性                     作用          值
background-color         背景颜色    预定义的颜色值/十六进制/RGB代码
background-image         背景图片    url(图片路径)
background-repeat        是否平铺    repeat/no-repeat-x/erpeat-y
background-position      背景位置    length/position 分别是X和Y坐标
background-attachment    背景附着   scroll(背景滚动)/fixed(背景固定)