CSS

CSS

CSS 语法

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

  • 选择器是用于指定 CSS 样式的 HTML 标签,花括号内是对该对象设置的具体样式
  • 属性和属性值以"键值对"的形式出现
  • 属性是对指定的对象设置的样式属性,例如字体大小,文本颜色等

选择器

标签选择器

标签名 {
  属性1: 属性值1;
  属性2: 属性值2;
  属性3: 属性值3;
  ...;
}
  • 标签选择器可以把某一类标签全部选择出来,比如所有的<div>标签和所有的<span>标签

类选择器

<head>
  <style>
    .red {
      color: red;
    }
  </style>
</head>
<body>
  <div class="red">红色</div>
</body>
  • 类选择器口诀:样式点定义,结构类调用.一个或多个,开发最常用.

类选择器-多类名

<head>
  <style>
    .red {
      color: red;
    }
    .font20 {
      font: 20px;
    }
  </style>
</head>
<body>
  <div class="red font20">多类名</div>
</body>
  • 在标签 class 属性中写多个类名
  • 多个类名中间必须用空格分开
  • 这个标签就可以分别具有这些类名的样式

id 选择器

#id名 {
  属性1: 属性值1;
  ...;
}
  • id 选择器的口诀:样式#定义,结构 id 调用,只能调用一次,切勿被人使用

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

  • 类选择器(class)好比人的名字,一个人可以有多个名字,同时一个名字也可以被多个人使用.
  • id 选择器好比人的身份证号码,全中国是唯一的,不得重复.
  • id 选择器和类选择器最大的不同在于使用次数上.

通配符选择器

* {
  属性1: 属性值1;
  ...;
}
  • 通配符选择器不需要调用,自动就给所有的元素使用样式

基础选择器总结

基础选择器 作用 特点 使用情况 用法
标签选择器 可以选出所有相同的标签,比如 p 不能差异化选择 较多 p {color: red;}
类选择器 可以选出 1 个或多个标签 可以根据需求选择 非常多 .nav {color: red;}
id 选择器 1 次只能选择 1 个标签 ID 属性只能在每个 HTML 文档中出现一次 一般和 js 搭配 #nav {color: red;}
通配符选择器 选择所有的标签 选择的太多,有部分不需要 特殊情况使用 * {color: red;}

属性

字体属性

字体系列

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

字体大小

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

字体粗细

p {
  font-weight: bold;
}
属性值 描述
normal 默认值(不加粗)
bold 定义粗体(加粗)
100~900 400 等同于 normal,700 等同于 bold 注意这个数字后面不加单位
  • 实际开发中,更提倡使用数字表示粗细

文字样式

p {
  font-style: normal;
}
属性值 作用
normal 默认值,浏览器会显示标准的字体样式 font-style: normal;
italic 浏览器会显示斜体的字体样式
  • 平时很少给文字加斜体,反而要给斜体标签(em, i)改为不倾斜字体

字体复合属性

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

字体属性总结

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

文本属性

字体颜色

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

对齐文本

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

装饰文本

div {
  text-decoration: underline;
}

|属性值|描述|
|none|默认.没有装饰线|
|underline|下划线.(常用)|
|ouveline|上划线(几乎不用)|
|line-through|删除线(不常用)|

文本缩进

div {
  text-indent: 32px;
}

div {
  text-indent: 2em;
}
  • text-indent 属性用来指定文本的第一行的缩进,通常是将段落的首行缩进
  • em 是一个相对单位,就是当前元素1 个文字的大小,如果当前元素没有设置大小,则会按照父元素的 1 个文字大小

行间距

p {
  line-height: 26px;
}
行间距小技巧
  • 可以使行间距和盒子高度相等,从而使文字垂直居中

CSS

文本属性总结

属性 表示 注意点
color 文本颜色 通常用 十六进制
text-align 文本对齐 可以设定文字水平的对齐方式
text-indent 文本缩进 通常用于段落首行缩进 2 字符的距离 text-indent: 2em;
text-decoration 文本修饰 记住添加下划线 underline 取消下划线 none
line-height 行高 控制行与行之间的距离

引入方式

内部样式表

<style>
  div {
    color: red;
    font-size: 12px;
  }
</style>
  • <style>标签理论上可以放在 HTML 文档的任何地方,但一般会放在文档的<head>标签中
  • 通过这种方式,可以方便控制当前整个页面中的元素样式设置
  • 代码结构清晰,但是并没有实现结构与样式的完全分离
  • 内部样式表设定 CSS,通常也被称为嵌入式引入

行内样式表

<div style="color: red; font-size: 12px;">233</div>
  • style 其实就是标签的属性
  • 在双引号中间,写法要符合 CSS 规范
  • 可以控制当前的标签设置样式
  • 使用行内样式表设定 CSS,通常也被成为行内式引入

外部样式表

<link rel="stylesheet" href="css文件路径" />

引入方式总结

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

复合选择器

后代选择器

