CSS知识超详细

时间:2024-11-19 07:25:08

文章目录

  • 一.CSS介绍
  • 二.基础知识
      • 样式表
      • 2.基础选择器
        • (1)标签选择器
        • (2)类选择器
        • (3)id选择器
        • (4)通配符选择器
      • 3.复合选择器
        • (1)后代选择器
        • (2)子选择器
        • (3)并集选择器
        • (4)交集选择器
        • (5)伪类选择器
      • 4.字体样式属性
        • (1)字体大小font-size
        • (2)字体类型font-family
        • (3)字体粗细font-weight
        • (4)字体风格font-style
      • 5.文本外观样式
        • (1)设置文本颜色color
        • (2)word-spacing
        • (3)letter-spacing
        • (4)line-height
        • (5)text-transform
        • (6)text-decoration
        • (7)text-align
        • (8)text-indent
        • (9)white-space
      • 6.文本外观属性
        • (1)text-shadow
        • (2)overflow
      • 层叠性、继承性及优先级
      • 8.边框介绍
        • 8.1边框属性
          • (1)border-style
          • (2)border-width
          • (3)border-color
          • (4)border-radius
        • 8.2内边距属性
        • 8.3外边距属性
        • 8.4box-shadow
      • 9.背景属性
        • 9.1背景颜色
        • 9.2背景图片
          • (1)background-repeat
          • (2)background-position
          • (3)background-attachment
          • (4)background-size
          • (5)background-origin
          • (6)background-clip
          • (7)复合写法
          • (8)不透明
      • 10.元素的类型
      • 标签
      • 13.表格标签
        • (1)标签
        • (2)标签
        • (3)标签
        • (4)标签
        • (5)表格边框
        • (6)折叠边框
        • (7)表格宽度和高度
        • (8)表格边框间距border-spacing
        • (9)表格标题位置caption-side
      • 14.表单
        • 14.1创建表单
          • (1)标签
        • 14.2表单控件
          • (1)input控件
          • (2)input/标签的type属性
          • (3)textarea控件
          • (4)select控件
      • 盒子模型
        • (1)边框(border)
        • (2)内边距(padding)
        • (3)外边距(margin)
        • (4)清除内外边距
        • (5)盒子模型
      • 16.浮动布局
        • (1)传统网页布局
        • (2)浮动简介
        • (3)浮动特性
        • (4)清除浮动
      • 17.定位布局
        • (1)定位组成
        • (2)相对定位relative
        • (3)绝对定位absolute
        • (4)子绝父相
        • (5)固定定位fixed
        • (6)定位叠放次序z-index
        • (7)定位拓展
  • 三.其他
      • 1.圆角边框
        • (1)圆形
        • (2)圆角矩形
      • 2.盒子阴影
      • 3.文字阴影
      • 4.用户界面样式
        • (1)鼠标样式 cursor
        • (2)轮廓线 outline
        • (3)防止拖拽文本域 resize
      • 5.过渡 transition

一.CSS介绍

CSS 是 层叠样式表的简称,也是一种标记语言。CSS 主要用于设置 HTML 页面中的 文本内容, 图片的外形以及 版面的布局和外观显示样式 。
可以简单理解: CSS 可以美化 HTML , 让 HTML 更漂亮,让页面布局更简单 。

二.基础知识

样式表

(1)行内式

  <p style="color: pink; font-size: 15px;">但使龙城飞将在</p>
  • 1

(2)内联式

 <title>内部样式表</title>
    <style>
            div {
                color: red;
            }
     </style>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(3)链入式

<head>
<link href="CSS文件的路径" type = "text/css" rel = "stylesheet">
</head>
  • 1
  • 2
  • 3

2.基础选择器

选择器 分为 基础选择器 和 复合选择器 两个大类
基础选择器包括: 标签选择器 、 类选择器 、 id 选择器 和 通配符选择器。

(1)标签选择器

语法格式:

标签名{属性1:属性值1;属性2:属性值2;属性3:属性值3;…}

(2)类选择器

.类名{属性1:属性值1;属性2:属性值2;属性3:属性值3;}

(3)id选择器

#id名{属性1:属性值1;属性2:属性值2;属性3:属性值3;}

(4)通配符选择器

*{属性1:属性值1;属性2:属性值2;属性3:属性值3;}

3.复合选择器

(1)后代选择器

后代选择器又称为包含选择器,可以选择父元素里面子元素。其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。
语法:
元素 1 元素 2 {样式声明}

 <style>
        /* 我想要把ol里面的小li选出来改为pink */
        ol li {
            color: pink;
        }
        ol li a {
            color: red;
        }
        .nav li a {
            color: yellow;
        }
        </style>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
(2)子选择器

子元素选择器(子选择器) 只能选择作为某元素的最近一级子元素。简单理解就是选亲儿子元素。
语法:
元素1 > 元素2 { 样式声明 }

(3)并集选择器

并集选择器可以选择多组标签, 同时为他们定义相同的样式 。通过英文逗号(,)连接而成 。

(4)交集选择器

作用:选中页面中 同时满足 多个选择器的标签
选择器。
语法: 选择器1选择器2 { css }

(5)伪类选择器

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


<head>
    <title>复合选择器之链接伪类选择器</title>
    <style>
        /* 1.未访问的链接 a:link  把没有点击过的(访问过的)链接选出来 */
        a:link {
            color: #333;
            text-decoration: none;
        }
 
        /*2. a:visited 选择点击过的(访问过的)链接 */
        a:visited {
            color: orange;
        }
 
        /*3. a:hover 选择鼠标经过的那个链接 */
        a:hover {
            color: skyblue;
        }
        
        /* 4. a:active 选择的是我们鼠标正在按下还没有弹起鼠标的那个链接 */
        a:active {
            color: green;
        }
    </style>
</head>
<body>
    <a href="#">小猪</a>
</body>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

在这里插入图片描述
在这里插入图片描述

4.字体样式属性

(1)字体大小font-size

font-size:像素值;
例:font-size:10px;

(2)字体类型font-family

font-family:字体名;
例:font-family:楷体;

(3)字体粗细font-weight
属性 说明
font-size 字体大小
font-family 字体类型
font-weight 字体粗细
font-style 字体风格
(4)字体风格font-style

font-style:取值;

font-style属性值 说明
normal 默认值 ,正常体
italic 斜体
oblique 将字体倾斜

5.文本外观样式

(1)设置文本颜色color

在这里插入图片描述

(2)word-spacing

在这里插入图片描述

(3)letter-spacing

letter-spacing:像素值;
用来调整文字左右间距

(4)line-height

在这里插入图片描述

(5)text-transform

在这里插入图片描述

(6)text-decoration

在这里插入图片描述

(7)text-align

在这里插入图片描述

(8)text-indent

在这里插入图片描述

(9)white-space

在这里插入图片描述

6.文本外观属性

(1)text-shadow

在这里插入图片描述

(2)overflow

在这里插入图片描述

层叠性、继承性及优先级

在这里插入图片描述

8.边框介绍

8.1边框属性

在这里插入图片描述

(1)border-style

在这里插入图片描述

(2)border-width

在这里插入图片描述

(3)border-color

在这里插入图片描述

(4)border-radius

在这里插入图片描述

8.2内边距属性

在这里插入图片描述

8.3外边距属性

在这里插入图片描述

8.4box-shadow

在这里插入图片描述

9.背景属性

9.1背景颜色

语法:
background-color:颜色值;

9.2背景图片
属性 说明
background-image 定义背景图像的路径,这样图片才能显示
background-repeat 定义背景图像显示方式,例如纵向平铺、横向平铺
background-position 定义背景图像在元素哪个位置
background-attachment 定义背景图像是否随内容而滚动
(1)background-repeat

在这里插入图片描述

(2)background-position

在这里插入图片描述

(3)background-attachment

在这里插入图片描述

(4)background-size

在这里插入图片描述

(5)background-origin

在这里插入图片描述

(6)background-clip

在这里插入图片描述

(7)复合写法

当使用简写属性时,没有特定的书写顺序,一般习惯约定顺序为:
background: 背景颜色 背景图片地址 背景平铺 背景图像滚动 背景图片位置;
background: transparent url(image.jpg) repeat-y fixed top ;

(8)不透明

我们习惯把 0.3 的 0 省略掉,写为 background: rgba(0, 0, 0, .3);