元素1 元素2 { 样式声明 }
  • 元素 1 和元素 2 中间用空格隔开
  • 元素 1 是父级,元素 2 是子级,最终选择的是元素 2
  • 元素 2 可以是儿子,也可以是孙子等,只要是元素 1 的后代即可
  • 元素 1 和元素 2 可以是 任意基础选择器

子选择器

元素1 > 元素2 { 样式声明 }
  • 元素 1 和元素 2 中间用 > 隔开
  • 元素 1 是父级,元素 2 是子级,最终选择的是元素 2
  • 元素 2 必须是亲儿子,其孙子,重孙之类都不归他管.也可以叫他亲儿子选择器

并集选择器

元素1,元素2 { 样式声明 }
  • 元素 1 和元素 2 中间用 , 隔开
  • 逗号可以理解为的意思
  • 并集选择器通常用于集体声明

伪类选择器

链接伪类选择器

a:link    /*选择所有未被访问的链接*/
a:visited /*选择所有已被访问的链接*/
a:hover   /*选择鼠标指针位于其上的链接*/
a:active  /*选择活动链接(鼠标按下未弹起的链接)*/
注意事项
  • 为了确保生效,请按照 LVHA 的顺序声明,即:link-visited-hover-active

focus 伪类选择器

input:focus {
  background-color: pink;
}
  • 一般情况<input>类表单元素才能获取
  • 谁获得光标,谁获得效果

复合选择器总结

选择器 作用 特征 使用情况 隔开符号及用法
后代选择器 用来选择后代元素 可以是子孙后代 较多 符号是空格 .nav a
子代选择器 选择最近一级元素 只选亲儿子 较少 符号是大于 .nav>p
并集选择器 选择某些相同样式的元素 可以用于集体声明 较多 符号是逗号 .nav,.header
链接伪类选择器 选择不同状态的链接 跟链接相关 较多 重点记住 a{}和 a:hover 实际开发的写法
:focus 选择器 选择获得光标的表单 跟表单相关 较少 input:focus 记住这个写法

CSS 的元素显示模式

块元素

块元素的特点:

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

注意:

  • 文字类的元素内不能使用块级元素
  • <p>标签主要用于存放文字,因此<p>里面不能放块级元素,特别是不能放<div>
  • 同理,<h1>~<h6>等都是文字类块级标签,里面也不能放其他块级元素

行内元素

行内元素的特点

  • 相邻行内元素在一行上,一行可以显示多个
  • 高,宽直接设置是无效的
  • 默认宽度就是它本身内容的宽度
  • 行内元素只能容纳文本或其他行内元素

注意:

  • 链接里面不能再放链接
  • 特殊情况链接<a>里面可以放块级元素,但是给<a>转换一下块级模式最安全

行内块元素

例如:<img />,<input />,<td>

行内块元素特点

  • 和相邻 行内元素 和 行内块元素 在一行上,但是他们之间会有空白缝隙.一行可以显示多个(行内元素特点)
  • 默认宽度就是它本身内容的宽度(行内元素特点)
  • 高度,行高,外边距以及内边距都可以控制(块级元素特点)

元素显示模式总结

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

元素显示模式转换

转换为块元素

行内元素 {
  display: block;
}

转换为行内元素

块元素 {
  display: inline;
}

转换为行内块元素

非行内块元素 {
  display: inline-block;
}

CSS 的背景

背景颜色

元素 {
  background-color: 颜色值;
}
  • 一般情况下元素背景颜色默认值为transparent

背景图片

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

背景平铺

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

背景图片位置

元素 {
  background-position: x y;
}

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

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

参数是方位名词

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

参数是精确单位

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

参数是混合单位

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

背景图像固定

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

图像属性复合写法

元素 {
  background: 背景颜色 背景图片地址 背景平铺 背景图像滚动 背景图片位置;
}
  • 使用简写属性时,没有特定的书写顺序,这个是一般习惯约定顺序

背景色半透明

元素 {
  background: rgba(0, 0, 0, 0.3);
}
  • 最后一个参数是 alpha 透明度,取值范围在 0~1 之间
  • 我们习惯把 0.3 的 0 省略掉,写为 rgba(0, 0, 0, .3);
  • 背景半透明是指盒子背景半透明,盒子里面的内容不受影响

背景总结

属性 作用
background-color 背景颜色 预定义的颜色值/十六进制/RGB 代码
background-image 背景图片 url(图片路径)
background-repeat 是否平铺 repeat/no-repeat/repeat-x/repeat-y
background-attachment 背景固定 scroll(背景滚动)/fixed(背景固定)
background-position 背景位置 length/position 分别是 x 和 y 坐标
背景简写 书写更简单 背景颜色 背景图片地址 背景平铺 背景滚动 背景位置
背景色半透明 背景颜色半透明 background: rgba(0,0,0,0.3);
上一篇:Collection集合


下一篇:【青训营】HTML、CSS温故而知新