在这里插入图片描述
在这里插入图片描述

10.元素的类型

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

标签

1.标签是一个行内标签
2.与之间只能包含文本和行内标签
3.标签常用于定义网页中某些特殊文本,配合class属性使用。
4.当其他行内标签都不合适时,就可以使用标签。

在这里插入图片描述

13.表格标签

在这里插入图片描述

(1)标签

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(2)标签

在这里插入图片描述

(3)标签

在这里插入图片描述

(4)标签

在这里插入图片描述

(5)表格边框

指定CSS表格边框,使用border属性。

table, th, td
{
    border: 1px solid black;
}
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
在上面的例子中的表格有双边框。这是因为表和th/ td元素有独立的边界。

为了显示一个表的单个边框,使用 border-collapse属性。

(6)折叠边框
border-collapse属性值 说明
separate 默认值,边框分开,不合并
collapse 边框合并,如果相邻,则共用一个边框
table
{
    border-collapse:collapse;
}
table,th, td
{
    border: 1px solid black;
} 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述

(7)表格宽度和高度

Width和height属性定义表格的宽度和高度。

设置100%的宽度,50像素的th元素的高度的表格:
table { width:100%; } th { height:50px; }

(8)表格边框间距border-spacing

border-spacing属性来定义表格边框间距。
语法:
border-spacing:像素值;

(9)表格标题位置caption-side

caption-side属性来定义表格标题的位置

caption-side属性值 说明
top 默认值,标题在顶部
bottom 标题在底部

语法:

<caption>表格标题</caption>

caption-side:属性值;
  • 1
  • 2
  • 3

14.表单

14.1创建表单
(1)标签

在这里插入图片描述

14.2表单控件
(1)input控件

在这里插入图片描述
在这里插入图片描述

(2)input/标签的type属性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)textarea控件

在这里插入图片描述
在这里插入图片描述

(4)select控件

在这里插入图片描述
在这里插入图片描述

盒子模型

"box model"这一术语是用来设计和布局时使用。

在这里插入图片描述

(1)边框(border)

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

属性 作用
border-width 定义边框粗细,单位是px
border-style 边框的样式
border-color 边框颜色
(2)内边距(padding)

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

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

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

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

当我们给盒子指定 padding 值之后,发生了 2 件事情:
内容和边框有了距离,添加了内边距。
padding影响了盒子实际大小。

(3)外边距(margin)
属性 作用
margin-left 左外边距
margin-right 右外边距
margin-top 上外边距
margin-bottom 下外边距

外边距可以让块级盒子 水平居中 , 但是必须满足两个条件:
盒子必须指定了宽度(width)。
盒子左右的外边距都设置为 auto 。
常见的写法,以下三种都可以:
margin-left: auto; margin-right: auto;
margin: auto;
margin: 0 auto;

(4)清除内外边距
* {
padding:0; /* 清除内边距 */
margin:0; /* 清除外边距 */
}
  • 1
  • 2
  • 3
  • 4
(5)盒子模型

在这里插入图片描述

16.浮动布局

(1)传统网页布局
  1. 块级元素会独占一行,从上向下顺序排列。
    常用元素:div、hr、p、h1~h6、ul、ol、dl、form、table
  1. 行内元素会按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行。 常用元素:span、a、i、em 等 以上都是标准流布局,我们前面学习的就是标准流, 标准流是最基本的布局方式 。
    这三种布局方式都是用来摆放盒子的,盒子摆放到合适位置,布局自然就完成了。
(2)浮动简介

语法:
float:取值;

float属性值 说明
left 元素向左浮动
right 元素向右浮动
(3)浮动特性

设置了浮动(float)的元素最重要特性:
1.脱离标准普通流的控制(浮) 移动到指定位置(动), (俗称脱标)
2. 浮动的盒子不再保留原先的位置
3.浮动元素会具有行内块元素特性。

(4)清除浮动

17.定位布局

(1)定位组成

定位:将盒子定在某一个位置,所以定位也是在摆放盒子, 按照定位的方式移动盒子。

定位 = 定位模式 + 边偏移 。

(2)相对定位relative

相对定位是元素在移动位置的时候,是相对于它原来的位置来说的。
语法:
选择器 { position: relative; }

相对定位的特点:(务必记住)

  1. 它是相对于自己原来的位置来移动的(移动位置的时候参照点是自己原来的位置)。
  2. 原来在标准流的位置继续占有,后面的盒子仍然以标准流的方式对待它。
(3)绝对定位absolute

绝对定位是元素在移动位置的时候,是相对于它祖先元素来说的。
语法:
选择器 { position: absolute; }

绝对定位的特点:

  1. 如果没有祖先元素或者祖先元素没有定位,则以浏览器为准定位(Document 文档)。
  2. 如果祖先元素有定位(相对、绝对、固定定位),则以最近一级的有定位祖先元素为参考点移动位置。
  3. 绝对定位不再占有原先的位置。
(4)子绝父相

对定位的话,父级要用相对定位。

  1. 子级绝对定位,不会占有位置,可以放到父盒子里面的任何一个地方,不会影响其他的兄弟盒子。
  2. 父盒子需要加定位限制子盒子在父盒子内显示。
  3. 父盒子布局时,需要占有位置,因此父亲只能是相对定位。

总结: 因为父级需要占有位置,因此是相对定位, 子盒子不需要占有位置,则是绝对定位

(5)固定定位fixed

固定定位是元素固定于浏览器可视区的位置。

语法:
选择器 { position: fixed; }

固定定位的特点:

  1. 以浏览器的可视窗口为参照点移动元素。 跟父元素没有任何关系 不随滚动条滚动。
  2. 固定定位不再占有原先的位置。
(6)定位叠放次序z-index

选择器 { z-index: 1; }

数值可以是正整数、负整数或 0, 默认是 auto,数值越大,盒子越靠上
如果属性值相同,则按照书写顺序,后来居上
数字后面不能加单位
只有定位的盒子才有 z-index 属性

(7)定位拓展

1. 绝对定位的盒子居中

加了绝对定位的盒子不能通过 margin:0 auto 水平居中,但是可以通过以下计算方法实现水平和垂直居中。
① left:50%;:让盒子的左侧移动到父级元素的水平中心位置。
② margin-left: -100px;:让盒子向左移动自身宽度的一半。

三.其他

1.圆角边框

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


div {
            width: 300px;
            height: 150px;
            background-color: pink;
            border-radius: 10px;
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
(1)圆形
.yuanxing {
            width: 200px;
            height: 200px;
            background-color: pink;
            /* border-radius: 100px; */
            /* 50% 就是宽度和高度的一半  等价于 100px */
            border-radius: 50%;
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
(2)圆角矩形

.juxing {
            width: 300px;
            height: 100px;
            background-color: pink;
            /* 圆角矩形设置为高度的一半 */
            border-radius: 50px;
        }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

2.盒子阴影

语法:
box-shadow: h-shadow v-shadow blur spread color inset;

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

注意:

  1. 默认的是外阴影(outset), 但是不可以写这个单词,否则造成阴影无效
    2.盒子阴影不占用空间,不会影响其他盒子排列。

3.文字阴影

语法
text-shadow: h-shadow v-shadow blur color;

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

4.用户界面样式

所谓的界面样式,就是更改一些用户操作样式,以便提高更好的用户体验。
1.更改用户的鼠标样式
2.表单轮廓
3.防止表单域拖拽

(1)鼠标样式 cursor
<ul>
        <li style="cursor: default;">我是默认的小白鼠标样式</li>
        <li style="cursor: pointer;">我是鼠标小手样式</li>
        <li style="cursor: move;">我是鼠标移动样式</li>
        <li style="cursor: text;">我是鼠标文本样式</li>
        <li style="cursor: not-allowed;">我是鼠标禁止样式</li>
    </ul>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
(2)轮廓线 outline

给表单添加 outline: 0; 或者 outline: none; 样式之后,就可以去掉默认的蓝色边框。

input {outline: none; }
  • 1
(3)防止拖拽文本域 resize

textarea{ resize: none;}

5.过渡 transition

在这里插入图片描述


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    div {
      width: 200px;
      height: 200px;
      background-color: red;
      /* 过渡 */
      transition: all 1s;
    }
 
    div:hover {
      width: 800px;
    
      background-color: yellow;
    }
 
  </style>
</head>
<body>
  <div></div>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28