1 css
1.1 css背景
00.属性
background 简写属性,作用是将背景属性设置在一个声明中。
background-attachment 背景图像是否固定或者随着页面的其余部分滚动。
background-color 设置元素的背景颜色。
background-image 把图像设置为背景。
background-position 设置背景图像的起始位置。
background-repeat 设置背景图像是否及如何重复。
01.属性选项
a.background
背景简写属性,用于将多个背景属性设置在一个声明中。其语法为:
background: [background-color] [background-image] [background-position] / [background-size] [background-repeat] [background-attachment] [background-origin] [background-clip];
-----------------------------------------------------------------------------------------------------
background: #87CEEB url('background.jpg') center/cover no-repeat fixed border-box content-box;
b.background-attachment
背景图像是否固定或者随着页面的其余部分滚动,可能的值有:
scroll: 默认值。背景图像随页面滚动。
fixed: 背景图像固定,不随页面滚动。
local: 背景图像随元素的内容滚动。
c.background-color
设置元素的背景颜色,可以使用任何有效的颜色值,如:
颜色名称:red, blue, green 等。
十六进制颜色代码:#ff0000, #00ff00 等。
RGB值:rgb(255, 0, 0), rgb(0, 255, 0) 等。
RGBA值(带透明度):rgba(255, 0, 0, 0.5) 等。
HSL值:hsl(0, 100%, 50%) 等。
HSLA值(带透明度):hsla(0, 100%, 50%, 0.5) 等。
d.background-image
把图像设置为背景,可以使用:
URL:url('path/to/image.jpg')
渐变:linear-gradient(), radial-gradient()
-----------------------------------------------------------------------------------------------------
background-image: url('background.jpg');
background-image: linear-gradient(to right, red, yellow);
e.background-position
设置背景图像的起始位置,可能的值有:
关键字:top, bottom, left, right, center 以及它们的组合(例如 top left)。
百分比:50% 50% 表示居中。
长度值:10px 20px 表示从左边10px,从上边20px的位置开始。
-----------------------------------------------------------------------------------------------------
background-position: center;
background-position: top left;
background-position: 50% 50%;
background-position: 10px 20px;
f.background-repeat
设置背景图像是否及如何重复,可能的值有:
repeat: 默认值。背景图像在水平和垂直方向重复。
repeat-x: 背景图像仅在水平方向重复。
repeat-y: 背景图像仅在垂直方向重复。
no-repeat: 背景图像不重复。
space: 背景图像在不拉伸的情况下平铺,剩余的空间平均分布在图像之间。
round: 背景图像缩放以适应容器的大小。
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>背景效果示例</title>
<style>
body {
margin: 0;
font-family: Arial, sans-serif;
}
.background-example {
width: 100%;
height: 100vh;
background-color: #87CEEB; /* 设置背景颜色 */
background-image: url('https://via.placeholder.com/150'); /* 设置背景图像 */
background-position: center; /* 设置背景图像的起始位置 */
background-repeat: no-repeat; /* 设置背景图像是否及如何重复 */
background-attachment: fixed; /* 设置背景图像是否固定或者随着页面的其余部分滚动 */
display: flex;
align-items: center;
justify-content: center;
color: #83a53b;
font-size: 2rem;
}
</style>
</head>
<body>
<div class="background-example">
这是一个示例背景效果。
</div>
</body>
</html>
1.2 css字体
00.属性
font 在一个声明中设置所有的字体属性
font-family 指定文本的字体系列
font-size 指定文本的字体大小
font-style 指定文本的字体样式
font-variant 以小型大写字体或者正常字体显示文本。
font-weight 指定字体的粗细。
01.属性选项
a.font
简写属性,用于在一个声明中设置所有字体属性。其语法为:
font: [font-style] [font-variant] [font-weight] [font-size]/[line-height] [font-family];
-----------------------------------------------------------------------------------------------------
font: italic small-caps bold 16px/1.5 'Times New Roman', serif;
b.font-family
指定文本的字体系列,可能的值有:
字体名称:Arial, Times New Roman, Courier New 等。
通用字体系列:serif, sans-serif, monospace, cursive, fantasy, system-ui。
-----------------------------------------------------------------------------------------------------
font-family: 'Times New Roman', Times, serif;
c.font-size
指定文本的字体大小,可能的值有:
长度值:例如 16px, 1em, 1rem。
百分比:例如 100%。
绝对大小:xx-small, x-small, small, medium, large, x-large, xx-large。
相对大小:larger, smaller。
-----------------------------------------------------------------------------------------------------
font-size: 16px;
font-size: 1em;
font-size: larger;
d.font-style
指定文本的字体样式,可能的值有:
normal: 默认值。标准字体样式。
italic: 斜体。
oblique: 斜体,但由浏览器模拟(有时与italic相同)。
-----------------------------------------------------------------------------------------------------
font-style: normal;
font-style: italic;
font-style: oblique;
e.font-variant
以小型大写字体或者正常字体显示文本,可能的值有:
normal: 默认值。标准字体。
small-caps: 小型大写字母。
-----------------------------------------------------------------------------------------------------
font-variant: normal;
font-variant: small-caps;
f.font-weight
指定字体的粗细,可能的值有:
数字值:100, 200, 300, 400(正常),500, 600, 700(粗体),800, 900。
关键字:normal, bold, bolder, lighter。
-----------------------------------------------------------------------------------------------------
font-weight: normal;
font-weight: bold;
font-weight: 700;
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>字体属性示例</title>
<style>
body {
margin: 0;
font-family: Arial, sans-serif;
}
.font-example {
font-family: 'Times New Roman', Times, serif; /* 指定文本的字体系列 */
font-size: 24px; /* 指定文本的字体大小 */
font-style: italic; /* 指定文本的字体样式 */
font-variant: small-caps; /* 以小型大写字体或者正常字体显示文本 */
font-weight: bold; /* 指定字体的粗细 */
}
</style>
</head>
<body>
<div class="font-example">
这是一个示例字体效果。
</div>
</body>
</html>
1.3 css文本
00.属性
color 设置文本颜色
direction 设置文本方向。
letter-spacing 设置字符间距
line-height 设置行高
text-align 对齐元素中的文本 水平
text-decoration 向文本添加修饰
text-indent 缩进元素中文本的首行
text-shadow 设置文本阴影
text-transform 控制元素中的字母
unicode-bidi 设置或返回文本是否被重写
vertical-align 设置元素的垂直对齐 垂直
white-space 设置元素中空白的处理方式
word-spacing 设置字间距
01.属性选项
a.color
设置文本颜色,可以使用以下格式:
颜色名称:red, blue, green 等。
十六进制颜色代码:#ff0000, #00ff00 等。
RGB值:rgb(255, 0, 0), rgb(0, 255, 0) 等。
RGBA值(带透明度):rgba(255, 0, 0, 0.5) 等。
HSL值:hsl(0, 100%, 50%) 等。
HSLA值(带透明度):hsla(0, 100%, 50%, 0.5) 等。
b.direction
设置文本方向,可能的值有:
ltr: 从左到右(默认值)。
rtl: 从右到左。
c.letter-spacing
设置字符间距,可能的值有:
normal: 默认值。正常字符间距。
长度值:例如 2px, 0.1em。
d.line-height
设置行高,可能的值有:
数值:例如 1.5(行高是字体大小的1.5倍)。
百分比:例如 150%。
长度值:例如 20px。
关键字:normal(默认值)。
e.text-align
对齐元素中的文本,可能的值有:
left: 左对齐(默认值)。
right: 右对齐。
center: 居中对齐。
justify: 两端对齐。
f.text-decoration
向文本添加修饰,可能的值有:
none: 无装饰(默认值)。
underline: 下划线。
overline: 上划线。
line-through: 删除线。
blink: 闪烁(在大多数浏览器中已不再支持)
g.text-indent
缩进元素中文本的首行,可能的值有:
长度值:例如 50px, 2em。
百分比:例如 10%。
h.text-shadow
设置文本阴影,可能的值有:
阴影的X轴偏移:例如 2px。
阴影的Y轴偏移:例如 2px。
阴影的模糊半径(可选):例如 5px。
阴影的颜色:例如 rgba(0,0,0,0.3)。
text-shadow: 2px 2px 5px rgba(0,0,0,0.3);
i.text-transform
控制元素中的字母,可能的值有:
none: 默认值。无变化。
capitalize: 首字母大写。
uppercase: 全部大写。
lowercase: 全部小写。
j.unicode-bidi
设置或返回文本是否被重写,通常与direction属性结合使用,可能的值有:
normal: 默认值。使用正常的嵌入次序。
embed: 嵌入文本。
bidi-override: 重写文本的方向。
k.vertical-align
设置元素的垂直对齐,可能的值有:
关键字:baseline(默认值), sub, super, top, text-top, middle, bottom, text-bottom。
百分比:例如 50%。
长度值:例如 10px。
l.white-space
设置元素中空白的处理方式,可能的值有:
normal: 默认值。合并空白并换行。
nowrap: 合并空白但不换行。
pre: 保留空白符并不换行(类似于<pre>)。
pre-wrap: 保留空白符并换行。
pre-line: 合并空白并换行。
m.word-spacing
设置字间距,可能的值有:
normal: 默认值。正常字间距。
长度值:例如 2px, 0.1em。
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>文本属性示例</title>
<style>
body {
margin: 0;
font-family: Arial, sans-serif;
}
.text-example {
color: #333; /* 设置文本颜色 */
direction: ltr; /* 设置文本方向 */
letter-spacing: 2px; /* 设置字符间距 */
line-height: 1.6; /* 设置行高 */
text-align: center; /* 对齐元素中的文本 */
text-decoration: underline; /* 向文本添加修饰 */
text-indent: 50px; /* 缩进元素中文本的首行 */
text-shadow: 2px 2px 5px rgba(0,0,0,0.3); /* 设置文本阴影 */
text-transform: uppercase; /* 控制元素中的字母 */
unicode-bidi: bidi-override; /* 设置或返回文本是否被重写 */
vertical-align: middle; /* 设置元素的垂直对齐 */
white-space: nowrap; /* 设置元素中空白的处理方式 */
word-spacing: 4px; /* 设置字间距 */
}
</style>
</head>
<body>
<div class="text-example">
这是一个示例文本效果。
</div>
</body>
</html>
1.4 css链接
00.属性
链接的样式,可以用任何CSS属性(如颜色,字体,背景等)。
特别的链接,可以有不同的样式,这取决于他们是什么状态。
这四个链接状态是:
a:link - 正常,未访问过的链接
a:visited - 用户已访问过的链接
a:hover - 当用户鼠标放在链接上时
a:active - 链接被点击的那一刻
01.属性选项
a.a:link
正常,未访问过的链接。可以应用任何CSS属性。常用属性包括:
color:设置链接的文本颜色。例如 color: blue;。
text-decoration:设置文本装饰。例如 none, underline, overline, line-through。
font-size:设置字体大小。例如 font-size: 16px;。
background-color:设置背景颜色。例如 background-color: yellow;。
-----------------------------------------------------------------------------------------------------
a:link {
color: blue;
text-decoration: none;
font-size: 16px;
}
b.a:visited
用户已访问过的链接。可以应用任何CSS属性。常用属性包括:
color:设置已访问链接的文本颜色。例如 color: purple;。
text-decoration:设置文本装饰。例如 none, underline, overline, line-through。
font-size:设置字体大小。例如 font-size: 16px;。
background-color:设置背景颜色。例如 background-color: lightgray;。
-----------------------------------------------------------------------------------------------------
a:visited {
color: purple;
text-decoration: line-through;
font-size: 16px;
}
c.a:hover
当用户鼠标放在链接上时。可以应用任何CSS属性。常用属性包括:
color:设置鼠标悬停时链接的文本颜色。例如 color: red;。
text-decoration:设置文本装饰。例如 none, underline, overline, line-through。
font-size:设置字体大小。例如 font-size: 16px;。
background-color:设置背景颜色。例如 background-color: yellow;。
cursor:设置鼠标指针的样式。例如 cursor: pointer;。
-----------------------------------------------------------------------------------------------------
a:hover {
color: red;
text-decoration: underline;
font-size: 16px;
background-color: yellow;
}
d.a:active
链接被点击的那一刻。可以应用任何CSS属性。常用属性包括:
color:设置点击时链接的文本颜色。例如 color: green;。
text-decoration:设置文本装饰。例如 none, underline, overline, line-through。
font-size:设置字体大小。例如 font-size: 16px;。
background-color:设置背景颜色。例如 background-color: lightgray;。
-----------------------------------------------------------------------------------------------------
a:active {
color: green;
text-decoration: none;
font-size: 16px;
background-color: lightgray;
}
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>链接样式示例</title>
<style>
/* 未访问过的链接 */
a:link {
color: blue; /* 设置文本颜色 */
text-decoration: none; /* 去掉下划线 */
font-size: 16px; /* 设置字体大小 */
}
/* 已访问过的链接 */
a:visited {
color: purple; /* 设置文本颜色 */
text-decoration: line-through; /* 添加删除线 */
font-size: 16px; /* 设置字体大小 */
}
/* 鼠标放在链接上时 */
a:hover {
color: red; /* 设置文本颜色 */
text-decoration: underline; /* 添加下划线 */
font-size: 16px; /* 设置字体大小 */
background-color: yellow; /* 设置背景颜色 */
}
/* 链接被点击的那一刻 */
a:active {
color: green; /* 设置文本颜色 */
text-decoration: none; /* 去掉下划线 */
font-size: 16px; /* 设置字体大小 */
background-color: lightgray; /* 设置背景颜色 */
}
</style>
</head>
<body>
<h1>链接样式示例</h1>
<p>请点击以下链接以查看不同的链接状态效果:</p>
<a href="https://www.example.com" target="_blank">访问Example.com</a>
<br>
<a href="https://www.example.com" target="_blank">访问Example.com(已访问)</a>
</body>
</html>
1.5 css列表:li属性
00.属性
list-style 简写属性。用于把所有用于列表的属性设置于一个声明中
list-style-image 将图像设置为列表项标志。
list-style-position 设置列表中列表项标志的位置。
list-style-type 设置列表项标志的类型。
01.属性选项
a.list-style
简写属性,用于在一个声明中设置所有列表属性。语法为:
list-style: [list-style-type] [list-style-position] [list-style-image];
-----------------------------------------------------------------------------------------------------
list-style: square inside url('https://www.example.com/path/to/image.png');
b.list-style-image
将图像设置为列表项标志。可能的值有:
none:无图像标志。
url('path/to/image.png'):指定图像路径。
-----------------------------------------------------------------------------------------------------
list-style-image: url('https://www.example.com/path/to/image.png');
list-style-image: none;
c.list-style-position
设置列表中列表项标志的位置。可能的值有:
inside:列表项标志在文本内,文本会环绕标志。
outside:列表项标志在文本外,文本不会环绕标志(默认值)。
-----------------------------------------------------------------------------------------------------
list-style-position: inside;
list-style-position: outside;
d.list-style-type
设置列表项标志的类型。可能的值有:
disc:实心圆(默认值)。
circle:空心圆。
square:实心方块。
decimal:十进制数(1, 2, 3, 4, ...)。
decimal-leading-zero:带前导零的十进制数(01, 02, 03, 04, ...)。
lower-roman:小写罗马数字(i, ii, iii, iv, ...)。
upper-roman:大写罗马数字(I, II, III, IV, ...)。
lower-alpha:小写字母(a, b, c, d, ...)。
upper-alpha:大写字母(A, B, C, D, ...)。
none:无标志。
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>列表属性示例</title>
<style>
/* 设置列表项标志的类型 */
.list-style-type {
list-style-type: square; /* 可以是 disc, circle, square, decimal, lower-roman, upper-roman, lower-alpha, upper-alpha 等 */
}
/* 将图像设置为列表项标志 */
.list-style-image {
list-style-image: url('https://www.example.com/path/to/image.png'); /* 替换为实际的图像URL */
}
/* 设置列表中列表项标志的位置 */
.list-style-position {
list-style-position: inside; /* 可以是 inside 或 outside */
}
/* 设置所有用于列表的属性 */
.list-style {
list-style-type: decimal; /* 列表项标志的类型 */
list-style-image: none; /* 列表项标志的图像 */
list-style-position: outside; /* 列表项标志的位置 */
}
</style>
</head>
<body>
<h1>列表属性示例</h1>
<h2>list-style-type 示例</h2>
<ul class="list-style-type">
<li>列表项 1</li>
<li>列表项 2</li>
<li>列表项 3</li>
</ul>
<h2>list-style-image 示例</h2>
<ul class="list-style-image">
<li>列表项 1</li>
<li>列表项 2</li>
<li>列表项 3</li>
</ul>
<h2>list-style-position 示例</h2>
<ul class="list-style-position">
<li>列表项 1</li>
<li>列表项 2</li>
<li>列表项 3</li>
</ul>
<h2>list-style 示例</h2>
<ul class="list-style">
<li>列表项 1</li>
<li>列表项 2</li>
<li>列表项 3</li>
</ul>
</body>
</html>
1.6 css表格:常见属性
00.属性
表格边框 指定CSS表格边框,使用border属性。
折叠边框 border-collapse 属性设置表格的边框是否被折叠成一个单一的边框或隔开:
表格宽度和高度 Width和height属性定义表格的宽度和高度。
表格文字对齐 表格中的文本对齐和垂直对齐属性。 text-align属性设置水平对齐方式,向左,右,或中心:
表格填充 如需控制边框和表格内容之间的间距,应使用td和th元素的填充属性:
表格颜色 指定边框的颜色,和th元素的文本和背景颜色:
01.属性选项
a.表格边框
用于设置表格的边框。可以定义边框的宽度、样式和颜色。
选项:
宽度(border-width):例如 1px, 2px, medium, thick。
样式(border-style):例如 none, solid, dotted, dashed, double, groove, ridge, inset, outset。
颜色(border-color):可以是颜色名称(例如 red)、十六进制颜色(例如 #ff0000)、RGB(例如 rgb(255,0,0))或RGBA(例如 rgba(255,0,0,0.5))。
-----------------------------------------------------------------------------------------------------
table {
border: 2px solid black; /* 2px宽度的实线黑色边框 */
}
b.折叠边框
设置表格的边框是否折叠为一个单一的边框或保持分隔状态。
选项:
collapse:相邻的单元格边框合并为一个单一的边框。
separate:相邻的单元格边框保持分隔。
-----------------------------------------------------------------------------------------------------
table {
border-collapse: collapse; /* 折叠边框 */
}
c.表格宽度和高度
定义表格的宽度和高度。
选项:
宽度 (width):可以是具体的像素值(例如 100px)、百分比(例如 100%)等。
高度 (height):可以是具体的像素值(例如 200px)、百分比(例如 50%)等。
-----------------------------------------------------------------------------------------------------
table {
width: 80%; /* 表格宽度占容器的80% */
height: 200px; /* 表格高度为200像素 */
}
d.表格文字对齐
控制表格中的文本对齐方式和垂直对齐方式。
选项:
水平对齐 (text-align):
left:左对齐。
center:居中对齐。
right:右对齐。
垂直对齐 (vertical-align):
top:顶部对齐。
middle:中部对齐。
bottom:底部对齐。
-----------------------------------------------------------------------------------------------------
th, td {
text-align: center; /* 水平居中对齐 */
vertical-align: middle; /* 垂直居中对齐 */
}
e.表格填充
控制边框和表格内容之间的间距。
选项:
具体的像素值(例如 10px, 5px 10px)。
百分比(相对于单元格的宽度和高度)。
-----------------------------------------------------------------------------------------------------
th, td {
padding: 10px; /* 单元格内容与边框之间的间距为10像素 */
}
f.表格颜色
指定边框的颜色、th元素的文本和背景颜色。
选项:
边框颜色 (border-color):可以是颜色名称、十六进制颜色、RGB或RGBA。
背景颜色 (background-color):可以是颜色名称、十六进制颜色、RGB或RGBA。
文本颜色 (color):可以是颜色名称、十六进制颜色、RGB或RGBA。
-----------------------------------------------------------------------------------------------------
th {
background-color: #f2f2f2; /* 表头背景颜色 */
color: black; /* 表头文本颜色 */
}
td {
border: 1px solid black; /* 单元格边框颜色 */
}
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>表格属性示例</title>
<style>
/* 表格边框 */
table {
border: 2px solid black; /* 设置表格边框颜色和宽度 */
border-collapse: collapse; /* 折叠边框(将相邻的表格单元格边框合并为一个单一的边框) */
width: 100%; /* 设置表格宽度为100% */
height: auto; /* 设置表格高度为自动 */
}
/* 折叠边框 */
table {
border-collapse: collapse; /* 折叠边框 */
}
/* 表格宽度和高度 */
table {
width: 80%; /* 设置表格宽度 */
height: 200px; /* 设置表格高度 */
}
/* 表格文字对齐 */
th, td {
text-align: center; /* 设置水平对齐方式(可以是 left, center, right) */
vertical-align: middle; /* 设置垂直对齐方式(可以是 top, middle, bottom) */
}
/* 表格填充 */
th, td {
padding: 10px; /* 设置单元格的内边距 */
}
/* 表格颜色 */
th {
background-color: #f2f2f2; /* 设置th元素的背景颜色 */
color: black; /* 设置th元素的文本颜色 */
}
td {
border: 1px solid black; /* 设置单元格边框的颜色和宽度 */
}
</style>
</head>
<body>
<h1>表格属性示例</h1>
<table>
<thead>
<tr>
<th>表头 1</th>
<th>表头 2</th>
<th>表头 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>数据 1</td>
<td>数据 2</td>
<td>数据 3</td>
</tr>
<tr>
<td>数据 4</td>
<td>数据 5</td>
<td>数据 6</td>
</tr>
</tbody>
</table>
</body>
</html>
1.7 css表单:常见属性
00.属性
输入框样式 使用 width 属性来设置输入框的宽度:
输入框填充 使用 padding 属性可以在输入框中添加内边距。
输入框边框 使用 border 属性可以修改 input 边框的大小或颜色,使用 border-radius 属性可以给 input 添加圆角
输入框颜色 可以使用 background-color 属性来设置输入框的背景颜色,color 属性用于修改文本颜色
输入框聚焦 默认情况下,一些浏览器在输入框获取焦点时(点击输入框)会有一个蓝色轮廓。我们可以设置 input 样式为 outline: none; 来忽略该效果。 使用 :focus 选择器可以设置输入框在获取焦点时的样式
输入框图标 如果你想在输入框中添加图标,可以使用 background-image 属性和用于定位的background-position 属性。注意设置图标的左边距,让图标有一定的空间:
带动画的搜索框 以下实例使用了 CSS transition 属性,该属性设置了输入框在获取焦点时会向右延展。
文本框样式(textarea) 使用 resize 属性来禁用文本框可以重置大小的功能(一般拖动右下角可以重置大小)
下拉菜单样式(select)
按钮样式(button)
01.属性选项
a.输入框样式
宽度 (width):
可以是具体的像素值(如 300px)。
也可以是百分比(如 100%),相对于其父元素的宽度。
-----------------------------------------------------------------------------------------------------
input {
width: 300px; /* 设置输入框宽度 */
}
b.输入框填充
内边距 (padding):
可以是具体的像素值(如 10px)。
也可以是百分比(相对于元素的宽度)。
-----------------------------------------------------------------------------------------------------
input {
padding: 10px; /* 添加内边距 */
}
c.输入框边框
边框 (border):
宽度(border-width):例如 1px, 2px, medium, thick。
样式(border-style):例如 none, solid, dotted, dashed, double, groove, ridge, inset, outset。
颜色(border-color):可以是颜色名称、十六进制颜色、RGB 或 RGBA 值。
-----------------------------------------------------------------------------------------------------
圆角 (border-radius):
可以是具体的像素值(如 5px)。
也可以是百分比(如 50%),用于圆形元素。
-----------------------------------------------------------------------------------------------------
input {
border: 2px solid #ccc; /* 设置边框宽度、样式和颜色 */
border-radius: 5px; /* 设置圆角 */
}
d.输入框颜色
背景颜色 (background-color):
可以是颜色名称、十六进制颜色、RGB 或 RGBA 值。
-----------------------------------------------------------------------------------------------------
文本颜色 (color):
可以是颜色名称、十六进制颜色、RGB 或 RGBA 值。
-----------------------------------------------------------------------------------------------------
input {
background-color: #f9f9f9; /* 设置背景颜色 */
color: #333; /* 设置文本颜色 */
}
e.输入框聚焦
去除轮廓 (outline):
使用 outline: none; 移除默认的焦点轮廓。
-----------------------------------------------------------------------------------------------------
聚焦样式 (:focus):
可以设置 border-color, background-color, box-shadow 等属性。
-----------------------------------------------------------------------------------------------------
input:focus {
outline: none; /* 移除焦点轮廓 */
border-color: #007bff; /* 设置焦点时边框颜色 */
background-color: #e0f7fa; /* 设置焦点时背景颜色 */
}
f.输入框图标
背景图像 (background-image):
使用 url('path/to/icon.png') 指定图像路径。
-----------------------------------------------------------------------------------------------------
背景定位 (background-position):
可以是具体的像素值(如 10px 50%),也可以是关键词(如 left center)。
-----------------------------------------------------------------------------------------------------
背景重复 (background-repeat):
可以是 no-repeat, repeat, repeat-x, repeat-y。
-----------------------------------------------------------------------------------------------------
内边距 (padding-left):
留出空间以容纳图标。
-----------------------------------------------------------------------------------------------------
input {
background-image: url('https://www.example.com/path/to/icon.png'); /* 设置图标 */
background-repeat: no-repeat; /* 不重复图标 */
background-position: 10px center; /* 图标位置 */
padding-left: 40px; /* 为图标留出空间 */
}
g.带动画的搜索框
过渡 (transition):
使用 transition 属性定义动画效果的持续时间和类型(如 width 0.4s ease)。
-----------------------------------------------------------------------------------------------------
input[type="search"].animated {
transition: width 0.4s ease; /* 设置过渡动画 */
}
input[type="search"].animated:focus {
width: 400px; /* 焦点时输入框宽度 */
}
h.文本框样式
大小 (width 和 height):
可以是具体的像素值(如 300px, 150px)。
-----------------------------------------------------------------------------------------------------
内边距 (padding):
添加内边距。
-----------------------------------------------------------------------------------------------------
禁用大小调整 (resize):
none:禁用大小调整功能。
both:允许水平和垂直调整。
horizontal:只允许水平调整。
vertical:只允许垂直调整。
-----------------------------------------------------------------------------------------------------
textarea {
width: 300px; /* 设置宽度 */
height: 150px; /* 设置高度 */
padding: 10px; /* 添加内边距 */
border: 2px solid #ccc; /* 设置边框 */
border-radius: 5px; /* 添加圆角 */
resize: none; /* 禁用大小调整功能 */
}
i.下拉菜单样式
宽度 (width):
可以是具体的像素值(如 320px)。
-----------------------------------------------------------------------------------------------------
内边距 (padding):
添加内边距。
-----------------------------------------------------------------------------------------------------
边框 (border):
设置边框的宽度、样式和颜色。
-----------------------------------------------------------------------------------------------------
背景颜色 (background-color):
设置背景颜色。
-----------------------------------------------------------------------------------------------------
文本颜色 (color):
设置文本颜色。
-----------------------------------------------------------------------------------------------------
select {
width: 320px; /* 设置宽度 */
padding: 10px; /* 添加内边距 */
border: 2px solid #ccc; /* 设置边框 */
border-radius: 5px; /* 添加圆角 */
background-color: #f9f9f9; /* 设置背景颜色 */
color: #333; /* 设置文本颜色 */
}
j.按钮样式 (button)
背景颜色 (background-color):
设置按钮背景颜色。
-----------------------------------------------------------------------------------------------------
文本颜色 (color):
设置按钮文本颜色。
-----------------------------------------------------------------------------------------------------
边框 (border):
设置边框的宽度、样式和颜色。
-----------------------------------------------------------------------------------------------------
内边距 (padding):
添加内边距。
-----------------------------------------------------------------------------------------------------
圆角 (border-radius):
设置圆角。
-----------------------------------------------------------------------------------------------------
鼠标指针 (cursor):
设置鼠标指针样式(例如 pointer)。
-----------------------------------------------------------------------------------------------------
字体大小 (font-size):
设置按钮文本的字体大小。
-----------------------------------------------------------------------------------------------------
过渡 (transition):
设置悬停和点击时的动画效果。
-----------------------------------------------------------------------------------------------------
button {
background-color: #007bff; /* 设置背景颜色 */
color: white; /* 设置文本颜色 */
border: none; /* 移除边框 */
padding: 10px 20px; /* 添加内边距 */
border-radius: 5px; /* 添加圆角 */
cursor: pointer; /* 设置鼠标指针为手形 */
font-size: 16px; /* 设置字体大小 */
transition: background-color 0.3s ease; /* 设置过渡动画 */
}
button:hover {
background-color: #0056b3; /* 鼠标悬停时背景颜色 */
}
button:active {
background-color: #003d7a; /* 点击时背景颜色 */
}
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>表单样式示例</title>
<style>
/* 输入框样式 */
input[type="text"], input[type="email"], input[type="password"] {
width: 300px; /* 设置输入框宽度 */
padding: 10px; /* 添加内边距 */
border: 2px solid #ccc; /* 设置边框大小和颜色 */
border-radius: 5px; /* 添加圆角 */
background-color: #f9f9f9; /* 设置背景颜色 */
color: #333; /* 设置文本颜色 */
}
/* 输入框聚焦样式 */
input[type="text"]:focus,
input[type="email"]:focus,
input[type="password"]:focus {
outline: none; /* 移除默认焦点轮廓 */
border-color: #007bff; /* 设置焦点时边框颜色 */
background-color: #e0f7fa; /* 设置焦点时背景颜色 */
}
/* 输入框图标 */
input[type="search"] {
background-image: url('https://www.example.com/path/to/search-icon.png'); /* 设置图标 */
background-repeat: no-repeat; /* 不重复图标 */
background-position: 10px center; /* 设置图标位置 */
padding-left: 40px; /* 给图标留出空间 */
}
/* 带动画的搜索框 */
input[type="search"].animated {
transition: width 0.4s ease; /* 设置过渡动画 */
}
input[type="search"].animated:focus {
width: 400px; /* 焦点时输入框宽度 */
}
/* 文本框样式 */
textarea {
width: 300px; /* 设置宽度 */
height: 150px; /* 设置高度 */
padding: 10px; /* 添加内边距 */
border: 2px solid #ccc; /* 设置边框 */
border-radius: 5px; /* 添加圆角 */
resize: none; /* 禁用大小调整功能 */
}
/* 下拉菜单样式 */
select {
width: 320px; /* 设置宽度 */
padding: 10px; /* 添加内边距 */
border: 2px solid #ccc; /* 设置边框 */
border-radius: 5px; /* 添加圆角 */
background-color: #f9f9f9; /* 设置背景颜色 */
color: #333; /* 设置文本颜色 */
}
/* 按钮样式 */
button {
background-color: #007bff; /* 设置背景颜色 */
color: white; /* 设置文本颜色 */
border: none; /* 移除边框 */
padding: 10px 20px; /* 添加内边距 */
border-radius: 5px; /* 添加圆角 */
cursor: pointer; /* 设置鼠标指针为手形 */
font-size: 16px; /* 设置字体大小 */
transition: background-color 0.3s ease; /* 设置过渡动画 */
}
/* 按钮悬停样式 */
button:hover {
background-color: #0056b3; /* 鼠标悬停时背景颜色 */
}
/* 按钮点击样式 */
button:active {
background-color: #003d7a; /* 点击时背景颜色 */
}
</style>
</head>
<body>
<h1>表单样式示例</h1>
<form>
<!-- 输入框 -->
<label for="text-input">文本输入框:</label>
<input type="text" id="text-input" name="text-input" placeholder="输入文本"><br><br>
<label for="email-input">电子邮件输入框:</label>
<input type="email" id="email-input" name="email-input" placeholder="输入电子邮件"><br><br>
<label for="password-input">密码输入框:</label>
<input type="password" id="password-input" name="password-input" placeholder="输入密码"><br><br>
<label for="search-input">搜索框:</label>
<input type="search" id="search-input" name="search-input" class="animated" placeholder="搜索"><br><br>
<!-- 文本框 -->
<label for="textarea">文本区域:</label>
<textarea id="textarea" name="textarea" placeholder="输入文本"></textarea><br><br>
<!-- 下拉菜单 -->
<label for="dropdown">选择菜单:</label>
<select id="dropdown" name="dropdown">
<option value="option1">选项 1</option>
<option value="option2">选项 2</option>
<option value="option3">选项 3</option>
</select><br><br>
<!-- 按钮 -->
<button type="submit">提交</button>
</form>
</body>
</html>
1.8 css盒子继承
01.只定义每层盒子特性,垂直瀑布
a.区别
IE盒模型和标准盒模型的区别:两者的区别在于content的不同,IE盒模型的content包括border、padding
当使用content-box时:页面将采用标准模式来解析计算,content-box也是默认模式;
当使用border-box时,页面将采用怪异模式解析计算,怪异模式也称为IE模式;
当使用inherit时:页面将从父元素继承box-sizing的值;
b.计算公式
总元素的宽度=宽度+左填充+右填充+左边框+右边框+左边距+右边距
元素的高度=高度+顶部填充+底部填充+上边框+下边框+上边距+下边距
c.下面的例子中的元素的总宽度为 450px:
div {
width: 300px; content
border: 25px solid green; border
padding: 25px; padding
margin: 25px; margin
}
---------------------------------------------------------------------------------------------------------
300px (宽)
+ 50px (左 + 右填充)
+ 50px (左 + 右边框)
+ 50px (左 + 右边距)
= 450px
02.属性继承
a.可继承属性
a.字体属性
font-family: 字体系列
font-size: 字体大小
font-style: 字体样式(正常、斜体等)
font-weight: 字体粗细
font-variant: 字体变体(小型大写等)
line-height: 行高
b.文本属性
text-align: 文本对齐方式
text-indent: 首行缩进
text-transform: 文本转换(大写、小写等)
white-space: 空格处理
word-spacing: 单词间距
c.颜色和背景
color: 文本颜色
visibility: 可见性
list-style: 列表样式
quotes: 引用样式(引号)
d.表格属性
border-collapse: 边框合并
border-spacing: 边框间距
caption-side: 表格标题位置
empty-cells: 空单元格的显示
table-layout: 表格布局
e.其他属性
inherit: 强制继承父元素的属性值
direction: 文本方向(从左到右或从右到左)
text-decoration: 文本装饰(下划线等)
text-shadow: 文本阴影
02.不可继承的属性:
a.盒子模型属性
margin: 外边距
padding: 内边距
border: 边框
width: 宽度
height: 高度
max-width: 最大宽度
max-height: 最大高度
min-width: 最小宽度
min-height: 最小高度
b.背景属性
background: 背景(简写属性)
background-color: 背景颜色
background-image: 背景图像
background-repeat: 背景图像重复
background-position: 背景图像位置
background-size: 背景图像大小
c.布局属性
display: 显示类型(块、行内、行内块等)
position: 定位类型(静态、相对、绝对、固定)
top, right, bottom, left: 定位偏移量
float: 浮动
clear: 清除浮动
overflow: 溢出处理
flex, grid: 布局模型
d.视觉效果属性
opacity: 不透明度
visibility: 可见性
z-index: 层叠顺序
box-shadow: 盒子阴影
text-shadow: 文本阴影
e.列表属性
list-style: 列表样式(简写属性)
list-style-type: 列表项标记类型
list-style-position: 列表项标记位置
list-style-image: 列表项标记图像
f.其他属性
cursor: 鼠标指针样式
float: 浮动
clip: 裁剪区域
resize: 调整大小
transition: 过渡效果
transform: 变形
03.优先级算法
a.总结1
1.优先级就近原则,同权重情况下样式定义最近者为准
2.载入样式以最后载入的定位为准
3.!important > id > class > tag
4.!important > style行内样式 > 内联样式 > 外联样式【根据css放置位置计算权重】
b.总结2
a.优先级规则
!important:最高优先级,不管其他规则的优先级如何,只要声明了!important,该规则都会被应用。
内联样式(元素的style属性):权重为1000。
ID选择器:权重为100。
类选择器、属性选择器和伪类:权重为10。
元素选择器和伪元素:权重为1。
通配符选择器(*)、子选择器(>)、相邻兄弟选择器(+)、一般兄弟选择器(~):权重为0。
b.CSS优先级的计算
权重的计算方式是基于选择器的各个部分来进行的。例如,选择器#id .class的权重为100(ID选择器) + 10(类选择器) = 110。
当两个选择器的优先级相同时,后定义的规则会覆盖先定义的规则。
04.说明
.box 类:
宽度和高度:width 和 height 设置了盒子的宽度和高度。
背景色:background-color 设置了盒子的背景颜色。
文本颜色:color 设置了文本的颜色。
文本对齐:text-align 将文本水平居中,line-height 用于使文本垂直居中。
外边距:margin 设置了盒子与其他元素的距离。
内边距:padding 设置了内容与边框之间的空间。
边框:border 设置了盒子的边框。
盒子模型:box-sizing: border-box 确保元素的宽度和高度包括边框和内边距。
.box-outer 和 .box-inner 类:
.box-outer:包裹 box-inner 的外部容器,具有背景色和边框。
.box-inner:包裹实际内容的内部盒子,具有背景色、边框和内边距,使用 box-sizing: border-box 确保内边距和边框不会超出其指定宽度。
05.样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS 盒子模型示例</title>
<style>
/* 全局样式 */
body {
font-family: Arial, sans-serif;
margin: 20px;
padding: 0;
background-color: #f4f4f4;
}
/* 盒子模型容器 */
.box {
width: 300px;
height: 150px;
background-color: #4CAF50;
color: white;
text-align: center;
line-height: 150px; /* 使文本垂直居中 */
margin: 20px; /* 外边距 */
padding: 20px; /* 内边距 */
border: 5px solid #333; /* 边框 */
box-sizing: border-box; /* 包括边框和内边距在内的宽度和高度 */
}
.box-outer {
background-color: #f9f9f9;
border: 2px solid #ccc;
padding: 10px;
}
.box-inner {
background-color: #ddd;
border: 2px solid #999;
padding: 20px;
box-sizing: border-box; /* 适用于内边距和边框 */
}
</style>
</head>
<body>
<h2>CSS 盒子模型示例</h2>
<div class="box">
盒子模型
</div>
<h3>盒子模型详细示例</h3>
<div class="box-outer">
<div class="box-inner">
内部盒子
</div>
</div>
</body>
</html>
1.9 css行块元素
01.汇总1
a.行内元素
css的display属性是inline,
不会独占一行,相邻行内元素会排列在同一行里,直到一行排不下,才会换行,
其宽度随元素的内容而变化,
设置高度和宽度的话会不起作用,
水平方向的padding-left、padding-right、margin-left、margin-right都产生边距效果,
但竖直方向的padding-top、padding-bottom、margin-top、margin-bottom却不会产生边距效果。
b.块级元素
css的display属性是block,会独占一行。
默认情况下,其宽度自动填满其父元素宽度,宽高可以设置,但设置了宽度还是独占一行。
---------------------------------------------------------------------------------------------------------
修改display为block,可以把行内元素变成块级元素,
修改display为inline,可以把块级元素变成行内元素。
修改display为inline-block时,可以使行内元素保持在一行内,但具有块级元素的特点。
c.行内块元素的兼容性使用
div {
display:inline-block;
*display:inline;
*zoom:1;
}
02.汇总2
a.行内元素
行内元素不会在其前后生成换行符,它们通常只占据它们对应标签的内容所需的宽度
b.块级元素
块级元素在其前后会生成换行符,并占据其父元素(容器)的全部宽度。
c.空元素
空元素(或自闭合元素)是没有内容的元素,即它们没有闭合标签
03.汇总3
a.行内元素
a、b、span、img、input、strong、select、label、em、button、textarea
b.块级元素
div、ul、li、dl、dt、dd、p、h1-h6、blockquote、table
c.空元素:即系没有内容的HTML元素
br、meta、hr、link、input、img
04.汇总4
a.行内元素
<a>:锚标签,用于定义超链接。
<abbr>:缩写标签,用于定义缩写。
<b>:加粗文本。
<bdo>:文本方向控制。
<br>:换行符。
<cite>:引用。
<code>:代码片段。
<em>:强调文本。
<i>:斜体文本。
<img>:图像。
<input>:输入控件。
<label>:表单标签。
<q>:短引用。
<small>:小号文本。
<span>:通用行内容器。
<strong>:强调的重要文本。
<sub>:下标文本。
<sup>:上标文本。
<time>:时间。
<u>:下划线文本。
b.块级元素
<address>:地址。
<article>:文章。
<aside>:侧边内容。
<blockquote>:长引用。
<canvas>:绘图区域。
<dd>:定义列表中的定义描述。
<div>:通用块级容器。
<dl>:定义列表。
<dt>:定义列表中的定义项。
<fieldset>:表单控制组。
<figcaption>:图注。
<figure>:图示。
<footer>:页脚。
<form>:表单。
<h1>到<h6>:标题。
<header>:页眉。
<hr>:水平线。
<li>:列表项。
<main>:页面主内容。
<nav>:导航链接。
<ol>:有序列表。
<p>:段落。
<pre>:预格式化文本。
<section>:节。
<table>:表格。
<ul>:无序列表。
c.空元素:即系没有内容的HTML元素
<area>:图像映射中的区域。
<base>:为所有页面上的链接规定默认地址或默认目标。
<br>:换行符。
<col>:表格中一列。
<embed>:嵌入外部内容。
<hr>:水平线。
<img>:图像。
<input>:输入控件。
<link>:链接到外部资源。
<meta>:元数据。
<param>:对象的参数。
<source>:媒体元素的媒体资源。
<track>:视频文本轨道。
<wbr>:建议的换行点。
1.10 css3框大小
00.说明
CSS3 box-sizing 属性可以设置 width 和 height 属性中包含了 padding(内边距) 和 border(边框)。
a.box-sizing属性
属性: box-sizing
属性值: content-box(默认值)
计算方式:width 和 height 仅指内容区域的宽度和高度,内边距(padding)和边框(border)会在这些尺寸之外额外加上,从而使实际的盒子大小变得更大。
div {
width: 200px;
height: 100px;
padding: 10px;
border: 5px solid black;
box-sizing: content-box;
}
实际计算方式:实际宽度 = width + padding-left + padding-right + border-left + border-right
属性值: border-box
计算方式:width 和 height 包括内边距和边框,所以设置的宽度和高度包括所有的内边距和边框,从而使盒子在页面上显示的大小更为精确。
div {
width: 200px;
height: 100px;
padding: 10px;
border: 5px solid black;
box-sizing: border-box;
}
实际计算方式:实际宽度 = width(包括 padding 和 border)
属性值: inherit
inherit: 当 box-sizing 设置为 inherit 时,当前元素的 box-sizing 属性值将继承自其父元素。
如果父元素的 box-sizing 值是 border-box,则当前元素也会是 border-box。
如果父元素的 box-sizing 值是 content-box,则当前元素也会是 content-box
b.其他相关属性
width
定义元素的宽度。
常见值:auto, px, %, em, rem, vw, vh 等。
height
定义元素的高度。
常见值:auto, px, %, em, rem, vh 等。
padding
定义内容区域与边框之间的内边距。
常见值:px, %, em, rem 等。
可设置单独的 padding-top, padding-right, padding-bottom, padding-left。
border
定义边框的宽度、样式和颜色。
常见值:px, solid, dashed, dotted, rgba 等。
可设置单独的 border-top, border-right, border-bottom, border-left。
margin
定义元素与其他元素之间的外边距。
常见值:px, %, em, rem 等。
可设置单独的 margin-top, margin-right, margin-bottom, margin-left。
overflow
控制内容溢出元素盒子时的显示方式。
常见值:visible, hidden, scroll, auto。
max-width / max-height
限制元素的最大宽度或高度。
常见值:px, %, em, rem 等。
min-width / min-height
限制元素的最小宽度或高度。
常见值:px, %, em, rem 等。
02.样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 Box-Sizing 示例</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
padding: 0;
background-color: #f4f4f4;
}
h2, h3 {
color: #333;
}
.box {
margin-bottom: 20px;
}
/* 不使用 box-sizing 属性 */
.div1, .div2 {
width: 300px;
height: 100px;
border: 1px solid #ddd;
}
.div1 {
border-color: blue;
}
.div2 {
border-color: red;
padding: 50px;
}
/* 使用 box-sizing: border-box 属性 */
.box-border-box .div1, .box-border-box .div2 {
width: 300px;
height: 100px;
border: 1px solid #ddd;
box-sizing: border-box;
}
.box-border-box .div1 {
border-color: blue;
}
.box-border-box .div2 {
border-color: red;
padding: 50px;
}
/* 全局应用 box-sizing 属性 */
* {
box-sizing: border-box;
}
/* 自定义样式 */
.full-width-box {
width: 100%;
padding: 20px;
border: 1px solid #333;
margin-top: 20px;
}
</style>
</head>
<body>
<h2>不使用 CSS3 box-sizing 属性</h2>
<div class="box">
<div class="div1">这是一个较小的框</div>
<div class="div2">这是一个较大的框</div>
</div>
<h2>使用 CSS3 box-sizing 属性</h2>
<div class="box-border-box">
<div class="div1">盒子模型 - 边框框大小相同</div>
<div class="div2">盒子模型 - 边框框大小相同</div>
</div>
<h2>全局应用 box-sizing 属性</h2>
<div class="full-width-box">
这是一个全宽的盒子,包含内边距和边框
</div>
</body>
</html>
1.11 css3弹性盒子
00.汇总
a.定义(少用浮动、相对位置、绝对位置)
flexbox(弹性盒布局)可以简便、完整、响应式地实现各种页面布局,主要思想是给予容器控制内部元素高度和宽度的能力
采用Flex布局的元素,称为Flex容器(flex container),简称”容器”
它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”
b.使用
Webkit 内核的浏览器,必须加上-webkit前缀
.box{
display: -webkit-flex; /* Safari */
display: flex;
}
注意,设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效
flex容器属性:flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content
试用场景:弹性布局适合于移动前端开发,在Android和ios上也完美支持
01.flex-direction 规定元素排列方向
row:从左往右排列(默认值)
row-reverse:从右往左排列
column:从上往下排列
column-reverse:从下往上排列
02.flex-wrap 规定元素是否换
nowrap:不换行(默认值)
wrap:换行,第一行在上面
wrap-reverse:反向换行,第一行在下面
03.flex-flow(flex-direction + flex-wrap)
默认row + nowrap
04.justify-content 横向排列
flex-start(默认值):左对齐
flex-end:右对齐
center:居中
space-between:两端对齐,项目之间的间隔都相等
space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍
05.align-items 纵向排列
flex-start:交叉轴的起点对齐
flex-end:交叉轴的终点对齐
center:交叉轴的中点对齐
baseline: 项目的第一行文字的基线对齐
stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度
06.align-content 行与行之间的排列分布
flex-start:与交叉轴的起点对齐
flex-end:与交叉轴的终点对齐
center:与交叉轴的中点对齐
space-between:与交叉轴两端对齐,轴线之间的间隔平均分布
space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍
stretch(默认值):轴线占满整个交叉轴
07.单独设置子民
a.order子民单独排序
order:8; order:1; order:-2;
b.flex-grow 子民分配剩余空间比例
flex-grow:2; flex-grow:1
c.flex-shrink 子民如何收缩空间
flex-shrink:2; felx-shrink:1;
d.align-self 单独设置子民的位置
auto
flex-start
flex-end
center
baseline
strech
99.样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Flexbox 示例</title>
<style>
/* Flex Container */
.flex-container {
display: flex; /* 定义为弹性容器 */
width: 400px;
height: 250px;
background-color: lightgrey;
margin-bottom: 20px;
}
/* Flex Item */
.flex-item {
background-color: cornflowerblue;
width: 100px;
height: 100px;
margin: 10px;
color: white;
display: flex;
align-items: center;
justify-content: center;
}
/* flex-direction 示例 */
.flex-direction-row {
flex-direction: row; /* 横向排列(默认) */
}
.flex-direction-row-reverse {
flex-direction: row-reverse; /* 横向反转排列 */
}
.flex-direction-column {
flex-direction: column; /* 纵向排列 */
}
.flex-direction-column-reverse {
flex-direction: column-reverse; /* 纵向反转排列 */
}
/* justify-content 示例 */
.justify-content-flex-start {
justify-content: flex-start; /* 起始对齐(默认) */
}
.justify-content-flex-end {
justify-content: flex-end; /* 结束对齐 */
}
.justify-content-center {
justify-content: center; /* 居中对齐 */
}
.justify-content-space-between {
justify-content: space-between; /* 项目间距均匀分布 */
}
.justify-content-space-around {
justify-content: space-around; /* 项目间距均匀分布,两边留有间距 */
}
/* align-items 示例 */
.align-items-flex-start {
align-items: flex-start; /* 侧轴起始对齐 */
}
.align-items-flex-end {
align-items: flex-end; /* 侧轴结束对齐 */
}
.align-items-center {
align-items: center; /* 侧轴居中对齐 */
}
.align-items-baseline {
align-items: baseline; /* 基线对齐 */
}
.align-items-stretch {
align-items: stretch; /* 拉伸对齐(默认) */
}
/* flex-wrap 示例 */
.flex-wrap-nowrap {
flex-wrap: nowrap; /* 不换行(默认) */
}
.flex-wrap-wrap {
flex-wrap: wrap; /* 换行 */
}
.flex-wrap-wrap-reverse {
flex-wrap: wrap-reverse; /* 反向换行 */
}
/* align-content 示例 */
.align-content-flex-start {
align-content: flex-start; /* 行起始对齐 */
}
.align-content-flex-end {
align-content: flex-end; /* 行结束对齐 */
}
.align-content-center {
align-content: center; /* 行居中对齐 */
}
.align-content-space-between {
align-content: space-between; /* 行均匀分布 */
}
.align-content-space-around {
align-content: space-around; /* 行均匀分布,两边留有间距 */
}
.align-content-stretch {
align-content: stretch; /* 行拉伸对齐(默认) */
}
/* order 示例 */
.order-1 {
order: 1; /* 排在后面 */
}
.order-2 {
order: 2; /* 排在更后面 */
}
.order-negative {
order: -1; /* 排在前面 */
}
/* align-self 示例 */
.align-self-flex-start {
align-self: flex-start; /* 侧轴起始对齐 */
}
.align-self-flex-end {
align-self: flex-end; /* 侧轴结束对齐 */
}
.align-self-center {
align-self: center; /* 侧轴居中对齐 */
}
.align-self-baseline {
align-self: baseline; /* 基线对齐 */
}
.align-self-stretch {
align-self: stretch; /* 拉伸对齐(默认) */
}
/* flex 示例 */
.flex-1 {
flex: 1; /* 子元素占据容器剩余空间 */
}
.flex-2 {
flex: 2; /* 子元素占据更多空间 */
}
.flex-auto {
flex: auto; /* 计算为 1 1 auto */
}
.flex-none {
flex: none; /* 计算为 0 0 auto */
}
</style>
</head>
<body>
<!-- Flex Direction Row -->
<div class="flex-container flex-direction-row">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
<!-- Flex Direction Row Reverse -->
<div class="flex-container flex-direction-row-reverse">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
<!-- Flex Direction Column -->
<div class="flex-container flex-direction-column">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
<!-- Flex Direction Column Reverse -->
<div class="flex-container flex-direction-column-reverse">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
<!-- Justify Content Flex Start -->
<div class="flex-container justify-content-flex-start">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
<!-- Justify Content Flex End -->
<div class="flex-container justify-content-flex-end">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
<!-- Justify Content Center -->
<div class="flex-container justify-content-center">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
<!-- Justify Content Space Between -->
<div class="flex-container justify-content-space-between">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
<!-- Justify Content Space Around -->
<div class="flex-container justify-content-space-around">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
<!-- Align Items Flex Start -->
<div class="flex-container align-items-flex-start">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
<!-- Align Items Flex End -->
<div class="flex-container align-items-flex-end">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
<!-- Align Items Center -->
<div class="flex-container align-items-center">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
<!-- Align Items Baseline -->
<div class="flex-container align-items-baseline">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
<!-- Align Items Stretch -->
<div class="flex-container align-items-stretch">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
</div>
<!-- Flex Wrap No Wrap -->
<div class="flex-container flex-wrap-nowrap">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
<div class="flex-item">4</div>
<div class="flex-item">5</div>
<div class="flex-item">6</div>
</div>
<!-- Flex Wrap Wrap -->
<div class="flex-container flex-wrap-wrap">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
<div class="flex-item">4</div>
<div class="flex-item">5</div>
<div class="flex-item">6</div>
</div>
<!-- Flex Wrap Wrap Reverse -->
<div class="flex-container flex-wrap-wrap-reverse">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
<div class="flex-item">4</div>
<div class="flex-item">5</div>
<div class="flex-item">6</div>
</div>
<!-- Align Content Flex Start -->
<div class="flex-container flex-wrap-wrap align-content-flex-start">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
<div class="flex-item">4</div>
<div class="flex-item">5</div>
<div class="flex-item">6</div>
</div>
<!-- Align Content Flex End -->
<div class="flex-container flex-wrap-wrap align-content-flex-end">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
<div class="flex-item">4</div>
<div class="flex-item">5</div>
<div class="flex-item">6</div>
</div>
<!-- Align Content Center -->
<div class="flex-container flex-wrap-wrap align-content-center">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
<div class="flex-item">4</div>
<div class="flex-item">5</div>
<div class="flex-item">6</div>
</div>
<!-- Align Content Space Between -->
<div class="flex-container flex-wrap-wrap align-content-space-between">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
<div class="flex-item">4</div>
<div class="flex-item">5</div>
<div class="flex-item">6</div>
</div>
<!-- Align Content Space Around -->
<div class="flex-container flex-wrap-wrap align-content-space-around">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
<div class="flex-item">4</div>
<div class="flex-item">5</div>
<div class="flex-item">6</div>
</div>
<!-- Align Content Stretch -->
<div class="flex-container flex-wrap-wrap align-content-stretch">
<div class="flex-item">1</div>
<div class="flex-item">2</div>
<div class="flex-item">3</div>
<div class="flex-item">4</div>
<div class="flex-item">5</div>
<div class="flex-item">6</div>
</div>
<!-- Order -->
<div class="flex-container flex-wrap-wrap">
<div class="flex-item order-1">1</div>
<div class="flex-item order-negative">2</div>
<div class="flex-item order-2">3</div>
</div>
<!-- Align Self -->
<div class="flex-container flex-direction-column">
<div class="flex-item align-self-flex-start">1</div>
<div class="flex-item align-self-flex-end">2</div>
<div class="flex-item align-self-center">3</div>
<div class="flex-item align-self-baseline">4</div>
<div class="flex-item align-self-stretch">5</div>
</div>
<!-- Flex -->
<div class="flex-container">
<div class="flex-item flex-1">1</div>
<div class="flex-item flex-2">2</div>
<div class="flex-item flex-auto">3</div>
<div class="flex-item flex-none">4</div>
</div>
</body>
</html>
1.12 css3显示方式
01.display 属性用于控制元素的显示方式。以下是一些常见的 display 属性值及其示例:
block:块级元素,会占据一整行。
inline:行内元素,不会占据整行。
inline-block:行内块元素,既具有块级元素的特性,又具有行内元素的特性。
flex:弹性盒子布局。
grid:块级网格容器。
inline-grid:行内网格容器。
none:隐藏元素,元素不占据空间。
---------------------------------------------------------------------------------------------------------
none: 元素不显示,且不占据任何空间。
block: 元素作为块级元素显示,占据父元素的全部宽度,并在前后添加换行符。
inline: 元素作为内联元素显示,只占据其内容所需的宽度,不会在前后添加换行符。
inline-block: 元素以内联形式显示,但可以设置宽度和高度,同时保持内联元素的特性。
flex: 元素作为弹性盒子容器显示,启用弹性布局模型。
inline-flex: 元素以内联形式显示,作为弹性盒子容器。
grid: 元素作为网格容器显示,启用网格布局模型。
inline-grid: 元素以内联形式显示,作为网格容器。
table: 元素以表格形式显示。
table-row: 元素以表格行形式显示。
table-cell: 元素以表格单元格形式显示。
list-item: 元素作为列表项显示。
contents: 元素的子元素作为它们的父元素显示,元素本身消失但子元素仍然保留。
run-in: 元素根据上下文显示为块级或内联级(较少使用)。
initial: 将 display 属性重置为其初始值。
inherit: 继承父元素的 display 属性值。
revert: 将 display 属性重置为用户代理样式表中的值。
unset: 移除当前元素上的 display 属性,行为类似于 initial 和 inherit 的组合。
---------------------------------------------------------------------------------------------------------
隐藏元素:display:none 或 visibility:hidden
02.说明
none: 元素不显示,且不占据任何空间。
block: 元素作为块级元素显示,占据父元素的全部宽度,并在前后添加换行符。
inline: 元素作为内联元素显示,只占据其内容所需的宽度,不会在前后添加换行符。
inline-block: 元素以内联形式显示,但可以设置宽度和高度,同时保持内联元素的特性。
flex: 元素作为弹性盒子容器显示,启用弹性布局模型。
inline-flex: 元素以内联形式显示,作为弹性盒子容器。
grid: 元素作为网格容器显示,启用网格布局模型。
inline-grid: 元素以内联形式显示,作为网格容器。
table: 元素以表格形式显示。
table-row: 元素以表格行形式显示。
table-cell: 元素以表格单元格形式显示。
list-item: 元素作为列表项显示。
contents: 元素的子元素作为它们的父元素显示,元素本身消失但子元素仍然保留。
run-in: 元素根据上下文显示为块级或内联级(较少使用)。
initial: 将 display 属性重置为其初始值。
inherit: 继承父元素的 display 属性值。
revert: 将 display 属性重置为用户代理样式表中的值。
unset: 移除当前元素上的 display 属性,行为类似于 initial 和 inherit 的组合。
02.样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Display 属性示例</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
/* Block Example */
.block-example {
display: block;
background-color: lightcoral;
padding: 10px;
margin-bottom: 10px;
}
/* Inline Example */
.inline-example {
display: inline;
background-color: lightgreen;
padding: 10px;
margin-right: 10px;
}
/* Inline-Block Example */
.inline-block-example {
display: inline-block;
background-color: lightblue;
padding: 10px;
margin-right: 10px;
}
/* Flex Example */
.flex-container {
display: flex;
background-color: lightgrey;
padding: 10px;
margin-bottom: 10px;
}
.flex-item {
background-color: cornflowerblue;
color: white;
padding: 10px;
margin-right: 10px;
}
/* Grid Example */
.grid-container {
display: grid;
grid-template-columns: repeat(3, 100px);
background-color: lightyellow;
padding: 10px;
margin-bottom: 10px;
}
.grid-item {
background-color: orange;
color: white;
padding: 10px;
text-align: center;
}
/* None Example */
.none-example {
display: none;
}
</style>
</head>
<body>
<!-- Block Example -->
<div class="block-example">Block Element</div>
<!-- Inline Example -->
<span class="inline-example">Inline Element 1</span>
<span class="inline-example">Inline Element 2</span>
<!-- Inline-Block Example -->
<div class="inline-block-example">Inline-Block Element 1</div>
<div class="inline-block-example">Inline-Block Element 2</div>
<!-- Flex Example -->
<div class="flex-container">
<div class="flex-item">Flex Item 1</div>
<div class="flex-item">Flex Item 2</div>
<div class="flex-item">Flex Item 3</div>
</div>
<!-- Grid Example -->
<div class="grid-container">
<div class="grid-item">Grid Item 1</div>
<div class="grid-item">Grid Item 2</div>
<div class="grid-item">Grid Item 3</div>
<div class="grid-item">Grid Item 4</div>
<div class="grid-item">Grid Item 5</div>
<div class="grid-item">Grid Item 6</div>
</div>
<!-- None Example -->
<div class="none-example">This element is hidden.</div>
</body>
</html>
1.13 css选择器
01.总结
通配符选择器 *
id选择器 #id
类选择器 .class 类.
标签选择器 div、h1-h6、p、span
---------------------------------------------------------------------------------------------------------
后代选择器 li a 子代、孙子代、... 样式会继承,选择<ul>,会给<ul>下面的<li>起作用
交集选择器 h1.hidden-display 样式不会继承,ul.mystyle{...}无法定位样式,会失效
并集选择器 h1,h2,p h1,h2会一起使这两个标签拥有一样的样式
---------------------------------------------------------------------------------------------------------
相邻兄弟选择器 h1 + p 只对后面的元素有效,无法选中前面的元素
普通兄弟选择器 e1 ~ e2 只对后面的元素有效,无法选中前面的元素
子元素选择器 ul > li 子代
---------------------------------------------------------------------------------------------------------
属性选择器 a[rel = "external"]
伪类选择器 a: hover、li:nth-child、li:nth-of-type
02.并集选择器
h1 {
color:green;
}
h2 {
color:green;
}
p {
color:green;
}
每个选择器用逗号分隔,对以上代码使用分组选择器
h1,h2,p
{
color:green;
}
03.嵌套选择器:
p{ }: 为所有 p 元素指定一个样式。
.marked{ }: 为所有 class="marked" 的元素指定一个样式。
.marked p{ }: 为所有 class="marked" 元素内的 p 元素指定一个样式。
p.marked{ }: 为所有 class="marked" 的 p 元素指定一个样式。
04.属性选择器
选择具有指定属性的元素 选择所有具有 href 属性的 <a> 元素 a[href] {color: blue;}
选择具有指定属性且其值完全匹配的元素 选择所有 type 属性值为 text 的 <input> 元素 input[type="text"] {border: 1px solid gray;}
选择具有指定属性且其值以指定的值开头的元素 选择所有 id 属性值以 btn- 开头的元素 [id^="btn-"] {background-color: lightblue;}
择具有指定属性且其值以指定的值结尾的元素 选择所有 href 属性值以 .jpg 结尾的链接 a[href$=".jpg"] { border: 2px solid red;}
选择具有指定属性且其值包含指定的值(用空格分隔)的元素 选择所有 class 属性值包含 highlight 的元素 [class~="highlight"] {background-color: yellow;}
选择具有指定属性且其值包含指定的值(以分隔符分隔)的元素 选择所有 lang 属性值以 en 开头的元素 [lang|="en"] {color: green;}
05.CSS伪类选择器
:after 在每个 <p> 元素之后插入内容。 p:after {content: " - Suffix";color: orange;}
:before 在每个 <p> 元素之前插入内容。 p:before {content: "Prefix: ";color: orange;}
:hover 选择鼠标悬停在元素上时的状态。 a:hover { color: red; }
:active 选择被用户点击的元素状态。 a:active { color: green; }
:focus 选择具有输入焦点的元素(如被选中的文本框)。 input:focus { border-color: blue; }
:visited 选择用户访问过的链接。 a:visited { color: purple; }
:link 选择尚未访问的链接。 a:link { color: blue; }
:first-child 选择父元素中的第一个子元素。 p:first-child { color: orange; }
:last-child 选择父元素中的最后一个子元素。 p:last-child { color: orange; }
:nth-child(n) 选择父元素中的第 n 个子元素(n 可以是数字、公式或关键词) li:nth-child(2) { color: red; }
:nth-of-type(n) 选择父元素中指定类型的第 n 个子元素(与 :nth-child 类似,但只计算特定类型的元素) p:nth-of-type(2) { color: red; }
:not(selector) 选择不匹配指定选择器的元素。 p:not(.special) { color: gray; }
:first-letter 选择每个 <p> 元素的第一个字母 p:first-letter {font-size: 2em;color: red;}
:first-line 选择每个 <p> 元素的第一行。 p:first-line {font-weight: bold;color: blue;}
:first-child 选择父元素中的第一个子元素为 <p> 元素的情况下的 <p> 元素。 p:first-child {color: green;}
06.CSS3伪类选择器
:nth-last-child(n) 选择从父元素末尾开始的第 n 个子元素。 li:nth-last-child(2) { color: red; }
:nth-last-of-type(n) 选择父元素中从末尾开始的第 n 个指定类型的子元素。 p:nth-last-of-type(2) { color: red; }
:first-of-type 选择父元素中第一个指定类型的子元素。 p:first-of-type { color: red; }
:last-of-type 选择父元素中最后一个指定类型的子元素。 p:last-of-type { color: red; }
:checked 选择已选中的 <input> 或 <option> 元素。 input:checked { background-color: yellow; }
:enabled 选择启用的表单元素。 input:enabled { border-color: blue; }
:disabled 选择禁用的表单元素。 input:disabled { background-color: gray; }
:required 选择必填表单元素。 input:required { border: 2px solid red; }
:optional 选择非必填表单元素。 input:optional { border: 2px solid green; }
:valid 选择验证通过的表单元素。 input:valid { border-color: green; }
:invalid 选择验证失败的表单元素。 input:invalid { border-color: red; }
:target 选择当前URL中的目标元素(即URL中包含的片段标识符对应的元素)。 #section:target { background-color: lightblue; }
:lang(language) 选择使用特定语言的元素。 p:lang(en) { color: blue; }
07.解释
a.tr:nth-child 属于伪类选择器
具体来说,nth-child 是一种结构性伪类选择器,用于选取某个元素的特定子元素。
例如,tr:nth-child(2) 会选择父元素中的第二个 <tr> 元素。
b.input[type="text"]:focus 是一个复合选择器
属性选择器:input[type="text"]
选择具有特定属性值的元素。在这个例子中,input[type="text"] 选择所有 type 属性为 text 的 input 元素。
-----------------------------------------------------------------------------------------------------
伪类选择器::focus
选择当前获得焦点的元素。在这个例子中,:focus 选择当 input[type="text"] 元素获得焦点时应用的样式。
c.h1.hidden-display实际上是 标签选择器 与 类选择器 的组合:
h1 是标签选择器,选择所有 <h1> 元素。
.hidden-display 是类选择器,选择所有具有 hidden-display 类的元素。
此,h1.hidden-display 选择所有同时具有 h1 标签和 hidden-display 类的元素。在这个例子中,它将作用于所有 <h1> 标签且具有 hidden-display 类的元素。
2 css
2.1 css尺寸
00.属性
width 设置元素的宽度。
height 设置元素的高度。
line-height 设置行高。
max-height 设置元素的最大高度。
max-width 设置元素的最大宽度。
min-height 设置元素的最小高度。
min-width 设置元素的最小宽度。
01.属性选项
a.width
auto: 默认值。浏览器计算元素的宽度。
<length>: 如 px, em, rem, vw 等。具体的长度值。
<percentage>: 父元素宽度的百分比。
inherit: 从父元素继承宽度值。
initial: 设置为默认值。
unset: 移除对当前元素的影响。
fit-content: 根据内容自适应宽度。
b.height
auto: 默认值。浏览器计算元素的高度。
<length>: 如 px, em, rem, vh 等。具体的长度值。
<percentage>: 父元素高度的百分比。
inherit: 从父元素继承高度值。
initial: 设置为默认值。
unset: 移除对当前元素的影响。
fit-content: 根据内容自适应高度。
c.line-height
normal: 默认值。根据元素的字体大小计算行高。
<number>: 一个数值,行高是字体大小的倍数。
<length>: 如 px, em, rem 等。具体的长度值。
<percentage>: 元素字体大小的百分比。
inherit: 从父元素继承行高。
initial: 设置为默认值。
unset: 移除对当前元素的影响。
d.max-height
none: 默认值。没有最大高度限制。
<length>: 如 px, em, rem, vh 等。具体的长度值。
<percentage>: 父元素高度的百分比。
inherit: 从父元素继承最大高度值。
initial: 设置为默认值。
unset: 移除对当前元素的影响。
fit-content: 根据内容自适应最大高度。
e.max-width
none: 默认值。没有最大宽度限制。
<length>: 如 px, em, rem, vw 等。具体的长度值。
<percentage>: 父元素宽度的百分比。
inherit: 从父元素继承最大宽度值。
initial: 设置为默认值。
unset: 移除对当前元素的影响。
fit-content: 根据内容自适应最大宽度。
f.min-height
auto: 默认值。没有最小高度限制。
<length>: 如 px, em, rem, vh 等。具体的长度值。
<percentage>: 父元素高度的百分比。
inherit: 从父元素继承最小高度值。
initial: 设置为默认值。
unset: 移除对当前元素的影响。
fit-content: 根据内容自适应最小高度。
g.min-width
auto: 默认值。没有最小宽度限制。
<length>: 如 px, em, rem, vw 等。具体的长度值。
<percentage>: 父元素宽度的百分比。
inherit: 从父元素继承最小宽度值。
initial: 设置为默认值。
unset: 移除对当前元素的影响。
fit-content: 根据内容自适应最小宽度。
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>CSS 尺寸 (Dimension) 属性示例</title>
<style>
.example {
border: 1px solid black;
background-color: lightgray;
margin: 10px;
padding: 10px;
}
/* 设置元素的高度 */
.height-example {
height: 150px;
}
/* 使用百分比设置图像的高度 */
.height-percent-example img {
height: 50%;
}
/* 使用像素值来设置元素的宽度 */
.width-example {
width: 300px;
}
/* 设置元素的最大高度 */
.max-height-example {
max-height: 100px;
overflow: auto;
}
/* 使用百分比来设置元素的最大宽度 */
.max-width-example {
max-width: 50%;
}
/* 设置元素的最低高度 */
.min-height-example {
min-height: 100px;
}
/* 使用像素值设置元素的最小宽度 */
.min-width-example {
min-width: 200px;
}
</style>
</head>
<body>
<h1>CSS 尺寸 (Dimension) 属性示例</h1>
<h2>设置元素的高度</h2>
<div class="example height-example">height: 150px;</div>
<h2>使用百分比设置图像的高度</h2>
<div class="example height-percent-example">
<img src="https://www.example.com/image.jpg" alt="示例图像" style="width: 100%;">
height: 50%;
</div>
<h2>使用像素值来设置元素的宽度</h2>
<div class="example width-example">width: 300px;</div>
<h2>设置元素的最大高度</h2>
<div class="example max-height-example">
max-height: 100px; (有溢出滚动条)
<p>这是一个很长的段落,用于测试最大高度属性。这个段落应该会被截断,并显示滚动条。</p>
</div>
<h2>使用百分比来设置元素的最大宽度</h2>
<div class="example max-width-example" style="width: 80%;">
max-width: 50%;
</div>
<h2>设置元素的最低高度</h2>
<div class="example min-height-example">min-height: 100px;</div>
<h2>使用像素值设置元素的最小宽度</h2>
<div class="example min-width-example">min-width: 200px;</div>
</body>
</html>
2.2 css边框
00.属性
border 简写属性,用于把针对四个边的属性设置在一个声明。
border-style 用于设置元素所有边框的样式,或者单独地为各边设置边框样式。
border-width 简写属性,用于为元素的所有边框设置宽度,或者单独地为各边边框设置宽度。
border-color 简写属性,设置元素的所有边框中可见部分的颜色,或为 4 个边分别设置颜色。
border-bottom 简写属性,用于把下边框的所有属性设置到一个声明中。
border-bottom-color 设置元素的下边框的颜色。
border-bottom-style 设置元素的下边框的样式。
border-bottom-width 设置元素的下边框的宽度。
border-left 简写属性,用于把左边框的所有属性设置到一个声明中。
border-left-color 设置元素的左边框的颜色。
border-left-style 设置元素的左边框的样式。
border-left-width 设置元素的左边框的宽度。
border-right 简写属性,用于把右边框的所有属性设置到一个声明中。
border-right-color 设置元素的右边框的颜色。
border-right-style 设置元素的右边框的样式。
border-right-width 设置元素的右边框的宽度。
border-top 简写属性,用于把上边框的所有属性设置到一个声明中。
border-top-color 设置元素的上边框的颜色。
border-top-style 设置元素的上边框的样式。
border-top-width 设置元素的上边框的宽度。
border-radius 设置圆角的边框。
01.属性选项
a.border
border 属性是一个简写属性,可以在一个声明中设置所有边框的宽度、样式和颜色。格式为:border: width style color;
示例:
/* 设置所有边的边框宽度为2px,样式为solid,颜色为red */
border: 2px solid red;
b.border-style
border-style 属性用于设置元素所有边框的样式,或者单独地为各边设置边框样式。
可选值:
none: 默认无边框
dotted: 点线边框
dashed: 虚线边框
solid: 实线边框
double: 双实线边框
groove: 3D沟槽边框
ridge: 3D脊边框
inset: 3D嵌入边框
outset: 3D突出边框
示例:
/* 设置所有边的边框样式为dotted */
border-style: dotted;
/* 分别设置四个边的边框样式 */
border-style: dotted solid double dashed;
c.border-width
border-width 属性是一个简写属性,用于为元素的所有边框设置宽度,或者单独地为各边边框设置宽度。可以指定长度值或使用关键字。
可选值:
长度值:如 2px, 0.1em
关键字:thin, medium, thick
示例:
/* 设置所有边的边框宽度为5px */
border-width: 5px;
/* 分别设置四个边的边框宽度 */
border-width: 2px 4px 6px 8px;
d.border-color
border-color 属性是一个简写属性,设置元素的所有边框中可见部分的颜色,或为四个边分别设置颜色。
可选值:
颜色名称:如 red
RGB 值:如 rgb(255,0,0)
十六进制值:如 #ff0000
transparent: 透明
示例:
/* 设置所有边的边框颜色为red */
border-color: red;
/* 分别设置四个边的边框颜色 */
border-color: red green blue yellow;
e.border-bottom
border-bottom 属性是一个简写属性,用于把下边框的所有属性设置到一个声明中。
示例:
/* 设置下边框的宽度为2px,样式为solid,颜色为red */
border-bottom: 2px solid red;
f.border-bottom-color
border-bottom-color 属性设置元素的下边框的颜色。
示例:
/* 设置下边框的颜色为blue */
border-bottom-color: blue;
g.border-bottom-style
border-bottom-style 属性设置元素的下边框的样式。
示例:
/* 设置下边框的样式为dotted */
border-bottom-style: dotted;
h.border-bottom-width
border-bottom-width 属性设置元素的下边框的宽度。
示例:
/* 设置下边框的宽度为5px */
border-bottom-width: 5px;
i.border-left
border-left 属性是一个简写属性,用于把左边框的所有属性设置到一个声明中。
示例:
/* 设置左边框的宽度为3px,样式为solid,颜色为green */
border-left: 3px solid green;
j.border-left-color
border-left-color 属性设置元素的左边框的颜色。
示例:
/* 设置左边框的颜色为green */
border-left-color: green;
k.border-left-style
border-left-style 属性设置元素的左边框的样式。
示例:
/* 设置左边框的样式为dashed */
border-left-style: dashed;
l.border-left-width
border-left-width 属性设置元素的左边框的宽度。
示例:
/* 设置左边框的宽度为4px */
border-left-width: 4px;
m.border-right
border-right 属性是一个简写属性,用于把右边框的所有属性设置到一个声明中。
示例:
/* 设置右边框的宽度为2px,样式为solid,颜色为blue */
border-right: 2px solid blue;
n.border-right-color
border-right-color 属性设置元素的右边框的颜色。
示例:
/* 设置右边框的颜色为purple */
border-right-color: purple;
o.border-right-style
border-right-style 属性设置元素的右边框的样式。
示例:
/* 设置右边框的样式为groove */
border-right-style: groove;
p.border-right-width
border-right-width 属性设置元素的右边框的宽度。
示例:
/* 设置右边框的宽度为5px */
border-right-width: 5px;
q.border-top
border-top 属性是一个简写属性,用于把上边框的所有属性设置到一个声明中。
示例:
/* 设置上边框的宽度为3px,样式为solid,颜色为red */
border-top: 3px solid red;
r.border-top-color
border-top-color 属性设置元素的上边框的颜色。
示例:
/* 设置上边框的颜色为red */
border-top-color: red;
s.border-top-style
border-top-style 属性设置元素的上边框的样式。
示例:
/* 设置上边框的样式为ridge */
border-top-style: ridge;
t.border-top-width
border-top-width 属性设置元素的上边框的宽度。
示例:
/* 设置上边框的宽度为4px */
border-top-width: 4px;
u.border-radius
border-radius 属性设置圆角的边框。
可选值:
长度值:如 10px, 1em
百分比:如 50%
示例:
/* 设置圆角边框的半径为15px */
border-radius: 15px;
/* 设置每个角的圆角半径 */
border-radius: 10px 20px 30px 40px;
/* 设置水平和垂直半径 */
border-radius: 10px 20px / 30px 40px;
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS边框属性示例</title>
<style>
/* 通用样式 */
.container {
margin: 20px;
}
.example {
margin: 20px 0;
padding: 10px;
border: 1px solid #ccc;
}
/* 边框样式 */
.border-style-example {
border-style: dotted solid double dashed;
}
/* 边框宽度 */
.border-width-example {
border-width: 2px 4px 6px 8px;
border-style: solid;
}
/* 边框颜色 */
.border-color-example {
border-color: red green blue yellow;
border-style: solid;
}
/* 单独设置各边的边框 */
.individual-borders-example {
border-top-style: dotted;
border-right-style: solid;
border-bottom-style: double;
border-left-style: dashed;
}
/* 简写属性 */
.shorthand-example {
border: 5px solid red;
}
/* 下边框样式 */
.border-bottom-style-example {
border-bottom-style: solid;
border-bottom-width: 5px;
border-bottom-color: blue;
}
/* 左边框宽度 */
.border-left-width-example {
border-left-width: 10px;
border-left-style: solid;
border-left-color: green;
}
/* 四个边框颜色 */
.four-border-color-example {
border-style: solid;
border-width: 5px;
border-top-color: red;
border-right-color: green;
border-bottom-color: blue;
border-left-color: yellow;
}
/* 右边框颜色 */
.border-right-color-example {
border-right-color: purple;
border-right-style: solid;
border-right-width: 5px;
}
/* 圆角边框 */
.border-radius-example {
border: 2px solid black;
border-radius: 15px;
}
</style>
</head>
<body>
<div class="container">
<!-- 边框样式示例 -->
<div class="example border-style-example">
<p>这是一个边框样式示例,包括:dotted、solid、double、dashed</p>
</div>
<!-- 边框宽度示例 -->
<div class="example border-width-example">
<p>这是一个边框宽度示例,不同的边框有不同的宽度:2px、4px、6px、8px</p>
</div>
<!-- 边框颜色示例 -->
<div class="example border-color-example">
<p>这是一个边框颜色示例,不同的边框有不同的颜色:red、green、blue、yellow</p>
</div>
<!-- 单独设置各边的边框 -->
<div class="example individual-borders-example">
<p>这是一个单独设置各边的边框示例:上 dotted,右 solid,底 double,左 dashed</p>
</div>
<!-- 简写属性示例 -->
<div class="example shorthand-example">
<p>这是一个简写属性示例:border: 5px solid red</p>
</div>
<!-- 下边框样式示例 -->
<div class="example border-bottom-style-example">
<p>这是一个下边框样式示例:border-bottom: 5px solid blue</p>
</div>
<!-- 左边框宽度示例 -->
<div class="example border-left-width-example">
<p>这是一个左边框宽度示例:border-left: 10px solid green</p>
</div>
<!-- 四个边框颜色示例 -->
<div class="example four-border-color-example">
<p>这是一个四个边框颜色示例:上 red,右 green,底 blue,左 yellow</p>
</div>
<!-- 右边框颜色示例 -->
<div class="example border-right-color-example">
<p>这是一个右边框颜色示例:border-right: 5px solid purple</p>
</div>
<!-- 圆角边框示例 -->
<div class="example border-radius-example">
<p>这是一个圆角边框示例:border-radius: 15px</p>
</div>
</div>
</body>
</html>
2.3 css轮廓
00.属性
outline 一个简写属性,用于在一个声明中设置所有的轮廓属性。
outline-color 用于设置轮廓的颜色
outline-style 用于设置轮廓的样式
outline-width 用于设置轮廓的宽度
01.属性选项
a.outline
outline 属性是一个简写属性,用于在一个声明中设置所有的轮廓属性。其值可以包括以下属性:
outline-color
outline-style
outline-width
-----------------------------------------------------------------------------------------------------
/* 在一个声明中设置轮廓颜色、样式和宽度 */
.element {
outline: 2px solid red;
}
b.outline-color
utline-color 属性用于设置轮廓的颜色。其值可以是:
color-name: 颜色名称(例如 red, blue, green)
hex-number: 十六进制颜色值(例如 #ff0000, #00ff00, #0000ff)
rgb-number: RGB颜色值(例如 rgb(255,0,0), rgb(0,255,0), rgb(0,0,255))
invert: 将颜色反转以确保轮廓的对比度
inherit: 继承父元素的轮廓颜色
-----------------------------------------------------------------------------------------------------
/* 使用颜色名称 */
.element {
outline-color: red;
}
/* 使用十六进制颜色值 */
.element {
outline-color: #00ff00;
}
/* 使用RGB颜色值 */
.element {
outline-color: rgb(0, 0, 255);
}
/* 使用反转颜色 */
.element {
outline-color: invert;
}
c.outline-style
outline-style 属性用于设置轮廓的样式。其值可以是:
none: 无轮廓
dotted: 点状线
dashed: 虚线
solid: 实线
double: 双线
groove: 沟槽线
ridge: 垄状线
inset: 内嵌线
outset: 外嵌线
inherit: 继承父元素的轮廓样式
-----------------------------------------------------------------------------------------------------
/* 设置点状线 */
.element {
outline-style: dotted;
}
/* 设置虚线 */
.element {
outline-style: dashed;
}
/* 设置实线 */
.element {
outline-style: solid;
}
/* 设置双线 */
.element {
outline-style: double;
}
d.outline-width
outline-width 属性用于设置轮廓的宽度。其值可以是:
thin: 细线
medium: 中等宽度的线
thick: 粗线
length: 具体的长度值(例如 px, em, rem)
inherit: 继承父元素的轮廓宽度
-----------------------------------------------------------------------------------------------------
/* 设置细线 */
.element {
outline-width: thin;
}
/* 设置中等宽度的线 */
.element {
outline-width: medium;
}
/* 设置粗线 */
.element {
outline-width: thick;
}
/* 设置具体的长度值 */
.element {
outline-width: 3px;
}
02.样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Outline Properties</title>
<style>
/* 基本样式 */
.example {
margin: 20px;
padding: 10px;
width: 200px;
text-align: center;
}
/* 设置轮廓颜色 */
.outline-color-name {
outline: 2px solid;
outline-color: red;
}
.outline-color-hex {
outline: 2px solid;
outline-color: #00ff00;
}
.outline-color-rgb {
outline: 2px solid;
outline-color: rgb(0, 0, 255);
}
.outline-color-invert {
outline: 2px solid;
outline-color: invert;
}
/* 设置轮廓宽度 */
.outline-width-thin {
outline: thin solid black;
}
.outline-width-medium {
outline: medium solid black;
}
.outline-width-thick {
outline: thick solid black;
}
.outline-width-length {
outline: 5px solid black;
}
</style>
</head>
<body>
<h1>CSS Outline Properties Examples</h1>
<h2>Outline Color</h2>
<p class="example outline-color-name">Outline Color: 红色轮廓</p>
<p class="example outline-color-hex">Outline Color: 十六进制颜色轮廓</p>
<p class="example outline-color-rgb">Outline Color: RGB颜色轮廓</p>
<p class="example outline-color-invert">Outline Color: 反转颜色轮廓</p>
<h2>Outline Width</h2>
<p class="example outline-width-thin">Outline Width: 细线轮廓</p>
<p class="example outline-width-medium">Outline Width: 中等宽度轮廓</p>
<p class="example outline-width-thick">Outline Width: 粗线轮廓</p>
<p class="example outline-width-length">Outline Width: 5px 轮廓</p>
</body>
</html>
2.4 css外边距
00.属性
margin 简写属性。在一个声明中设置所有外边距属性。
margin-bottom 设置元素的下外边距。
margin-left 设置元素的左外边距。
margin-right 设置元素的右外边距。
margin-top 设置元素的上外边距。
01.属性选项
a.margin
margin 是一个简写属性,可以在一个声明中设置所有四个外边距。它可以接受一个到四个值
-----------------------------------------------------------------------------------------------------
一个值: 四个方向的边距相同。
margin: 20px;
-----------------------------------------------------------------------------------------------------
两个值: 第一个值设置上下边距,第二个值设置左右边距。
margin: 20px 10px;
-----------------------------------------------------------------------------------------------------
三个值: 第一个值设置上边距,第二个值设置左右边距,第三个值设置下边距。
margin: 20px 10px 30px;
-----------------------------------------------------------------------------------------------------
四个值: 顺时针方向依次为上、右、下、左边距。(顺时针)
margin: 20px 10px 30px 40px;
b.margin-top、margin-bottom、margin-left、margin-right 单边属性
auto: 浏览器会根据需要自动计算边距。
margin-top: auto;
-----------------------------------------------------------------------------------------------------
长度值(length): 可以是 px, pt, cm, em 等单位。
margin-top: 20px;
margin-bottom: 1em;
-----------------------------------------------------------------------------------------------------
百分比值(%): 相对于包含元素的宽度。
margin-left: 10%;
-----------------------------------------------------------------------------------------------------
负值: 可以使用负值使内容重叠。
margin-right: -10px;
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>CSS Margin 属性示例</title>
<style>
/* 设置边框以便可视化外边距效果 */
.example {
border: 1px solid black;
}
/* margin 简写属性 */
.margin-example-1 {
margin: 100px 50px;
}
.margin-example-2 {
margin: 25px 50px 75px 100px;
}
.margin-example-3 {
margin: 25px 50px;
}
.margin-example-4 {
margin: 25px;
}
/* margin 单边属性 */
.margin-top-example {
margin-top: 100px;
}
.margin-bottom-example {
margin-bottom: 100px;
}
.margin-right-example {
margin-right: 50px;
}
.margin-left-example {
margin-left: 50px;
}
/* 使用不同单位设置 margin */
.margin-cm-example {
margin-top: 2cm;
}
.margin-percent-example {
margin-bottom: 10%;
}
</style>
</head>
<body>
<h1>CSS Margin 属性示例</h1>
<h2>margin 简写属性</h2>
<div class="example margin-example-1">
margin: 100px 50px;
</div>
<div class="example margin-example-2">
margin: 25px 50px 75px 100px;
</div>
<div class="example margin-example-3">
margin: 25px 50px;
</div>
<div class="example margin-example-4">
margin: 25px;
</div>
<h2>margin 单边属性</h2>
<div class="example margin-top-example">
margin-top: 100px;
</div>
<div class="example margin-bottom-example">
margin-bottom: 100px;
</div>
<div class="example margin-right-example">
margin-right: 50px;
</div>
<div class="example margin-left-example">
margin-left: 50px;
</div>
<h2>使用不同单位设置 margin</h2>
<div class="example margin-cm-example">
margin-top: 2cm;
</div>
<div class="example margin-percent-example">
margin-bottom: 10%;
</div>
</body>
</html>
2.5 css内边距
00.属性
padding 使用简写属性设置在一个声明中的所有填充属性
padding-bottom 设置元素的底部填充
padding-left 设置元素的左部填充
padding-right 设置元素的右部填充
padding-top 设置元素的顶部填充
01.属性选项
a.padding
padding 简写属性可以在一个声明中设置元素的所有内边距。它有以下几种选项:
一个值:例如 padding: 20px;,表示所有四个方向的内边距都是 20px。
两个值:例如 padding: 10px 20px;,第一个值表示上和下的内边距,第二个值表示左和右的内边距。
三个值:例如 padding: 10px 20px 30px;,第一个值表示上内边距,第二个值表示左右内边距,第三个值表示下内边距。
四个值:例如 padding: 10px 20px 30px 40px;,按顺时针顺序分别表示上、右、下、左的内边距。
b.padding-bottom
padding-bottom 属性专门设置元素底部的内边距。可接受的选项有:
长度值:例如 padding-bottom: 20px;,可以是 px、em、rem 等单位。
百分比:例如 padding-bottom: 10%;,相对于父元素的宽度计算百分比。
继承值:例如 padding-bottom: inherit;,从父元素继承内边距值。
c.padding-left
padding-left 属性专门设置元素左边的内边距。可接受的选项同 padding-bottom:
长度值:例如 padding-left: 20px;。
百分比:例如 padding-left: 10%;。
继承值:例如 padding-left: inherit;。
d.padding-right
padding-right 属性专门设置元素右边的内边距。可接受的选项同 padding-bottom:
长度值:例如 padding-right: 20px;。
百分比:例如 padding-right: 10%;。
继承值:例如 padding-right: inherit;。
e.padding-top
padding-top 属性专门设置元素顶部的内边距。可接受的选项同 padding-bottom:
长度值:例如 padding-top: 20px;。
百分比:例如 padding-top: 10%;。
继承值:例如 padding-top: inherit;。
02.样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Padding Examples</title>
<style>
/* 基本样式 */
.example {
margin: 20px;
padding: 10px;
background-color: #f0f0f0;
border: 1px solid #ccc;
}
/* 单边内边距属性 */
.padding-top {
padding-top: 25px;
}
.padding-bottom {
padding-bottom: 25px;
}
.padding-right {
padding-right: 50px;
}
.padding-left {
padding-left: 50px;
}
/* 简写属性 */
.padding-short-1 {
padding: 25px 50px 75px 100px;
}
.padding-short-2 {
padding: 25px 50px 75px;
}
.padding-short-3 {
padding: 25px 50px;
}
.padding-short-4 {
padding: 25px;
}
</style>
</head>
<body>
<h1>CSS Padding Examples</h1>
<h2>Padding - 单边内边距属性</h2>
<p class="example padding-top">上内边距是 25px</p>
<p class="example padding-bottom">下内边距是 25px</p>
<p class="example padding-right">右内边距是 50px</p>
<p class="example padding-left">左内边距是 50px</p>
<h2>Padding - 简写属性</h2>
<p class="example padding-short-1">上填充为 25px,右填充为 50px,下填充为 75px,左填充为 100px</p>
<p class="example padding-short-2">上填充为 25px,左右填充为 50px,下填充为 75px</p>
<p class="example padding-short-3">上下填充为 25px,左右填充为 50px</p>
<p class="example padding-short-4">所有填充都是 25px</p>
</body>
</html>
2.6 css定位
00.属性(相对位置,父div移动,子div也会移动)
bottom 定义了定位元素下外边距边界与其包含块下边界之间的偏移
clip 用于裁剪一个绝对定位的元素(已被 clip-path 取代,clip 已过时)
cursor 定义当鼠标悬停在元素上时显示的光标样式
left 定义了定位元素左外边距边界与其包含块左边界之间的偏移
overflow 定义当元素的内容溢出其区域时的处理方式
overflow-y 指定如何处理顶部/底部边缘的内容溢出元素的内容区域
overflow-x 指定如何处理右边/左边边缘的内容溢出元素的内容区域
position 指定元素的定位类型
right 定义了定位元素右外边距边界与其包含块右边界之间的偏移
top 定义了定位元素的上外边距边界与其包含块上边界之间的偏移
z-index 设置元素的堆叠顺序,控制元素在 Z 轴上的层次关系
01.属性选项
a.bottom
定义了定位元素下外边距边界与其包含块下边界之间的偏移。
auto:默认值,表示浏览器自动计算。
length:使用具体的长度单位,如 px, em, rem。
%:使用百分比,相对于包含块的高度。
b.clip
用于裁剪一个绝对定位的元素(已被 clip-path 取代,clip 已过时)。
auto:默认值,裁剪区域由内容决定。
rect(top, right, bottom, left):裁剪区域的矩形定义(旧用法)。
c.cursor
定义当鼠标悬停在元素上时显示的光标样式。
auto:默认光标。
default:标准箭头光标。
pointer:手形光标(常用于链接)。
move:移动光标。
text:文本光标(I-beam)。
wait:等待光标(沙漏或转轮)。
help:帮助光标。
crosshair:十字光标。
e-resize, ne-resize, nw-resize, n-resize, se-resize, sw-resize, s-resize, w-resize:各种方向的调整光标。
url():指定自定义光标。
d.left
定义了定位元素左外边距边界与其包含块左边界之间的偏移。
auto:默认值,表示浏览器自动计算。
length:使用具体的长度单位,如 px, em, rem。
%:使用百分比,相对于包含块的宽度。
e.overflow
定义当元素的内容溢出其区域时的处理方式。
visible:内容溢出时仍可见,默认值。
hidden:内容溢出时被裁剪,不显示溢出的内容。
scroll:内容溢出时显示滚动条,内容可以滚动查看。
auto:内容溢出时自动显示滚动条(视情况而定)。
f.overflow-y
指定如何处理顶部/底部边缘的内容溢出元素的内容区域。
visible:内容溢出时仍可见。
hidden:内容溢出时被裁剪。
scroll:内容溢出时显示垂直滚动条。
auto:内容溢出时自动显示垂直滚动条
g.overflow-x
指定如何处理右边/左边边缘的内容溢出元素的内容区域。
visible:内容溢出时仍可见。
hidden:内容溢出时被裁剪。
scroll:内容溢出时显示水平滚动条。
auto:内容溢出时自动显示水平滚动条。
h.position
指定元素的定位类型。
static:默认定位,元素按照正常文档流排列。
relative:相对定位,相对于元素正常位置偏移。
absolute:绝对定位,相对于最近的已定位父元素定位。
fixed:固定定位,相对于浏览器窗口固定位置。
sticky:粘性定位,根据用户的滚动位置在 relative 和 fixed 之间切换。
i.right
定义了定位元素右外边距边界与其包含块右边界之间的偏移。
auto:默认值,表示浏览器自动计算。
length:使用具体的长度单位,如 px, em, rem。
%:使用百分比,相对于包含块的宽度。
j.top
定义了定位元素的上外边距边界与其包含块上边界之间的偏移。
auto:默认值,表示浏览器自动计算。
length:使用具体的长度单位,如 px, em, rem。
%:使用百分比,相对于包含块的高度。
k.z-index
设置元素的堆叠顺序,控制元素在 Z 轴上的层次关系。
auto:默认值,元素的堆叠顺序由文档流决定。
number:一个整数,定义元素的堆叠顺序,值越大,元素越靠前(覆盖其他元素)。
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS 属性示例</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
.container {
margin-bottom: 20px;
padding: 10px;
border: 1px solid #ccc;
position: relative; /* 使容器具有相对定位,方便绝对定位的子元素 */
}
.example {
margin: 10px 0;
padding: 10px;
border: 1px solid #ddd;
}
.static {
position: static;
border: 3px solid #73AD21;
background-color: #f0f8ff;
}
.fixed {
position: fixed;
top: 30px;
right: 5px;
background-color: #ffebcd;
padding: 10px;
border: 3px solid #ff6347;
}
.relative {
position: relative;
left: 20px;
top: 10px;
background-color: #e0ffff;
padding: 10px;
border: 3px solid #20b2aa;
}
.absolute {
position: absolute;
left: 100px;
top: 150px;
background-color: #f5deb3;
padding: 10px;
border: 3px solid #8b4513;
}
.sticky {
position: -webkit-sticky; /* Safari */
position: sticky;
top: 0;
background-color: #d3d3d3;
padding: 10px;
border: 3px solid #a52a2a;
}
.clip-example {
position: absolute;
width: 150px;
height: 150px;
background-color: #ffcccb;
clip: rect(20px, 100px, 100px, 20px); /* 旧用法 */
}
.cursor-example {
cursor: pointer;
padding: 10px;
border: 1px solid #aaa;
background-color: #f5f5f5;
}
.overflow-example {
width: 200px;
height: 100px;
overflow: auto;
background-color: #f0f8ff;
border: 1px solid #aaa;
}
.overflow-x-example {
width: 200px;
height: 100px;
overflow-x: scroll;
background-color: #f0f8ff;
border: 1px solid #aaa;
}
.overflow-y-example {
width: 100px;
height: 100px;
overflow-y: scroll;
background-color: #f0f8ff;
border: 1px solid #aaa;
}
.zindex-example {
position: absolute;
left: 50px;
top: 50px;
z-index: 1;
background-color: #ffcccb;
padding: 10px;
border: 1px solid #ff4500;
}
.zindex-overlay {
position: absolute;
left: 70px;
top: 70px;
z-index: 0;
background-color: #add8e6;
padding: 10px;
border: 1px solid #4682b4;
}
</style>
</head>
<body>
<h1>CSS 属性示例</h1>
<div class="container">
<h2>position: static</h2>
<div class="example static">这是使用静态定位的元素。遵循正常文档流。</div>
</div>
<div class="container">
<h2>position: fixed</h2>
<div class="example fixed">这是使用固定定位的元素。相对于浏览器窗口固定位置,即使滚动页面也不会移动。</div>
</div>
<div class="container">
<h2>position: relative</h2>
<div class="example relative">这是使用相对定位的元素。相对于其正常位置偏移。</div>
</div>
<div class="container">
<h2>position: absolute</h2>
<div class="example absolute">这是使用绝对定位的元素。相对于最近的已定位父元素定位。</div>
</div>
<div class="container">
<h2>position: sticky</h2>
<div class="example sticky">这是使用粘性定位的元素。当滚动到一定位置时,元素变为固定定位。</div>
</div>
<div class="container">
<h2>clip 属性示例</h2>
<div class="clip-example">裁剪区域示例(旧用法,clip-path 更现代)。</div>
</div>
<div class="container">
<h2>cursor 属性示例</h2>
<div class="cursor-example">鼠标悬停时显示手形光标(pointer)。</div>
</div>
<div class="container">
<h2>overflow 属性示例</h2>
<div class="overflow-example">内容溢出时显示滚动条。<br>这是一个很长的文本示例,用于展示滚动条效果。内容溢出时会显示滚动条。</div>
</div>
<div class="container">
<h2>overflow-x 属性示例</h2>
<div class="overflow-x-example">内容水平溢出时显示水平滚动条。</div>
</div>
<div class="container">
<h2>overflow-y 属性示例</h2>
<div class="overflow-y-example">内容垂直溢出时显示垂直滚动条。</div>
</div>
<div class="container">
<h2>z-index 属性示例</h2>
<div class="zindex-overlay">底层元素(z-index: 0)</div>
<div class="zindex-example">上层元素(z-index: 1)</div>
</div>
</body>
</html>
2.7 css溢出
01.Overflow属性
visible 默认值。内容不会被修剪,会呈现在元素框之外
hidden 内容会被修剪,并且其余内容是不可见的
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容
inherit 规定应该从父元素继承 overflow 属性的值
02.样式
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Overflow 示例</title>
<style>
div {
width: 200px;
height: 50px;
background-color: #eee;
margin: 10px;
}
.visible {
overflow: visible;
}
.hidden {
overflow: hidden;
}
.scroll {
overflow: scroll;
}
.auto {
overflow: auto;
}
.inherit {
overflow: inherit;
}
</style>
</head>
<body>
<h2>CSS Overflow 示例</h2>
<div class="visible">这里的文本内容会溢出元素框。</div>
<div class="hidden">这里的文本内容会被修剪。</div>
<div class="scroll">这里的文本内容会被修剪,但会显示滚动条以查看其余内容。</div>
<div class="auto">这里的文本内容会被修剪,浏览器会自动显示滚动条。</div>
<div class="inherit">这里的文本内容会继承父元素的 overflow 属性。</div>
</body>
</html>
2.8 css浮动
00.属性
float 指定一个元素是否允许浮动,以及浮动的方向
clear 属性控制一个元素的浮动行为,指定元素周围不允许出现浮动元素
01.属性选项
a.float属性
float 属性指定一个元素是否允许浮动,以及浮动的方向。
float: left:将元素浮动到其包含块的左侧,其他内容会环绕在其右侧。
float: right:将元素浮动到其包含块的右侧,其他内容会环绕在其左侧。
float: none:默认值,元素不浮动,正常按照文档流布局。
float: inherit:从父元素继承浮动属性。
示例:
.float-left {
float: left;
}
.float-right {
float: right;
}
.float-none {
float: none;
}
b.clear属性
clear 属性控制一个元素的浮动行为,指定元素周围不允许出现浮动元素。
clear: left:清除左侧的浮动元素,元素将位于其左侧所有浮动元素的下方。
clear: right:清除右侧的浮动元素,元素将位于其右侧所有浮动元素的下方。
clear: both:清除左右两侧的浮动元素,元素将位于所有浮动元素的下方。
clear: none:默认值,元素不清除任何浮动,浮动元素可能会出现在其周围。
clear: inherit:从父元素继承清除浮动的行为。
示例:
.clear-left {
clear: left;
}
.clear-right {
clear: right;
}
.clear-both {
clear: both;
}
.clear-none {
clear: none;
}
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Float 和 Clear 属性示例</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
.container {
margin-bottom: 20px;
padding: 10px;
border: 1px solid #ccc;
position: relative;
}
.example {
margin: 10px 0;
padding: 10px;
border: 1px solid #ddd;
}
.float-left {
float: left;
width: 150px;
height: 100px;
margin: 5px;
background-color: #ffebcd;
border: 2px solid #ff6347;
}
.float-right {
float: right;
width: 150px;
height: 100px;
margin: 5px;
background-color: #e0ffff;
border: 2px solid #20b2aa;
}
.clear-both {
clear: both;
background-color: #f5f5f5;
padding: 10px;
border: 2px solid #aaa;
}
.thumbnail {
float: left;
width: 110px;
height: 90px;
margin: 5px;
background-color: #f0f8ff;
border: 2px solid #4682b4;
}
.text-line {
clear: both;
background-color: #ffcccb;
padding: 10px;
border: 2px solid #ff4500;
}
</style>
</head>
<body>
<h1>CSS Float 和 Clear 属性示例</h1>
<div class="container">
<h2>float: left</h2>
<div class="example float-left">这是一个向左浮动的元素。</div>
<div class="example float-left">另一个向左浮动的元素。它会在第一个浮动元素的旁边显示。</div>
</div>
<div class="container">
<h2>float: right</h2>
<div class="example float-right">这是一个向右浮动的元素。</div>
<div class="example float-right">另一个向右浮动的元素。它会在第一个浮动元素的旁边显示。</div>
</div>
<div class="container">
<h2>使用 float 属性的图片廊</h2>
<div class="thumbnail">图片1</div>
<div class="thumbnail">图片2</div>
<div class="thumbnail">图片3</div>
</div>
<div class="container">
<h2>使用 clear 属性</h2>
<div class="example float-left">向左浮动的元素。</div>
<div class="example float-right">向右浮动的元素。</div>
<div class="clear-both">使用 clear: both; 清除浮动。</div>
<p>这个段落文本会在清除浮动元素之后显示。</p>
</div>
<div class="container">
<h2>浮动图像与文本环绕</h2>
<img src="https://via.placeholder.com/150" alt="示例图片" style="float: right; margin: 0 0 10px 10px;">
<p>这是一个示例段落,文本会环绕在图片的左侧。使用 float 属性可以让图片与文本一起显示,图片在右侧,文本在左侧环绕。</p>
</div>
<div class="container">
<h2>清除浮动示例</h2>
<div class="thumbnail">图片1</div>
<div class="thumbnail">图片2</div>
<div class="text-line">使用 clear: both; 清除浮动后的区域。</div>
<p>这个段落会在清除浮动元素之后显示,避免浮动影响。</p>
</div>
</body>
</html>
2.9 网格布局
00.属性
column-gap 指定列之间的间隙
gap row-gap 和 column-gap 的简写属性
grid grid-template-rows, grid-template-columns, grid-template-areas, grid-auto-rows, grid-auto-columns, 以及 grid-auto-flow 的简写属性
grid-area 指定网格元素的名称,或者也可以是 grid-row-start, grid-column-start, grid-row-end, 和 grid-column-end 的简写属性
grid-auto-columns 指的默认的列尺寸
grid-auto-flow 指定自动布局算法怎样运作,精确指定在网格中被自动布局的元素怎样排列。
grid-auto-rows 指的默认的行尺寸
grid-column grid-column-start 和 grid-column-end 的简写属性
grid-column-end 指定网格元素列的结束位置
grid-column-gap 指定网格元素的间距大小
grid-column-start 指定网格元素列的开始位置
grid-gap grid-row-gap 和 grid-column-gap 的简写属性
grid-row grid-row-start 和 grid-row-end 的简写属性
grid-row-end 指定网格元素行的结束位置
grid-row-gap 指定网格元素的行间距
grid-row-start 指定网格元素行的开始位置
grid-template grid-template-rows, grid-template-columns 和 grid-areas 的简写属性
grid-template-areas 指定如何显示行和列,使用命名的网格元素
grid-template-columns 指定列的大小,以及网格布局中设置列的数量
grid-template-rows 指定网格布局中行的大小
row-gap 指定两个行之间的间距
01.属性选项
a.column-gap
描述:指定列之间的间隙。
选项:
长度单位(如 px、em、rem):例如 10px、2em。
百分比:例如 5%。
.grid-container {
column-gap: 20px; /* 列间距 20 像素 */
}
b.gap
描述:row-gap 和 column-gap 的简写属性。
选项:
row-gap:行间距。
column-gap:列间距。
示例:
.grid-container {
gap: 10px 20px; /* 行间距 10 像素,列间距 20 像素 */
}
c.grid
描述:grid-template-rows、grid-template-columns、grid-template-areas、grid-auto-rows、grid-auto-columns 以及 grid-auto-flow 的简写属性。
选项:
grid-template-rows:定义行轨道。
grid-template-columns:定义列轨道。
grid-template-areas:定义区域。
grid-auto-rows:默认行尺寸。
grid-auto-columns:默认列尺寸。
grid-auto-flow:自动布局算法。
示例:
.grid-container {
grid:
"header header" 100px
"main sidebar" 1fr
"footer footer" 50px
/ 1fr 2fr;
}
d.grid-area
描述:指定网格元素的名称,或 grid-row-start、grid-column-start、grid-row-end 和 grid-column-end 的简写属性。
选项:
name:网格区域名称。
grid-row-start、grid-column-start、grid-row-end、grid-column-end:指定网格线的位置。
.item1 {
grid-area: header;
}
e.grid-auto-columns
描述:指定默认的列尺寸。
选项:
长度单位(如 px、em、fr):例如 100px、1fr。
示例:
.grid-container {
grid-auto-columns: 200px; /* 默认列宽 200 像素 */
}
f.grid-auto-flow
描述:指定自动布局算法如何运作,精确指定在网格中被自动布局的元素如何排列。
选项:
row:按行自动布局。
column:按列自动布局。
dense:紧凑布局,填补网格中的空隙。
row dense、column dense:结合行或列的密集布局。
.grid-container {
grid-auto-flow: dense; /* 紧凑布局 */
}
g.grid-auto-rows
描述:指定默认的行尺寸。
选项:
长度单位(如 px、em、fr):例如 100px、1fr。
示例:
.grid-container {
grid-auto-rows: 150px; /* 默认行高 150 像素 */
}
h.grid-column
描述:grid-column-start 和 grid-column-end 的简写属性。
选项:
grid-column-start:列的起始位置。
grid-column-end:列的结束位置。
.item1 {
grid-column: 1 / 3; /* 从第 1 列开始,到第 3 列结束 */
}
i.grid-column-end
描述:指定网格元素列的结束位置。
选项:
网格线编号(如 1、2)。
span:跨越的列数(如 span 2)。
示例:
.item1 {
grid-column-end: 4; /* 到第 4 列结束 */
}
j.grid-column-gap
描述:指定网格元素的列间距。
选项:
长度单位(如 px、em、rem):例如 10px。
示例:
.grid-container {
grid-column-gap: 15px; /* 列间距 15 像素 */
}
k.grid-column-start
描述:指定网格元素列的开始位置。
选项:
网格线编号(如 1、2)。
span:跨越的列数(如 span 2)
示例:
.item1 {
grid-column-start: 2; /* 从第 2 列开始 */
}
l.grid-gap
描述:grid-row-gap 和 grid-column-gap 的简写属性。
选项:
row-gap:行间距。
column-gap:列间距。
示例:
.grid-container {
grid-gap: 20px; /* 行间距和列间距都为 20 像素 */
}
m.grid-row
描述:grid-row-start 和 grid-row-end 的简写属性。
选项:
grid-row-start:行的起始位置。
grid-row-end:行的结束位置。
示例:
.item1 {
grid-row: 1 / 3; /* 从第 1 行开始,到第 3 行结束 */
}
n.grid-row-end
描述:指定网格元素行的结束位置。
选项:
网格线编号(如 1、2)。
span:跨越的行数(如 span 2)。
示例:
.item1 {
grid-row-end: 4; /* 到第 4 行结束 */
}
o.grid-row-gap
描述:指定网格元素的行间距。
选项:
长度单位(如 px、em、rem):例如 10px。
示例:
.grid-container {
grid-row-gap: 25px; /* 行间距 25 像素 */
}
p.grid-row-start
描述:指定网格元素行的开始位置。
选项:
网格线编号(如 1、2)。
span:跨越的行数(如 span 2)。
示例:
.item1 {
grid-row-start: 2; /* 从第 2 行开始 */
}
q.grid-template
描述:grid-template-rows、grid-template-columns 和 grid-template-areas 的简写属性。
选项:
grid-template-rows:行轨道。
grid-template-columns:列轨道。
grid-template-areas:区域名称。
示例:
.grid-container {
grid-template:
"header header header" 100px
"main sidebar sidebar" 1fr
"footer footer footer" 50px
/ 1fr 2fr 1fr; /* 列轨道定义 */
}
r.grid-template-areas
描述:指定如何显示行和列,使用命名的网格元素。
选项:
区域名称:例如 "header header header" "main sidebar sidebar" "footer footer footer"。
示例:
.grid-container {
grid-template-areas:
"header header header"
"main sidebar sidebar"
"footer footer footer";
}
s.grid-template-columns
描述:指定列的大小,以及网格布局中设置列的数量。
选项:
长度单位(如 px、em、fr):例如 100px、1fr。
关键字(如 auto):自动调整列宽。
示例:
.grid-container {
grid-template-columns: 100px 200px 1fr; /* 列宽分别为 100px、200px 和 1fr */
}
t.grid-template-rows
描述:指定网格布局中行的大小。
选项:
长度单位(如 px、em、fr):例如 100px、1fr。
关键字(如 auto):自动调整行高。
示例:
.grid-container {
grid-template-rows: 100px 200px 1fr; /* 行高分别为 100px、200px 和 1fr */
}
u.row-gap
描述:指定两个行之间的间距。
选项:
长度单位(如 px、em、rem):例如 10px、2em。
示例:
.grid-container {
row-gap: 15px; /* 行间距 15 像素 */
}
02.样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Grid Layout Examples</title>
<style>
/* 网格容器基本样式 */
.grid-container {
display: grid;
gap: 10px; /* 统一间隙 */
}
/* 网格项目基本样式 */
.grid-item {
background-color: #4CAF50;
color: white;
border: 1px solid #333;
padding: 20px;
text-align: center;
}
/* 网格轨道示例 */
.grid-4-columns {
grid-template-columns: auto auto auto auto;
}
.grid-2-rows {
grid-template-rows: 100px 300px;
}
/* fr 单位示例 */
.grid-3-fr {
grid-template-columns: 1fr 1fr 1fr;
}
/* 网格间距示例 */
.grid-column-gap {
grid-column-gap: 50px;
}
.grid-row-gap {
grid-row-gap: 50px;
}
.grid-gap {
grid-gap: 50px 100px; /* 行间距50px,列间距100px */
}
/* 网格线示例 */
.grid-lines {
grid-template-columns: 100px 200px 300px 400px;
grid-template-rows: 100px 200px 300px;
}
.item1 {
grid-column-start: 1;
grid-column-end: 3;
grid-row-start: 1;
grid-row-end: 3;
background-color: #FF5722;
}
/* 其他网格属性示例 */
.grid-area-example {
grid-template-areas:
"header header header"
"main main sidebar"
"footer footer footer";
}
.header { grid-area: header; background-color: #03A9F4; }
.main { grid-area: main; background-color: #FFC107; }
.sidebar { grid-area: sidebar; background-color: #4CAF50; }
.footer { grid-area: footer; background-color: #E91E63; }
/* 网格示例布局 */
.example-grid {
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(2, 100px);
gap: 10px;
}
</style>
</head>
<body>
<h1>CSS Grid Layout Examples</h1>
<h2>Basic Grid Container</h2>
<div class="grid-container grid-4-columns">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
<div class="grid-item">4</div>
</div>
<h2>Grid with 2 Rows</h2>
<div class="grid-container grid-2-rows">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
</div>
<h2>Using `fr` Units</h2>
<div class="grid-container grid-3-fr">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
</div>
<h2>Column and Row Gaps</h2>
<div class="grid-container grid-gap">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
</div>
<h2>Grid Lines Example</h2>
<div class="grid-container grid-lines">
<div class="grid-item item1">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
</div>
<h2>Grid Area Example</h2>
<div class="grid-container grid-area-example">
<div class="header">Header</div>
<div class="main">Main Content</div>
<div class="sidebar">Sidebar</div>
<div class="footer">Footer</div>
</div>
<h2>Example Grid Layout</h2>
<div class="example-grid">
<div class="grid-item">1</div>
<div class="grid-item">2</div>
<div class="grid-item">3</div>
<div class="grid-item">4</div>
<div class="grid-item">5</div>
<div class="grid-item">6</div>
</div>
</body>
</html>
2.10 网格容器
00.属性
display 用于定义元素是否为网格容器
grid-template-columns 定义网格中的列数量和宽度
grid-template-rows 定义网格中的行数量和高度
grid-template-areas 定义网格区域的布局
grid-column-gap 和 grid-row-gap 定义网格列和行之间的间隔
gap 同时定义列间隔和行间隔
justify-items 定义网格单元在每个单元格内的水平对齐方式
align-items 定义网格单元在每个单元格内的垂直对齐方式
justify-content 定义整个网格在容器内的水平对齐方式
align-content 定义整个网格在容器内的垂直对齐方式
grid-auto-columns 定义自动生成的列的宽度
grid-auto-rows 定义自动生成的行的高度
grid-auto-flow 定义自动放置网格项目的方式
grid-column 和 grid-row 用于设置网格项目的起始和结束位置
01.属性选项
a.display
用于定义元素是否为网格容器。
选项:
grid:将元素定义为块级网格容器。
inline-grid:将元素定义为行内网格容器。
b.grid-template-columns
定义网格中的列数量和宽度。
选项:
长度单位:如 px, em, rem, %。
auto:自动宽度。
fr:可用空间的分数单位。
min-content、max-content:内容的最小或最大宽度。
minmax(min, max):设置列的最小和最大宽度。
c.grid-template-rows
定义网格中的行数量和高度。
选项:
长度单位:如 px, em, rem, %。
auto:自动高度。
fr:可用空间的分数单位。
min-content、max-content:内容的最小或最大高度。
minmax(min, max):设置行的最小和最大高度。
d.grid-template-areas
定义网格区域的布局。
选项:
区域名称:通过字符串定义每个区域的名称。例如:
grid-template-areas:
"header header header"
"sidebar content content"
"footer footer footer";
e.grid-column-gap 和 grid-row-gap
定义网格列和行之间的间隔。
选项:
长度单位:如 px, em, rem, %。
f.gap (或 grid-gap)
同时定义列间隔和行间隔。
选项:
长度单位:如 px, em, rem。
两个值:第一个值为行间隔,第二个值为列间隔。例如:gap: 10px 20px;
g.justify-items
定义网格单元在每个单元格内的水平对齐方式。
选项:
start:靠左对齐。
end:靠右对齐。
center:居中对齐。
stretch:拉伸以填充单元格(默认)。
h.align-items
定义网格单元在每个单元格内的垂直对齐方式。
选项:
start:靠上对齐。
end:靠下对齐。
center:居中对齐。
stretch:拉伸以填充单元格(默认)。
i.justify-content
定义整个网格在容器内的水平对齐方式。
选项:
start:靠左对齐。
end:靠右对齐。
center:居中对齐。
space-between:项目间距均匀。
space-around:项目间距均匀,包括边缘。
space-evenly:项目之间的间隔均匀。
j.align-content
定义整个网格在容器内的垂直对齐方式。
选项:
start:靠上对齐。
end:靠下对齐。
center:居中对齐。
space-between:项目间距均匀。
space-around:项目间距均匀,包括边缘。
space-evenly:项目之间的间隔均匀。
k.grid-auto-columns
定义自动生成的列的宽度。
选项:
长度单位:如 px, auto。
l.grid-auto-rows
定义自动生成的行的高度。
选项:
长度单位:如 px, auto。
m.grid-auto-flow
定义自动放置网格项目的方式。
选项:
row:默认,从左到右填充每一行。
column:从上到下填充每一列。
dense:密集填充,尽量填补空缺。
n.grid-column 和 grid-row
用于设置网格项目的起始和结束位置。
选项:
起始线和结束线:如 grid-column: 1 / 3;,表示从第 1 列开始到第 3 列结束。
02.样式
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS 网格容器示例</title>
<style>
/* 网格容器基础样式 */
body {
font-family: Arial, sans-serif;
margin: 20px;
}
.grid-container {
display: grid;
gap: 10px; /* 网格元素间隔 */
}
/* grid-template-columns 示例 */
.grid-template-columns {
grid-template-columns: auto auto auto auto; /* 4 列网格布局 */
}
.grid-template-columns-2 {
grid-template-columns: 80px 200px auto 40px; /* 指定列宽 */
}
/* grid-template-rows 示例 */
.grid-template-rows {
grid-template-rows: 80px 200px; /* 指定行高 */
}
/* justify-content 示例 */
.justify-content {
justify-content: space-evenly; /* 水平对齐 */
}
/* align-content 示例 */
.align-content {
height: 400px; /* 设置容器高度 */
align-content: center; /* 垂直对齐 */
}
/* 网格元素样式 */
.grid-item {
background-color: #007bff;
color: white;
padding: 20px;
text-align: center;
border-radius: 5px;
}
</style>
</head>
<body>
<h1>CSS 网格容器示例</h1>
<!-- grid-template-columns 属性示例 -->
<h2>1. grid-template-columns 属性</h2>
<div class="grid-container grid-template-columns">
<div class="grid-item">列 1</div>
<div class="grid-item">列 2</div>
<div class="grid-item">列 3</div>
<div class="grid-item">列 4</div>
</div>
<h3>指定列宽示例</h3>
<div class="grid-container grid-template-columns-2">
<div class="grid-item">80px</div>
<div class="grid-item">200px</div>
<div class="grid-item">自动</div>
<div class="grid-item">40px</div>
</div>
<!-- grid-template-rows 属性示例 -->
<h2>2. grid-template-rows 属性</h2>
<div class="grid-container grid-template-rows">
<div class="grid-item">80px 高</div>
<div class="grid-item">200px 高</div>
</div>
<!-- justify-content 属性示例 -->
<h2>3. justify-content 属性</h2>
<div class="grid-container justify-content">
<div class="grid-item">项目 1</div>
<div class="grid-item">项目 2</div>
<div class="grid-item">项目 3</div>
</div>
<h3>其他对齐示例</h3>
<div class="grid-container justify-content" style="justify-content: space-around;">
<div class="grid-item">项目 A</div>
<div class="grid-item">项目 B</div>
<div class="grid-item">项目 C</div>
</div>
<div class="grid-container justify-content" style="justify-content: space-between;">
<div class="grid-item">项目 X</div>
<div class="grid-item">项目 Y</div>
<div class="grid-item">项目 Z</div>
</div>
<div class="grid-container justify-content" style="justify-content: center;">
<div class="grid-item">中心对齐</div>
</div>
<!-- align-content 属性示例 -->
<h2>4. align-content 属性</h2>
<div class="grid-container align-content">
<div class="grid-item">项目 1</div>
<div class="grid-item">项目 2</div>
</div>
<h3>其他垂直对齐示例</h3>
<div class="grid-container align-content" style="align-content: space-evenly;">
<div class="grid-item">项目 A</div>
<div class="grid-item">项目 B</div>
</div>
<div class="grid-container align-content" style="align-content: space-around;">
<div class="grid-item">项目 C</div>
<div class="grid-item">项目 D</div>
</div>
<div class="grid-container align-content" style="align-content: space-between;">
<div class="grid-item">项目 E</div>
<div class="grid-item">项目 F</div>
</div>
<div class="grid-container align-content" style="align-content: start;">
<div class="grid-item">开始对齐</div>
</div>
<div class="grid-container align-content" style="align-content: end;">
<div class="grid-item">结束对齐</div>
</div>
</body>
</html>
2.11 网格元素
00.属性
grid-area 指定网格元素的名称,或者也可以是 grid-row-start, grid-column-start, grid-row-end, 和 grid-column-end 的简写属性
grid-column grid-column-start 和 grid-column-end 的简写属性
grid-row grid-row-start 和 grid-row-end 的简写属性
01.属性选项
a.grid-area
grid-area 属性是 grid-row-start、grid-column-start、grid-row-end 和 grid-column-end 属性的简写形式,用于定义网格项目在网格中的位置。
1.<grid-line> / <grid-line> / <grid-line> / <grid-line>:
第一个值:行开始位置 (grid-row-start)。
第二个值:列开始位置 (grid-column-start)。
第三个值:行结束位置 (grid-row-end)。
第四个值:列结束位置 (grid-column-end)。
.item {
grid-area: 1 / 2 / 4 / 5;
}
2.<grid-area-name>:
网格区域的名称,与 grid-template-areas 属性一起使用
.item {
grid-area: myArea;
}
b.grid-column
grid-column 属性是 grid-column-start 和 grid-column-end 属性的简写形式,用于定义网格项目的列开始和结束位置。
1.<grid-line> / <grid-line>:
第一个值:列开始位置 (grid-column-start)。
第二个值:列结束位置 (grid-column-end)。
.item {
grid-column: 1 / 4;
}
2.<grid-line> / span <number>:
第一个值:列开始位置 (grid-column-start)。
第二个值:跨越的列数。
.item {
grid-column: 1 / span 3;
}
c.grid-row
grid-row 属性是 grid-row-start 和 grid-row-end 属性的简写形式,用于定义网格项目的行开始和结束位置。
1.<grid-line> / <grid-line>:
第一个值:行开始位置 (grid-row-start)。
第二个值:行结束位置 (grid-row-end)。
.item {
grid-row: 1 / 3;
}
2.<grid-line> / span <number>:
第一个值:行开始位置 (grid-row-start)。
第二个值:跨越的行数。
.item {
grid-row: 2 / span 2;
}
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Grid 示例</title>
<style>
/* 通用样式 */
.grid-container {
display: grid;
gap: 10px;
border: 2px solid #000;
padding: 10px;
margin-bottom: 30px;
}
.grid-item {
background-color: #8d8;
border: 1px solid #444;
padding: 20px;
font-size: 20px;
text-align: center;
}
/* grid-column 属性示例 */
#grid-column-container {
grid-template-columns: repeat(4, 1fr);
}
.item1-col { grid-column: 1 / 5; }
.item2-col { grid-column: 2 / span 3; }
.item3-col { grid-column: 1 / span 2; }
/* grid-row 属性示例 */
#grid-row-container {
grid-template-rows: repeat(4, 1fr);
}
.item1-row { grid-row: 1 / 4; }
.item2-row { grid-row: 2 / span 3; }
.item3-row { grid-row: 1 / span 2; }
/* grid-area 属性示例 */
#grid-area-container {
grid-template-areas:
"header header header header"
"menu main main right"
"footer footer footer footer";
}
.header { grid-area: header; }
.menu { grid-area: menu; }
.main { grid-area: main; }
.right { grid-area: right; }
.footer { grid-area: footer; }
</style>
</head>
<body>
<h1>CSS Grid 示例</h1>
<!-- grid-column 属性示例 -->
<section>
<h2>grid-column 属性示例</h2>
<div id="grid-column-container" class="grid-container">
<div class="grid-item item1-col">item1</div>
<div class="grid-item item2-col">item2</div>
<div class="grid-item item3-col">item3</div>
</div>
<pre>
.item1 { grid-column: 1 / 5; } /* 在第 1 列开始,在第 5 列前结束 */
.item2 { grid-column: 2 / span 3; } /* 在第 2 列开始,跨越 3 列 */
.item3 { grid-column: 1 / span 2; } /* 在第 1 列开始,跨越 2 列 */
</pre>
</section>
<!-- grid-row 属性示例 -->
<section>
<h2>grid-row 属性示例</h2>
<div id="grid-row-container" class="grid-container">
<div class="grid-item item1-row">item1</div>
<div class="grid-item item2-row">item2</div>
<div class="grid-item item3-row">item3</div>
</div>
<pre>
.item1 { grid-row: 1 / 4; } /* 在第 1 行开始,在第 4 行前结束 */
.item2 { grid-row: 2 / span 3; } /* 在第 2 行开始,跨越 3 行 */
.item3 { grid-row: 1 / span 2; } /* 在第 1 行开始,跨越 2 行 */
</pre>
</section>
<!-- grid-area 属性示例 -->
<section>
<h2>grid-area 属性示例</h2>
<div id="grid-area-container" class="grid-container">
<div class="grid-item header">header</div>
<div class="grid-item menu">menu</div>
<div class="grid-item main">main</div>
<div class="grid-item right">right</div>
<div class="grid-item footer">footer</div>
</div>
<pre>
.header { grid-area: header; }
.menu { grid-area: menu; }
.main { grid-area: main; }
.right { grid-area: right; }
.footer { grid-area: footer; }
.grid-container {
grid-template-areas:
'header header header header'
'menu main main right'
'footer footer footer footer';
}
</pre>
</section>
</body>
</html>
3 css3
3.1 css3边框
00.属性
border-image 设置所有边框图像的速记属性
border-radius 一个用于设置所有四个边框- *-半径属性的速记属性
box-shadow 附加一个或多个下拉框的阴影
01.属性选项
a.border-image
border-image 是一个速记属性,用于设置所有边框图像的相关属性。它包括以下选项:
source: 图片的路径。
slice: 定义图片的切割方式,值可以是一个、两个、三个或四个数值,分别表示上、右、下、左的切割位置。
width: 定义边框的宽度。
outset: 定义边框区域扩展的范围。
repeat: 定义边框图像如何重复,值可以是 stretch、repeat、round 或 space。
-----------------------------------------------------------------------------------------------------
border-image: url(border.png) 30 30 round;
b.border-radius
border-radius 是一个速记属性,用于设置元素的四个角的圆角半径。它包括以下选项:
一个值: 应用于所有四个角。
两个值: 第一个值应用于顶部左和底部右,第二个值应用于顶部右和底部左。
三个值: 第一个值应用于顶部左,第二个值应用于顶部右和底部左,第三个值应用于底部右。
四个值: 分别应用于顶部左、顶部右、底部右和底部左。
-----------------------------------------------------------------------------------------------------
border-radius: 25px;
border-radius: 20px 40px;
border-radius: 20px 40px 60px;
border-radius: 20px 40px 60px 80px;
c.box-shadow
box-shadow 用于给元素添加阴影。它包括以下选项:
horizontal-offset: 阴影的水平偏移量。
vertical-offset: 阴影的垂直偏移量。
blur-radius: 阴影的模糊半径(可选)。
spread-radius: 阴影的扩展半径(可选)。
color: 阴影的颜色(可选)。
inset: 将阴影设置为内阴影(可选)。
-----------------------------------------------------------------------------------------------------
box-shadow: 10px 10px 5px #888888;
box-shadow: 5px 5px 10px 2px rgba(0,0,0,0.5);
box-shadow: inset 5px 5px 10px 2px rgba(0,0,0,0.5);
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 边框示例</title>
<style>
/* 圆角边框 */
.rounded-border {
border: 2px solid;
border-radius: 25px;
padding: 10px;
margin-bottom: 20px;
}
/* 盒阴影 */
.box-shadow {
box-shadow: 10px 10px 5px #888888;
padding: 10px;
margin-bottom: 20px;
}
/* 边界图片 */
.border-image {
border: 10px solid transparent;
border-image: url('border.png') 30 30 round;
-webkit-border-image: url('border.png') 30 30 round; /* Safari 5 and older */
-o-border-image: url('border.png') 30 30 round; /* Opera */
padding: 10px;
margin-bottom: 20px;
}
</style>
</head>
<body>
<h1>CSS3 边框示例</h1>
<section>
<h2>圆角边框</h2>
<div class="rounded-border">这是一个圆角边框的例子。</div>
</section>
<section>
<h2>盒阴影</h2>
<div class="box-shadow">这是一个盒阴影的例子。</div>
</section>
<section>
<h2>边界图片</h2>
<div class="border-image">这是一个边界图片的例子。</div>
</section>
<p>以上示例展示了 CSS3 中的一些新边框属性。你可以修改这些样式来查看更多效果。</p>
</body>
</html>
3.2 css3圆角
00.属性
border-radius 所有四个边角 border-*-*-radius 属性的缩写
border-top-left-radius 定义了左上角的弧度
border-top-right-radius 定义了右上角的弧度
border-bottom-right-radius 定义了右下角的弧度
border-bottom-left-radius 定义了左下角的弧度
01.属性选项
a.border-radius
单一值:
border-radius: 10px;
定义所有四个角的弧度相同。
-----------------------------------------------------------------------------------------------------
两个值:
border-radius: 10px 20px;
第一个值定义左上角和右下角的弧度,第二个值定义右上角和左下角的弧度。
-----------------------------------------------------------------------------------------------------
三个值:
border-radius: 10px 20px 30px;
第一个值定义左上角的弧度,第二个值定义右上角和左下角的弧度,第三个值定义右下角的弧度。
-----------------------------------------------------------------------------------------------------
四个值:
border-radius: 10px 20px 30px 40px;
四个值分别定义左上角、右上角、右下角和左下角的弧度。
-----------------------------------------------------------------------------------------------------
椭圆形圆角:
border-radius: 10px/20px;
第一个值是水平半径,第二个值是垂直半径。
b.border-top-left-radius
定义左上角的弧度。
可以接受单个值或者两个值(水平半径和垂直半径)。
示例:
border-top-left-radius: 10px;
border-top-left-radius: 10px 20px;
c.border-top-right-radius
定义右上角的弧度。
可以接受单个值或者两个值(水平半径和垂直半径)。
示例:
border-top-right-radius: 10px;
border-top-right-radius: 10px 20px;
d.border-bottom-right-radius
定义右下角的弧度。
可以接受单个值或者两个值(水平半径和垂直半径)。
示例:
border-bottom-right-radius: 10px;
border-bottom-right-radius: 10px 20px;
e.border-bottom-left-radius
定义左下角的弧度。
可以接受单个值或者两个值(水平半径和垂直半径)。
示例:
border-bottom-left-radius: 10px;
border-bottom-left-radius: 10px 20px;
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 圆角示例</title>
<style>
/* 基本圆角示例 */
#rcorners1 {
border-radius: 25px;
background: #8AC007;
padding: 20px;
width: 200px;
height: 150px;
}
#rcorners2 {
border-radius: 25px;
border: 2px solid #8AC007;
padding: 20px;
width: 200px;
height: 150px;
}
#rcorners3 {
border-radius: 25px;
background: url(paper.gif);
background-position: left top;
background-repeat: repeat;
padding: 20px;
width: 200px;
height: 150px;
}
/* 指定每个圆角的值 */
#rcorners4 {
border-radius: 15px 50px 30px 5px;
background: #8AC007;
padding: 20px;
width: 200px;
height: 150px;
}
#rcorners5 {
border-radius: 15px 50px 30px;
background: #8AC007;
padding: 20px;
width: 200px;
height: 150px;
}
#rcorners6 {
border-radius: 15px 50px;
background: #8AC007;
padding: 20px;
width: 200px;
height: 150px;
}
/* 椭圆边角 */
#rcorners7 {
border-radius: 50px/15px;
background: #8AC007;
padding: 20px;
width: 200px;
height: 150px;
}
#rcorners8 {
border-radius: 15px/50px;
background: #8AC007;
padding: 20px;
width: 200px;
height: 150px;
}
#rcorners9 {
border-radius: 50%;
background: #8AC007;
padding: 20px;
width: 200px;
height: 150px;
}
</style>
</head>
<body>
<h2>CSS3 圆角示例</h2>
<h3>基本圆角示例</h3>
<div id="rcorners1">指定背景颜色的元素圆角</div>
<br>
<div id="rcorners2">指定边框的元素圆角</div>
<br>
<div id="rcorners3">指定背景图片的元素圆角</div>
<h3>指定每个圆角的值</h3>
<div id="rcorners4">四个值 - border-radius: 15px 50px 30px 5px</div>
<br>
<div id="rcorners5">三个值 - border-radius: 15px 50px 30px</div>
<br>
<div id="rcorners6">两个值 - border-radius: 15px 50px</div>
<h3>椭圆边角</h3>
<div id="rcorners7">border-radius: 50px/15px</div>
<br>
<div id="rcorners8">border-radius: 15px/50px</div>
<br>
<div id="rcorners9">border-radius: 50%</div>
</body>
</html>
3.3 css3背景
00.属性
background-clip 规定背景的绘制区域
background-origin 规定背景图片的定位区域
background-size 规定背景图片的尺寸
01.属性选项
a.background-clip
background-clip 属性规定背景的绘制区域。它有以下选项:
border-box: 背景被裁剪到边框盒子 (默认值)。
padding-box: 背景被裁剪到内边距盒子。
content-box: 背景被裁剪到内容盒子。
b.background-origin
background-origin 属性规定背景图片的定位区域。它有以下选项:
border-box: 背景图片相对于边框盒子定位。
padding-box: 背景图片相对于内边距盒子定位。
content-box: 背景图片相对于内容盒子定位。
c.background-size
background-size 属性规定背景图片的尺寸。它有以下选项:
auto: 默认值。保持背景图片的原始尺寸。
cover: 调整背景图片的大小,以覆盖整个容器。可能会裁剪背景图片。
contain: 调整背景图片的大小,以适应容器。保持图片的纵横比,不会裁剪背景图片。
<length>: 指定固定尺寸,如 100px 50px。
<percentage>: 以父元素的宽度和高度的百分比指定,如 50% 50%。
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 背景示例</title>
<style>
/* background-image 属性 */
.background-image {
background-image: url('https://via.placeholder.com/150'), url('https://via.placeholder.com/100');
background-position: right bottom, left top;
background-repeat: no-repeat, repeat;
padding: 20px;
margin-bottom: 20px;
height: 200px;
border: 1px solid #ccc;
}
/* background-size 属性 */
.background-size-1 {
background: url('https://via.placeholder.com/150');
background-size: 80px 60px;
background-repeat: no-repeat;
padding: 20px;
margin-bottom: 20px;
height: 200px;
border: 1px solid #ccc;
}
.background-size-2 {
background: url('https://via.placeholder.com/150');
background-size: 100% 100%;
background-repeat: no-repeat;
padding: 20px;
margin-bottom: 20px;
height: 200px;
border: 1px solid #ccc;
}
/* background-origin 属性 */
.background-origin {
background: url('https://via.placeholder.com/150');
background-repeat: no-repeat;
background-size: 100% 100%;
background-origin: content-box;
padding: 20px;
margin-bottom: 20px;
height: 200px;
border: 1px solid #ccc;
}
/* 多重背景图像 */
.multiple-backgrounds {
background-image: url('https://via.placeholder.com/150'), url('https://via.placeholder.com/100');
padding: 20px;
margin-bottom: 20px;
height: 200px;
border: 1px solid #ccc;
}
/* background-clip 属性 */
.background-clip {
border: 10px dotted black;
padding: 35px;
background: yellow;
background-clip: content-box;
margin-bottom: 20px;
height: 200px;
}
</style>
</head>
<body>
<h1>CSS3 背景示例</h1>
<section>
<h2>背景图片(background-image)</h2>
<div class="background-image">这是一个使用 background-image 属性的例子。</div>
</section>
<section>
<h2>背景大小(background-size)</h2>
<div class="background-size-1">这是一个使用 background-size 属性设置为特定尺寸的例子。</div>
<div class="background-size-2">这是一个使用 background-size 属性设置为100%填充的例子。</div>
</section>
<section>
<h2>背景定位区域(background-origin)</h2>
<div class="background-origin">这是一个使用 background-origin 属性的例子。</div>
</section>
<section>
<h2>多重背景图像</h2>
<div class="multiple-backgrounds">这是一个使用多重背景图像的例子。</div>
</section>
<section>
<h2>背景剪裁(background-clip)</h2>
<div class="background-clip">这是一个使用 background-clip 属性的例子。</div>
</section>
<p>以上示例展示了 CSS3 中的一些新背景属性。你可以修改这些样式来查看更多效果。</p>
</body>
</html>
3.4 css3渐变
01.属性选项
a.CSS3线性渐变
线性渐变 - 从上到下(默认情况下)
属性:background-image: linear-gradient(color-stop1, color-stop2, ...);
示例:background-image: linear-gradient(#e66465, #9198e5);
-----------------------------------------------------------------------------------------------------
线性渐变 - 从左到右
属性:background-image: linear-gradient(to direction, color-stop1, color-stop2, ...);
示例:background-image: linear-gradient(to right, red, yellow);
-----------------------------------------------------------------------------------------------------
线性渐变 - 对角
属性:background-image: linear-gradient(to direction, color-stop1, color-stop2, ...);
示例:background-image: linear-gradient(to bottom right, red, yellow);
-----------------------------------------------------------------------------------------------------
使用角度
属性:background-image: linear-gradient(angle, color-stop1, color-stop2);
示例:background-image: linear-gradient(-90deg, red, yellow);
-----------------------------------------------------------------------------------------------------
使用多个颜色节点
属性:background-image: linear-gradient(color-stop1, color-stop2, color-stop3, ...);
示例:background-image: linear-gradient(red, yellow, green);
-----------------------------------------------------------------------------------------------------
使用透明度(transparent)
属性:background-image: linear-gradient(to direction, rgba(color, transparency), rgba(color, transparency));
示例:background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1));
-----------------------------------------------------------------------------------------------------
重复的线性渐变
属性:background-image: repeating-linear-gradient(color-stop1, color-stop2, ...);
示例:background-image: repeating-linear-gradient(red, yellow 10%, green 20%);
b.CSS3 径向渐变
设置形状
属性:background-image: radial-gradient(shape, color-stop1, color-stop2, ...);
选项:
circle: 圆形
ellipse: 椭圆形
示例:background-image: radial-gradient(circle, red, yellow, green);
-----------------------------------------------------------------------------------------------------
不同尺寸大小关键字的使用
属性:background-image: radial-gradient(size at position, color-stop1, color-stop2, ...);
选项:
closest-side: 渐变区域到最近的边
farthest-side: 渐变区域到最远的边
closest-corner: 渐变区域到最近的角落
farthest-corner: 渐变区域到最远的角落
background-image: radial-gradient(closest-side at 60% 55%, red, yellow, black);
background-image: radial-gradient(farthest-side at 60% 55%, red, yellow, black);
-----------------------------------------------------------------------------------------------------
重复的径向渐变
属性:background-image: repeating-radial-gradient(shape size at position, color-stop1, color-stop2, ...);
示例:background-image: repeating-radial-gradient(red, yellow 10%, green 15%);
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 渐变示例</title>
<style>
.box {
width: 200px;
height: 150px;
margin: 20px;
padding: 20px;
border: 2px solid #333;
}
/* 线性渐变示例 */
.linear-top-bottom {
background-image: linear-gradient(#e66465, #9198e5);
}
.linear-left-right {
background-image: linear-gradient(to right, red, yellow);
}
.linear-diagonal {
background-image: linear-gradient(to bottom right, red, yellow);
}
.linear-angle {
background-image: linear-gradient(-90deg, red, yellow);
}
.linear-multiple-colors {
background-image: linear-gradient(red, yellow, green);
}
.linear-rainbow {
background-image: linear-gradient(to right, red, orange, yellow, green, blue, indigo, violet);
}
.linear-transparent {
background-image: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1));
}
.repeating-linear {
background-image: repeating-linear-gradient(red, yellow 10%, green 20%);
}
/* 径向渐变示例 */
.radial-default {
background-image: radial-gradient(red, yellow, green);
}
.radial-uneven {
background-image: radial-gradient(red 5%, yellow 15%, green 60%);
}
.radial-circle {
background-image: radial-gradient(circle, red, yellow, green);
}
.radial-closest-side {
background-image: radial-gradient(closest-side at 60% 55%, red, yellow, black);
}
.radial-farthest-side {
background-image: radial-gradient(farthest-side at 60% 55%, red, yellow, black);
}
.repeating-radial {
background-image: repeating-radial-gradient(red, yellow 10%, green 15%);
}
</style>
</head>
<body>
<h2>CSS3 渐变示例</h2>
<h3>线性渐变示例</h3>
<div class="box linear-top-bottom">从上到下的线性渐变</div>
<div class="box linear-left-right">从左到右的线性渐变</div>
<div class="box linear-diagonal">从左上角到右下角的线性渐变</div>
<div class="box linear-angle">带有指定角度的线性渐变</div>
<div class="box linear-multiple-colors">带有多个颜色节点的线性渐变</div>
<div class="box linear-rainbow">彩虹颜色的线性渐变</div>
<div class="box linear-transparent">带有透明度的线性渐变</div>
<div class="box repeating-linear">重复的线性渐变</div>
<h3>径向渐变示例</h3>
<div class="box radial-default">颜色节点均匀分布的径向渐变</div>
<div class="box radial-uneven">颜色节点不均匀分布的径向渐变</div>
<div class="box radial-circle">形状为圆形的径向渐变</div>
<div class="box radial-closest-side">带有 closest-side 尺寸的径向渐变</div>
<div class="box radial-farthest-side">带有 farthest-side 尺寸的径向渐变</div>
<div class="box repeating-radial">重复的径向渐变</div>
</body>
</html>
3.5 css3文本效果
00.属性
hanging-punctuation 规定标点字符是否位于线框之外
punctuation-trim 规定是否对标点字符进行修剪
text-align-last 设置如何对齐最后一行或紧挨着强制换行符之前的行
text-emphasis 向元素的文本应用重点标记以及重点标记的前景色
text-justify 规定当 text-align 设置为 "justify" 时所使用的对齐方法
text-outline 规定文本的轮廓
text-overflow 规定当文本溢出包含元素时发生的事情
text-shadow 向文本添加阴影
text-wrap 规定文本的换行规则
word-break 规定非中日韩文本的换行规则
word-wrap 允许对长的不可分割的单词进行分割并换行到下一行
01.属性选项
a.hanging-punctuation
hanging-punctuation 属性规定标点字符是否位于线框之外。可选值包括:
none: 标点不悬挂。
first: 悬挂行首标点。
last: 悬挂行尾标点。
force-end: 强制悬挂行尾标点。
allow-end: 允许悬挂行尾标点。
b.punctuation-trim
punctuation-trim 属性规定是否对标点字符进行修剪。可选值包括:
none: 不修剪标点。
start: 修剪行首标点。
end: 修剪行尾标点。
allow-end: 允许修剪行尾标点。
c.text-align-last
text-align-last 属性设置如何对齐最后一行或紧挨着强制换行符之前的行。可选值包括:
auto: 默认对齐方式。
left: 左对齐。
right: 右对齐。
center: 居中对齐。
justify: 两端对齐。
d.text-emphasis
text-emphasis 属性向元素的文本应用重点标记以及重点标记的前景色。可选值包括:
text-emphasis-style: none, accent, dot, circle, disc,也可以使用自定义符号。
text-emphasis-color: 任何有效的颜色值。
e.text-justify
text-justify 属性规定当 text-align 设置为 justify 时所使用的对齐方法。可选值包括:
auto: 浏览器自动决定对齐方式。
inter-word: 通过增加单词间的空白来对齐。
inter-character: 通过增加字符间的空白来对齐。
f.text-outline
text-outline 属性规定文本的轮廓。可选值包括:
none: 没有轮廓。
<length> <color>: 轮廓的宽度和颜色。
g.text-overflow
text-overflow 属性规定当文本溢出包含元素时发生的事情。可选值包括:
clip: 剪切文本。
ellipsis: 使用省略号表示被修剪的文本。
h.text-shadow
text-shadow 属性向文本添加阴影。可选值包括:
<x-offset> <y-offset> <blur-radius> <color>: 水平阴影偏移、垂直阴影偏移、模糊半径和阴影颜色。
i.text-wrap
text-wrap 属性规定文本的换行规则。可选值包括:
normal: 正常换行。
none: 不换行。
unrestricted: 无限制换行。
suppress: 抑制换行。
balance: 平衡换行。
j.word-break
word-break 属性规定非中日韩文本的换行规则。可选值包括:
normal: 使用浏览器默认的换行规则。
break-all: 允许在单词内换行。
keep-all: 不允许在单词内换行。
k.word-wrap
word-wrap 属性允许对长的不可分割的单词进行分割并换行到下一行。可选值包括:
normal: 默认换行规则。
break-word: 允许长单词换行。
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 文本效果示例</title>
<style>
/* text-shadow 属性 */
.text-shadow {
text-shadow: 5px 5px 5px #FF0000;
}
/* box-shadow 属性 */
.box-shadow {
box-shadow: 10px 10px 5px #888888;
}
.box-shadow-color {
box-shadow: 10px 10px grey;
}
.box-shadow-blur {
box-shadow: 10px 10px 5px grey;
}
/* text-overflow 属性 */
.text-overflow-clip {
white-space: nowrap;
width: 200px;
border: 1px solid #000000;
overflow: hidden;
text-overflow: clip;
}
.text-overflow-ellipsis {
white-space: nowrap;
width: 200px;
border: 1px solid #000000;
overflow: hidden;
text-overflow: ellipsis;
}
/* word-wrap 属性 */
.word-wrap {
word-wrap: break-word;
}
/* word-break 属性 */
.word-break-keep-all {
word-break: keep-all;
}
.word-break-break-all {
word-break: break-all;
}
</style>
</head>
<body>
<h1>CSS3 文本效果示例</h1>
<section>
<h2>文本阴影(text-shadow)</h2>
<p class="text-shadow">这是一个带有阴影效果的文本。</p>
</section>
<section>
<h2>盒子阴影(box-shadow)</h2>
<div class="box-shadow">这是一个带有盒子阴影的盒子。</div>
<div class="box-shadow-color">这是一个带有灰色阴影的盒子。</div>
<div class="box-shadow-blur">这是一个带有模糊阴影的盒子。</div>
</section>
<section>
<h2>文本溢出(text-overflow)</h2>
<p class="text-overflow-clip">这是一个很长的文本,它将被剪切。</p>
<p class="text-overflow-ellipsis">这是一个很长的文本,它将被省略号替代。</p>
</section>
<section>
<h2>换行(word-wrap)</h2>
<p class="word-wrap">这是一个非常长的单词,它将被换行:supercalifragilisticexpialidocious</p>
</section>
<section>
<h2>单词拆分换行(word-break)</h2>
<p class="word-break-keep-all">这是一个带有 keep-all 属性的文本,长单词不会被拆分。</p>
<p class="word-break-break-all">这是一个带有 break-all 属性的文本,长单词会被拆分。</p>
</section>
<p>以上示例展示了 CSS3 中的 text-shadow, box-shadow, text-overflow, word-wrap 和 word-break 属性的不同选项。</p>
</body>
</html>
3.6 css3字体
00.属性
font-family 指定字体名称
src 定义字体文件的 URL
font-stretch 定义字体的拉伸方式
font-style 定义字体的样式
font-weight 定义字体的粗细
unicode-range 定义字体支持的 Unicode 字符范围
01.属性选项
a.font-family
描述:指定字体名称。
选项:任意定义的字体名称或通用字体族(如 serif、sans-serif、monospace 等)。
示例:
font-family: 'myFirstFont', sans-serif;
b.src
描述:定义字体文件的 URL。
选项:字体文件的 URL(如 .woff、.ttf、.otf、.svg、.eot 等)。
示例:
src: url('sansation_light.woff');
c.font-stretch
描述:定义字体的拉伸方式。
选项:normal(默认)、condensed、ultra-condensed、extra-condensed、semi-condensed、expanded、semi-expanded、extra-expanded、ultra-expanded
示例:
font-stretch: expanded;
d.font-style
描述:定义字体的样式。
选项:normal、italic、oblique
示例:
font-style: italic;
e.font-weight
描述:定义字体的粗细。
选项:
normal
bold
数字值:100, 200, 300, 400, 500, 600, 700, 800, 900
示例:
font-weight: 700;
f.unicode-range
描述:定义字体支持的 Unicode 字符范围。
选项:Unicode 范围(如 U+0025-00FF)。
示例:
unicode-range: U+0025-00FF;
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 字体示例</title>
<style>
/* 定义字体 */
@font-face {
font-family: 'myFirstFont';
src: url('sansation_light.woff');
}
@font-face {
font-family: 'myFirstFontBold';
src: url('sansation_bold.woff');
font-weight: bold;
}
@font-face {
font-family: 'myStretchedFont';
src: url('sansation_light.woff');
font-stretch: expanded;
}
@font-face {
font-family: 'myItalicFont';
src: url('sansation_light.woff');
font-style: italic;
}
@font-face {
font-family: 'myWeightFont';
src: url('sansation_light.woff');
font-weight: 700;
}
@font-face {
font-family: 'myUnicodeFont';
src: url('sansation_light.woff');
unicode-range: U+0025-00FF; /* 支持拉丁字母和基本标点符号 */
}
/* 使用自定义字体 */
.custom-font {
font-family: 'myFirstFont';
}
.custom-font-bold {
font-family: 'myFirstFontBold';
font-weight: bold;
}
.custom-font-stretched {
font-family: 'myStretchedFont';
}
.custom-font-italic {
font-family: 'myItalicFont';
}
.custom-font-weight {
font-family: 'myWeightFont';
font-weight: 700;
}
.custom-font-unicode {
font-family: 'myUnicodeFont';
}
</style>
</head>
<body>
<h2>CSS3 字体示例</h2>
<h3>自定义字体示例</h3>
<div class="custom-font">这是使用自定义字体的文本。</div>
<h3>使用粗体文本示例</h3>
<div class="custom-font-bold">这是使用自定义粗体字体的文本。</div>
<h3>字体拉伸示例</h3>
<div class="custom-font-stretched">这是使用自定义拉伸字体的文本。</div>
<h3>字体样式示例</h3>
<div class="custom-font-italic">这是使用自定义斜体字体的文本。</div>
<h3>字体粗细示例</h3>
<div class="custom-font-weight">这是使用自定义粗细字体的文本。</div>
<h3>UNICODE 字符范围示例</h3>
<div class="custom-font-unicode">这是使用自定义 Unicode 字符范围的文本。ABC abc 123</div>
</body>
</html>
3.7 css3转换2D
01.属性选项
a.新转换属性
transform 适用于2D或3D转换的元素 用于将元素进行各种转换(如移动、旋转、缩放和倾斜)。
transform-origin 允许您更改转化元素位置 用于设置转换的原点,默认值为元素的中心,可以使用 px 或 % 来设置。
b.2D转换方法
matrix(n,n,n,n,n,n) 定义 2D 转换,使用六个值的矩阵。 n1 到 n6 为数值,表示转换的参数。
translate(x,y) 定义 2D 转换,沿着 X 和 Y 轴移动元素。 x: 水平移动的距离,y: 垂直移动的距离。
translateX(n) 定义 2D 转换,沿着 X 轴移动元素。 n: 水平移动的距离
translateY(n) 定义 2D 转换,沿着 Y 轴移动元素。 n: 垂直移动的距离。
scale(x,y) 定义 2D 缩放转换,改变元素的宽度和高度。 x: 水平缩放因子,y: 垂直缩放因子。
scaleX(n) 定义 2D 缩放转换,改变元素的宽度。 n: 水平缩放因子。
scaleY(n) 定义 2D 缩放转换,改变元素的高度。 n: 垂直缩放因子。
rotate(angle) 定义 2D 旋转,在参数中规定角度。 angle: 旋转角度,可以是负值或正值。
skew(x-angle,y-angle) 定义 2D 倾斜转换,沿着 X 和 Y 轴。 x-angle: X 轴的倾斜角度,y-angle: Y 轴的倾斜角度。
skewX(angle) 定义 2D 倾斜转换,沿着 X 轴。 angle: X 轴的倾斜角度。
skewY(angle) 定义 2D 倾斜转换,沿着 Y 轴。 angle: Y 轴的倾斜角度。
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 2D 转换示例</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
}
.transform-example {
width: 100px;
height: 100px;
background-color: lightblue;
margin: 20px;
transition: transform 0.5s;
display: inline-block;
}
.transform-example:hover {
transform: rotate(30deg); /* 示例:旋转 */
}
.translate {
transform: translate(50px, 50px); /* 示例:平移 */
}
.rotate {
transform: rotate(30deg); /* 示例:旋转 */
}
.scale {
transform: scale(1.5, 1.5); /* 示例:缩放 */
}
.skew {
transform: skew(20deg, 10deg); /* 示例:倾斜 */
}
.matrix {
transform: matrix(0.866, 0.5, -0.5, 0.866, 0, 0); /* 示例:矩阵转换 */
}
</style>
</head>
<body>
<h1>CSS3 2D 转换示例</h1>
<section>
<h2>1. transform 属性</h2>
<p>transform 属性用于应用 2D 或 3D 转换。</p>
<div class="transform-example">鼠标移动我</div>
</section>
<section>
<h2>2. translate() 方法</h2>
<p>translate() 方法根据 X 轴和 Y 轴的位置移动元素。</p>
<div class="transform-example translate">平移</div>
</section>
<section>
<h2>3. rotate() 方法</h2>
<p>rotate() 方法使元素按指定角度旋转。</p>
<div class="transform-example rotate">旋转</div>
</section>
<section>
<h2>4. scale() 方法</h2>
<p>scale() 方法用于增加或减少元素的大小。</p>
<div class="transform-example scale">缩放</div>
</section>
<section>
<h2>5. skew() 方法</h2>
<p>skew() 方法根据 X 轴和 Y 轴的角度倾斜元素。</p>
<div class="transform-example skew">倾斜</div>
</section>
<section>
<h2>6. matrix() 方法</h2>
<p>matrix() 方法结合了旋转、缩放、平移和倾斜的功能。</p>
<div class="transform-example matrix">矩阵</div>
</section>
<h2>浏览器支持</h2>
<table border="1">
<tr>
<th>属性</th>
<th>Chrome</th>
<th>Safari</th>
<th>Firefox</th>
<th>Internet Explorer</th>
</tr>
<tr>
<td>transform</td>
<td>36.0</td>
<td>4.0 -webkit-</td>
<td>9.0 -ms-</td>
<td>3.5 -moz-</td>
</tr>
<tr>
<td>transform-origin</td>
<td>36.0</td>
<td>4.0 -webkit-</td>
<td>9.0 -ms-</td>
<td>3.5 -moz-</td>
</tr>
</table>
<p>以上示例展示了 CSS3 中 2D 转换属性及其用法。</p>
</body>
</html>
3.8 css3转换3D
00.属性
a.转换属性
transform 向元素应用 2D 或 3D 转换
transform-origin 允许你改变被转换元素的位置
transform-style 规定被嵌套元素如何在 3D 空间中显示
perspective 规定 3D 元素的透视效果
perspective-origin 规定 3D 元素的底部位置
backface-visibility 定义元素在不面对屏幕时是否可见
b.3D转换方法
matrix3d(n,n,n,n,n,n,,n,n,n,n,n,n,n,n,n) 定义 3D 转换,使用 16 个值的 4x4 矩阵。
translate3d(x,y,z) 定义 3D 转化。
translateX(x) 定义 3D 转化,仅使用用于 X 轴的值。
translateY(y) 定义 3D 转化,仅使用用于 Y 轴的值。
translateZ(z) 定义 3D 转化,仅使用用于 Z 轴的值。
scale3d(x,y,z) 定义 3D 缩放转换。
scaleX(x) 定义 3D 缩放转换,通过给定一个 X 轴的值。
scaleY(y) 定义 3D 缩放转换,通过给定一个 Y 轴的值。
scaleZ(z) 定义 3D 缩放转换,通过给定一个 Z 轴的值。
rotate3d(x,y,z,angle) 定义 3D 旋转。
rotateX(angle) 定义沿 X 轴的 3D 旋转。
rotateY(angle) 定义沿 Y 轴的 3D 旋转。
rotateZ(angle) 定义沿 Z 轴的 3D 旋转。
perspective(n) 定义 3D 转换元素的透视视图。
01.属性选项
a.转换属性
a.transition
描述:向元素应用 2D 或 3D 转换。
选项:
rotateX(angle)
rotateY(angle)
rotateZ(angle)
translateX(x)
translateY(y)
translateZ(z)
scaleX(x)
scaleY(y)
scaleZ(z)
translate3d(x, y, z)
scale3d(x, y, z)
rotate3d(x, y, z, angle)
matrix3d(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12, n13, n14, n15, n16)
b.transform-origin
描述:允许你改变被转换元素的位置。
选项:
left
center
right
top
bottom
50% (百分比值,默认为 center)
length (例如 10px, 2em)
c.transform-style
描述:规定被嵌套元素如何在 3D 空间中显示。
选项:
flat (默认值,嵌套元素被绘制为 2D)
preserve-3d (保持 3D 位置和变换)
d.perspective
描述:规定 3D 元素的透视效果。
选项:
任意正值(如 300px, 500px, 1000px)
e.perspective-origin
描述:规定 3D 元素的透视视点的位置。
选项:
left
center
right
top
bottom
50% (百分比值,默认为 center)
length (例如 10px, 2em)
f.backface-visibility
描述:定义元素在不面对屏幕时是否可见。
选项:
visible (默认值,元素在背面也可见)
hidden (元素在背面不可见)
b.3D转换方法
a.matrix3d(n,n,n,n,n,n,,n,n,n,n,n,n,n,n,n)
描述:定义 3D 转换,使用 16 个值的 4x4 矩阵。
选项:16 个数字(如 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)
b.translate3d(x,y,z)
描述:定义 3D 位移转换。
选项:
x:沿 X 轴的位移(如 100px)
y:沿 Y 轴的位移(如 50px)
z:沿 Z 轴的位移(如 200px)
c.translateX(x)
描述:沿 X 轴位移。
选项:任意长度单位(如 100px, 10%)
d.translateY(y)
描述:沿 Y 轴位移。
选项:任意长度单位(如 100px, 10%)
e.translateZ(z)
描述:沿 Z 轴位移。
选项:任意长度单位(如 100px, 10%)
f.scale3d(x, y, z)
描述:定义 3D 缩放转换。
选项:
x:沿 X 轴的缩放比例(如 1.5)
y:沿 Y 轴的缩放比例(如 1.5)
z:沿 Z 轴的缩放比例(如 1.5)
g.scaleX(x)
描述:沿 X 轴缩放。
选项:缩放比例(如 1.5)
h.scaleY(y)
描述:沿 Y 轴缩放。
选项:缩放比例(如 1.5)
i.scaleZ(z)
描述:沿 Z 轴缩放。
选项:缩放比例(如 1.5)
j.rotate3d(x, y, z, angle)
描述:沿任意轴旋转元素。
选项:
x, y, z:表示旋转轴的坐标值(如 1, 0, 0)
angle:旋转角度(如 45deg)
k.rotateX(angle)
描述:沿 X 轴旋转。
选项:旋转角度(如 45deg)
l.rotateY(angle)
描述:沿 Y 轴旋转。
选项:旋转角度(如 45deg)
m.rotateZ(angle)
描述:沿 Z 轴旋转。
选项:旋转角度(如 45deg)
n.perspective(n)
描述:定义 3D 转换元素的透视视图。
选项:任何正值(如 300px, 500px)
02.样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 3D Transforms with Animation</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
padding: 50px;
}
.box {
width: 200px;
height: 200px;
margin: 20px auto;
background-color: #4CAF50;
color: white;
line-height: 200px;
text-align: center;
font-size: 24px;
font-weight: bold;
position: relative;
transform-style: preserve-3d;
transition: transform 1s;
}
/* 动画效果 */
@keyframes rotateAnimation {
0% { transform: rotateX(0deg) rotateY(0deg); }
50% { transform: rotateX(180deg) rotateY(180deg); }
100% { transform: rotateX(360deg) rotateY(360deg); }
}
.animate-transform {
animation: rotateAnimation 5s infinite;
}
/* transform 示例 */
.transform-example {
transform: rotateX(30deg) rotateY(30deg);
}
/* transform-origin 示例 */
.transform-origin-example {
transform-origin: top left;
transform: rotateY(45deg);
}
/* transform-style 示例 */
.transform-style-example {
transform: rotateY(30deg);
transform-style: preserve-3d;
}
.transform-style-example > .box {
background-color: #FF5722;
}
/* perspective 示例 */
.perspective-example {
perspective: 500px;
transform: rotateY(45deg);
}
.perspective-example > .box {
transform: rotateY(90deg);
transform-style: preserve-3d;
}
/* perspective-origin 示例 */
.perspective-origin-example {
perspective: 500px;
perspective-origin: right bottom;
transform: rotateY(45deg);
}
.perspective-origin-example > .box {
transform: rotateY(90deg);
transform-style: preserve-3d;
}
/* backface-visibility 示例 */
.backface-visibility-example {
perspective: 500px;
}
.backface-visibility-example > .box {
transform: rotateY(180deg);
backface-visibility: hidden;
}
/* matrix3d 示例 */
.matrix3d-example {
transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
}
/* translate3d 示例 */
.translate3d-example {
transform: translate3d(100px, 100px, 100px);
}
/* scale3d 示例 */
.scale3d-example {
transform: scale3d(1.5, 1.5, 1.5);
}
/* rotate3d 示例 */
.rotate3d-example {
transform: rotate3d(1, 1, 0, 45deg);
}
/* rotateX 示例 */
.rotateX-example {
transform: rotateX(60deg);
}
/* rotateY 示例 */
.rotateY-example {
transform: rotateY(60deg);
}
/* rotateZ 示例 */
.rotateZ-example {
transform: rotateZ(60deg);
}
</style>
</head>
<body>
<h1>CSS3 3D Transforms Examples with Animation</h1>
<h2>Animated transform</h2>
<div class="box animate-transform">
Animated 3D Transform
</div>
<h2>transform</h2>
<div class="box transform-example">
Rotate X and Y
</div>
<h2>transform-origin</h2>
<div class="box transform-origin-example">
Transform Origin
</div>
<h2>transform-style</h2>
<div class="box transform-style-example">
Transform Style
<div class="box">Nested Box</div>
</div>
<h2>perspective</h2>
<div class="perspective-example">
<div class="box">
Perspective
</div>
</div>
<h2>perspective-origin</h2>
<div class="perspective-origin-example">
<div class="box">
Perspective Origin
</div>
</div>
<h2>backface-visibility</h2>
<div class="backface-visibility-example">
<div class="box">
Backface Visibility
</div>
</div>
<h2>matrix3d</h2>
<div class="box matrix3d-example">
Matrix3d
</div>
<h2>translate3d</h2>
<div class="box translate3d-example">
Translate3d
</div>
<h2>scale3d</h2>
<div class="box scale3d-example">
Scale3d
</div>
<h2>rotate3d</h2>
<div class="box rotate3d-example">
Rotate3d
</div>
<h2>rotateX</h2>
<div class="box rotateX-example">
RotateX
</div>
<h2>rotateY</h2>
<div class="box rotateY-example">
RotateY
</div>
<h2>rotateZ</h2>
<div class="box rotateZ-example">
RotateZ
</div>
</body>
</html>
3.9 css3过渡
00.属性
transition 简写属性,用于在一个属性中设置四个过渡属性
transition-property 规定应用过渡的 CSS 属性的名称
transition-duration 定义过渡效果花费的时间。默认是 0
transition-timing-function 规定过渡效果的时间曲线。默认是 "ease"
transition-delay 规定过渡效果何时开始。默认是 0
01.属性选项
a.transition
描述: 用于设置过渡效果的简写属性,包含以下四个属性。
选项:
transition-property: 要应用过渡的 CSS 属性名称。
transition-duration: 过渡效果持续的时间。
transition-timing-function: 过渡效果的时间曲线。
transition-delay: 过渡效果开始的延迟时间。
b.transition-property
描述: 规定应用过渡的 CSS 属性的名称。
选项:
all: 所有属性(默认值)。
具体属性名称,例如 width、height、background-color、opacity 等。
c.transition-duration
描述: 定义过渡效果花费的时间。默认值是 0。
选项:
时间单位:可以是秒(s)或毫秒(ms)。
示例: 2s, 500ms, 0.5s
d.transition-timing-function
描述: 规定过渡效果的时间曲线。默认值是 ease。
选项:
ease: 默认值,开始慢,接着加速,然后减速。
linear: 以恒定速度过渡。
ease-in: 从慢到快。
ease-out: 从快到慢。
ease-in-out: 先慢后快再慢。
cubic-bezier(n,n,n,n): 自定义贝塞尔曲线,n 是 0 到 1 之间的值,定义过渡的速度变化。
e.transition-delay
描述: 规定过渡效果何时开始。默认值是 0。
选项:
时间单位:可以是秒(s)或毫秒(ms)。
示例: 1s, 200ms, 0s
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 过渡效果</title>
<style>
body {
font-family: Arial, sans-serif;
}
.box {
width: 200px;
height: 200px;
background-color: #4CAF50;
transition: width 2s, height 2s; /* 应用过渡效果 */
-webkit-transition: width 2s, height 2s; /* Safari */
margin: 20px;
}
.box:hover {
width: 300px; /* 鼠标悬浮时宽度变化 */
height: 300px; /* 鼠标悬浮时高度变化 */
}
/* 其他示例 */
.box-multiple {
width: 150px;
height: 150px;
background-color: #2196F3;
transition: width 2s, height 2s, transform 2s; /* 多个样式变化 */
-webkit-transition: width 2s, height 2s, -webkit-transform 2s; /* Safari */
margin: 20px;
}
.box-multiple:hover {
width: 250px;
height: 250px;
transform: rotate(20deg); /* 鼠标悬浮时旋转 */
}
</style>
</head>
<body>
<h1>CSS3 过渡效果示例</h1>
<div class="box">鼠标悬浮在此</div>
<div class="box-multiple">多个变化示例</div>
<h2>过渡属性</h2>
<table border="1">
<tr>
<th>属性</th>
<th>描述</th>
<th>CSS</th>
</tr>
<tr>
<td>transition</td>
<td>简写属性,用于在一个属性中设置四个过渡属性。</td>
<td>3</td>
</tr>
<tr>
<td>transition-property</td>
<td>规定应用过渡的 CSS 属性的名称。</td>
<td>3</td>
</tr>
<tr>
<td>transition-duration</td>
<td>定义过渡效果花费的时间。默认是 0。</td>
<td>3</td>
</tr>
<tr>
<td>transition-timing-function</td>
<td>规定过渡效果的时间曲线。默认是 "ease"。</td>
<td>3</td>
</tr>
<tr>
<td>transition-delay</td>
<td>规定过渡效果何时开始。默认是 0。</td>
<td>3</td>
</tr>
</table>
</body>
</html>
3.10 css3动画
00.属性
@keyframes 规定动画
animation 所有动画属性的简写属性
animation-name 规定 @keyframes 动画的名称
animation-duration 规定动画完成一个周期所花费的秒或毫秒。默认是 0
animation-timing-function 规定动画的速度曲线。默认是 "ease"
animation-fill-mode 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式
animation-delay 规定动画何时开始。默认是 0
animation-iteration-count 规定动画被播放的次数。默认是 1
animation-direction 规定动画是否在下一周期逆向地播放。默认是 "normal"
animation-play-state 规定动画是否正在运行或暂停。默认是 "running"
01.属性选项
a.@keyframes
描述: 规定动画的关键帧。
选项: 关键帧的名称。可以使用百分比(0% 到 100%)或关键字 from 和 to(等同于 0% 和 100%)。
b.animation
描述: 所有动画属性的简写属性。
选项:
animation-name: 动画的名称
animation-duration: 动画持续时间
animation-timing-function: 动画速度曲线
animation-delay: 动画延迟时间
animation-iteration-count: 动画迭代次数
animation-direction: 动画播放方向
animation-fill-mode: 动画填充模式
animation-play-state: 动画播放状态
c.animation-name
描述: 规定 @keyframes 动画的名称。
选项: 动画名称(字符串),或 none 表示没有动画。
d.animation-duration
描述: 规定动画完成一个周期所花费的时间。
选项: 时间值(如 2s, 500ms),默认值为 0。
e.animation-timing-function
描述: 规定动画的速度曲线。
选项:
linear: 线性速度
ease: 缓动(默认)
ease-in: 加速
ease-out: 减速
ease-in-out: 加速后减速
cubic-bezier(n,n,n,n): 自定义贝塞尔曲线
f.animation-fill-mode
描述: 规定当动画不播放时要应用到元素的样式。
选项:
none: 默认,不应用任何样式
forwards: 保持动画结束时的样式
backwards: 在动画开始前应用动画的初始样式
both: 同时应用前向和后向样式
g.animation-delay
描述: 规定动画何时开始。
选项: 时间值(如 1s, 500ms),默认值为 0。
h.animation-iteration-count
描述: 规定动画被播放的次数。
选项:
正整数(如 1, 2 等)
infinite: 无限循环
i.animation-direction
描述: 规定动画是否在下一周期逆向地播放。
选项:
normal: 正常方向(默认)
reverse: 反向
alternate: 正向和反向交替
alternate-reverse: 反向和正向交替
j.animation-play-state
描述: 规定动画是否正在运行或暂停。
选项:
running: 运行(默认)
paused: 暂停
02.样式
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 动画示例</title>
<style>
/* 动画定义 */
@keyframes myfirst {
0% { background: red; left: 0px; top: 0px; }
25% { background: yellow; left: 200px; top: 0px; }
50% { background: blue; left: 200px; top: 200px; }
75% { background: green; left: 0px; top: 200px; }
100% { background: red; left: 0px; top: 0px; }
}
@-webkit-keyframes myfirst { /* Safari 和 Chrome */
0% { background: red; left: 0px; top: 0px; }
25% { background: yellow; left: 200px; top: 0px; }
50% { background: blue; left: 200px; top: 200px; }
75% { background: green; left: 0px; top: 200px; }
100% { background: red; left: 0px; top: 0px; }
}
/* 应用动画 */
.animated-div {
position: relative;
width: 100px;
height: 100px;
animation: myfirst 5s infinite; /* 使用动画 */
-webkit-animation: myfirst 5s infinite; /* Safari 和 Chrome */
}
</style>
</head>
<body>
<h2>CSS3 动画示例</h2>
<div class="animated-div"></div>
<script>
// 动画属性方法示例
function animationExamples() {
// 1. @keyframes 规则
const keyframesExample = `
@keyframes myAnimation {
from { background: red; }
to { background: yellow; }
}
`;
console.log("1. @keyframes 规则示例:\n", keyframesExample);
// 2. animation 属性
const animationExample = `
animation: myAnimation 2s;
`;
console.log("2. animation 属性示例:\n", animationExample);
// 3. animation-name 属性
const animationNameExample = `
animation-name: myAnimation;
`;
console.log("3. animation-name 属性示例:\n", animationNameExample);
// 4. animation-duration 属性
const animationDurationExample = `
animation-duration: 2s;
`;
console.log("4. animation-duration 属性示例:\n", animationDurationExample);
// 5. animation-timing-function 属性
const animationTimingFunctionExample = `
animation-timing-function: ease;
`;
console.log("5. animation-timing-function 属性示例:\n", animationTimingFunctionExample);
// 6. animation-fill-mode 属性
const animationFillModeExample = `
animation-fill-mode: forwards;
`;
console.log("6. animation-fill-mode 属性示例:\n", animationFillModeExample);
// 7. animation-delay 属性
const animationDelayExample = `
animation-delay: 1s;
`;
console.log("7. animation-delay 属性示例:\n", animationDelayExample);
// 8. animation-iteration-count 属性
const animationIterationCountExample = `
animation-iteration-count: infinite;
`;
console.log("8. animation-iteration-count 属性示例:\n", animationIterationCountExample);
// 9. animation-direction 属性
const animationDirectionExample = `
animation-direction: alternate;
`;
console.log("9. animation-direction 属性示例:\n", animationDirectionExample);
// 10. animation-play-state 属性
const animationPlayStateExample = `
animation-play-state: paused;
`;
console.log("10. animation-play-state 属性示例:\n", animationPlayStateExample);
}
animationExamples(); // 调用动画属性方法示例
</script>
</body>
</html>
3.11 css3多列
00.属性
column-count 指定元素应该被分割的列数。
column-fill 指定如何填充列
column-gap 指定列与列之间的间隙
column-rule 所有 column-rule-* 属性的简写
column-rule-color 指定两列间边框的颜色
column-rule-style 指定两列间边框的样式
column-rule-width 指定两列间边框的厚度
column-span 指定元素要跨越多少列
column-width 指定列的宽度
columns column-width 与 column-count 的简写属性
01.属性选项
a.column-count
描述: 指定元素应该被分割的列数。
选项:
任何正整数(如 1, 2, 3, …)
b.column-fill
描述: 指定如何填充列。
选项:
auto: 默认值,浏览器决定填充方式。
balance: 尝试使所有列的高度相等。
c.column-gap
描述: 指定列与列之间的间隙。
选项:
任何长度单位(如 px, em, % 等)
d.column-rule
描述: 所有 column-rule-* 属性的简写。
选项:
column-rule-width column-rule-style column-rule-color
例如: 1px solid lightblue
e.column-rule-color
描述: 指定两列间边框的颜色。
选项:
任何有效的颜色值(如 red, #ff0000, rgba(255,0,0,0.5))
f.column-rule-style
描述: 指定两列间边框的样式。
选项:
none: 无边框
solid: 实线
dotted: 点线
dashed: 虚线
double: 双线
groove: 凹槽边框
ridge: 隆起边框
inset: 内嵌边框
outset: 外凸边框
g.column-rule-width
描述: 指定两列间边框的厚度。
选项:
任何长度单位(如 px, em, % 等)
h.column-span
描述: 指定元素要跨越多少列。
选项:
none: 默认值,不跨越列
all: 跨越所有列(仅在某些浏览器支持)
i.column-width
描述: 指定列的宽度。
选项:
任何长度单位(如 px, em, % 等)
j.columns
描述: column-width 与 column-count 的简写属性。
选项:
column-count column-width
例如: 3 100px 表示 3 列,每列宽度为 100px
02.样式
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 多列示例</title>
<style>
body {
font-family: Arial, sans-serif;
}
/* 多列布局 */
.multi-column {
-webkit-column-count: 3; /* Chrome, Safari, Opera */
-moz-column-count: 3; /* Firefox */
column-count: 3;
-webkit-column-gap: 40px; /* Chrome, Safari, Opera */
-moz-column-gap: 40px; /* Firefox */
column-gap: 40px;
-webkit-column-rule: 1px solid lightblue; /* Chrome, Safari, Opera */
-moz-column-rule: 1px solid lightblue; /* Firefox */
column-rule: 1px solid lightblue;
-webkit-column-width: 100px; /* Chrome, Safari, Opera */
column-width: 100px;
}
/* 跨越所有列 */
.span-all {
-webkit-column-span: all; /* Chrome, Safari, Opera */
column-span: all;
display: block; /* 确保跨列标题为块级元素 */
margin-top: 20px; /* 添加顶部外边距 */
margin-bottom: 10px; /* 添加底部外边距 */
background-color: lightgray; /* 设置背景色 */
padding: 10px; /* 添加内边距 */
text-align: center; /* 文字居中 */
}
</style>
</head>
<body>
<h1>CSS3 多列示例</h1>
<h2 class="span-all">跨越所有列的标题</h2> <!-- 这里移动了标题 -->
<div class="multi-column">
菜鸟教程 - 学的不仅是技术,更是梦想!菜鸟教程(www.runoob.com)提供了最全的编程技术基础教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识。 同时本站中也提供了大量的在线实例,通过实例,您可以更好的学习编程。
</div>
<script>
// CSS3 多列属性方法
function columnCountExample() {
console.log('column-count: 指定元素应该被分割的列数。');
}
function columnGapExample() {
console.log('column-gap: 指定列与列之间的间隙。');
}
function columnRuleExample() {
console.log('column-rule: 所有 column-rule-* 属性的简写。');
}
function columnRuleColorExample() {
console.log('column-rule-color: 指定两列间边框的颜色。');
}
function columnRuleStyleExample() {
console.log('column-rule-style: 指定两列间边框的样式。');
}
function columnRuleWidthExample() {
console.log('column-rule-width: 指定两列间边框的厚度。');
}
function columnSpanExample() {
console.log('column-span: 指定元素要跨越多少列。');
}
function columnWidthExample() {
console.log('column-width: 指定列的宽度。');
}
function columnsExample() {
console.log('columns: column-width 与 column-count 的简写属性。');
}
// 调用示例
columnCountExample();
columnGapExample();
columnRuleExample();
columnRuleColorExample();
columnRuleStyleExample();
columnRuleWidthExample();
columnSpanExample();
columnWidthExample();
columnsExample();
</script>
</body>
</html>
3.12 css3用户界面
00.属性
appearance 允许您使一个元素的外观像一个标准的用户界面元素
box-sizing 允许你以适应区域而用某种方式定义某些元素
icon 为创作者提供了将元素设置为图标等价物的能力
nav-down 指定在何处使用箭头向下导航键时进行导航
nav-index 指定一个元素的Tab的顺序
nav-left 指定在何处使用左侧的箭头导航键进行导航
nav-right 指定在何处使用右侧的箭头导航键进行导航
nav-up 指定在何处使用箭头向上导航键时进行导航
outline-offset 外轮廓修饰并绘制超出边框的边缘
resize 指定一个元素是否是由用户调整大小
01.属性选项
a.appearance
appearance 属性用于控制元素的外观,使其与操作系统的默认用户界面元素外观一致。
none:去除默认的用户界面外观样式,使元素显示为普通的 HTML 元素。
button:使元素看起来像一个按钮(适用于按钮类元素)。
textfield:使元素看起来像一个文本输入框(适用于输入框)。
searchfield:使元素看起来像一个搜索输入框(适用于搜索框)。
listbox:使元素看起来像一个下拉列表框(适用于下拉选择框)。
b.box-sizing
box-sizing 属性定义了元素的尺寸如何计算,包括边框和内边距。
content-box(默认值):宽度和高度仅包括内容区域,边框和内边距不包括在内。
border-box:宽度和高度包括内容区域、内边距和边框。
c.icon
icon 属性用于将元素指定为图标。
url():定义图标的 URL 地址。通常用于指定图标文件。
none:不显示图标(默认值)。
d.nav-*
nav-* 属性用于控制使用方向键导航时的元素顺序(实际支持可能有限)。
nav-up:指定当按下向上箭头键时应导航到的元素。
nav-down:指定当按下向下箭头键时应导航到的元素。
nav-left:指定当按下向左箭头键时应导航到的元素。
nav-right:指定当按下向右箭头键时应导航到的元素.
nav-index:指定元素的 tab 顺序。
e.outline-offset
outline-offset 属性设置轮廓线与元素边框之间的距离。
<length>:定义轮廓线与元素边框之间的距离。单位可以是 px、em 等。
initial:使用默认值。
inherit:继承父元素的 outline-offset 值。
f.resize
resize 属性允许用户调整元素的大小。
none:禁止用户调整大小(默认值)。
both:允许用户在两个方向上调整大小(水平和垂直)。
horizontal:仅允许用户水平调整大小。
vertical:仅允许用户垂直调整大小.
02.样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 User Interface Properties</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
padding: 20px;
}
/* Resize */
.resize-example {
width: 200px;
height: 200px;
border: 2px solid black;
resize: both;
overflow: auto;
margin: 20px auto;
}
/* Box-Sizing */
.box-sizing-example {
width: 200px;
height: 200px;
border: 5px solid black;
box-sizing: border-box;
background-color: lightblue;
float: left;
margin: 20px;
}
.box-sizing-example + .box-sizing-example {
background-color: lightcoral;
}
/* Outline Offset */
.outline-offset-example {
border: 2px solid black;
outline: 2px solid red;
outline-offset: 15px;
width: 200px;
height: 200px;
margin: 20px auto;
background-color: lightgreen;
}
/* Appearance */
.appearance-example {
appearance: none;
border: 2px solid black;
padding: 10px;
margin: 20px;
font-size: 16px;
background-color: lightyellow;
}
/* Navigation (Tab Order) */
.nav-example {
margin: 20px;
padding: 10px;
border: 2px solid black;
}
.nav-example input {
margin: 5px;
padding: 5px;
}
/* Using nav-* attributes for tab order (Note: Browser support may vary) */
.nav-example input:nth-of-type(1) {
nav-index: 1;
}
.nav-example input:nth-of-type(2) {
nav-index: 2;
}
.nav-example input:nth-of-type(3) {
nav-index: 3;
}
.nav-example input:nth-of-type(4) {
nav-index: 4;
}
/* Custom styles for visibility */
.nav-example input:focus {
border-color: blue;
outline: none;
}
</style>
</head>
<body>
<h1>CSS3 User Interface Properties Examples</h1>
<h2>Resize</h2>
<div class="resize-example">
Resize Me
</div>
<h2>Box-Sizing</h2>
<div class="box-sizing-example">
Box Sizing 1
</div>
<div class="box-sizing-example">
Box Sizing 2
</div>
<h2>Outline Offset</h2>
<div class="outline-offset-example">
Outline Offset
</div>
<h2>Appearance</h2>
<input type="text" class="appearance-example" placeholder="Custom appearance input">
<h2>Navigation (Tab Order)</h2>
<div class="nav-example">
<input type="text" placeholder="Input 1">
<input type="text" placeholder="Input 2">
<input type="text" placeholder="Input 3">
<input type="text" placeholder="Input 4">
</div>
</body>
</html>
3.13 css3图片1
00.属性
a.css图片属性
background 用于设置背景图像、颜色、位置等。 background: url(image.jpg) no-repeat center center;
background-color 设置背景颜色。 background-color: #fff;
background-image 设置背景图像。 background-image: url(image.jpg);
background-position 设置背景图像的位置。 background-position: center;
background-repeat 设置背景图像的重复方式。 background-repeat: no-repeat;
background-size 设置背景图像的尺寸。 background-size: cover;
border-image 允许你将图像用作边框。 border-image: url(border.png) 30 round;
border-image-source 设置用作边框的图像。 border-image-source: url(border.png);
border-image-slice 定义图像的哪些部分用作边框。 border-image-slice: 30%;
border-image-width 设置边框图像的宽度。 border-image-width: 10px;
border-image-outset 设置边框图像的外扩。 border-image-outset: 10px;
border-image-repeat 设置边框图像的重复方式。 border-image-repeat: repeat;
clip 控制元素的可视区域(已废弃,使用 clip-path 代替)。 clip: rect(0, 100px, 100px, 0);
mask 用于应用遮罩效果。 mask: url(mask.svg);
mask-image 设置用于遮罩的图像。 mask-image: url(mask.svg);
mask-size 设置遮罩图像的尺寸。 mask-size: cover;
mask-repeat 设置遮罩图像的重复方式。 mask-repeat: no-repeat;
mask-position 设置遮罩图像的位置。 mask-position: center;
mask-composite 控制遮罩图像的合成模式(已废弃,使用 mask-mode 代替) mask-composite: add;
mask-mode 设置遮罩图像的模式。 mask-mode: alpha;
mask-origin 设置遮罩图像的原点。 mask-origin: content-box;
mask-clip 设置遮罩图像的剪切区域。 mask-clip: border-box;
mask-border 设置边框遮罩效果。 mask-border: url(border-mask.svg);
mask-border-source 设置用于边框遮罩的图像。 mask-border-source: url(border-mask.svg);
mask-border-slice 设置边框遮罩的切片区域。 mask-border-slice: 30%;
mask-border-width 设置边框遮罩的宽度。 mask-border-width: 10px;
mask-border-outset 设置边框遮罩的外扩。 mask-border-outset: 10px;
mask-border-repeat 设置边框遮罩的重复方式。 mask-border-repeat: repeat;
b.css3图片属性
background-attachment 设置背景图像是否固定在视口中。 background-attachment: fixed;
background-clip 设置背景的绘制区域。 background-clip: border-box;
background-origin 设置背景图像的原点。 background-origin: padding-box;
background-size CSS3 扩展了背景图像的尺寸控制。 background-size: contain;
object-fit 控制替代元素的内容如何适配其盒子。 object-fit: cover;
object-position 控制替代元素内容的位置。 object-position: center;
clip-path 定义元素的可视区域。 clip-path: circle(50% at 50% 50%);
mask-type 指定遮罩图像的类型。 mask-type: luminance;
mask-mode 允许指定遮罩模式。 mask-mode: alpha;
mask-composite 定义多个遮罩的合成方式(CSS2废弃,CSS3mask-mode替代) mask-composite: add;
mask-image 允许使用图像作为遮罩。 mask-image: url(mask.svg);
01.属性选项
a.css图片属性
a.background
描述: 用于设置背景图像、颜色、位置等。
选项:
background: url(image.jpg) no-repeat center center;
background: #fff;
background: url(image.jpg) repeat-x;
background: #000 url(image.jpg) center top;
b.background-color
描述: 设置背景颜色。
选项:
background-color: #fff; (白色)
background-color: rgba(255, 0, 0, 0.5); (半透明红色)
background-color: hsl(120, 100%, 50%); (绿色)
c.background-image
描述: 设置背景图像。
选项:
background-image: url(image.jpg);
background-image: linear-gradient(to right, #ff7e5f, #feb47b);
d.background-position
描述: 设置背景图像的位置。
选项:
background-position: center;
background-position: top left;
background-position: 10px 20px;
e.background-repeat
描述: 设置背景图像的重复方式。
选项:
background-repeat: no-repeat;
background-repeat: repeat-x;
background-repeat: repeat-y;
background-repeat: repeat;
f.background-size
描述: 设置背景图像的尺寸。
选项:
background-size: cover;
background-size: contain;
background-size: 100px 200px;
g.border-image
描述: 允许你将图像用作边框。
选项:
border-image: url(border.png) 30 round;
border-image: url(border.png) 10 stretch;
h.border-image-source
描述: 设置用作边框的图像。
选项:
border-image-source: url(border.png);
border-image-source: none;
i.border-image-slice
描述: 定义图像的哪些部分用作边框。
选项:
border-image-slice: 30%;
border-image-slice: 10 20 30 40;
j.border-image-width
描述: 设置边框图像的宽度。
选项:
border-image-width: 10px;
border-image-width: 1em;
k.border-image-outset
描述: 设置边框图像的外扩。
选项:
border-image-outset: 10px;
border-image-outset: 2em;
l.border-image-repeat
描述: 设置边框图像的重复方式。
选项:
border-image-repeat: stretch;
border-image-repeat: repeat;
border-image-repeat: round;
m.clip(已废弃)
描述: 控制元素的可视区域。
选项:
clip: rect(0, 100px, 100px, 0);
n.mask
描述: 用于应用遮罩效果。
选项:
mask: url(mask.svg);
mask: none;
o.mask-image
描述: 设置用于遮罩的图像。
选项:
mask-image: url(mask.svg);
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), transparent);
p.mask-size
描述: 设置遮罩图像的尺寸。
选项:
mask-size: cover;
mask-size: contain;
mask-size: 100px 200px;
q.mask-repeat
描述: 设置遮罩图像的重复方式。
选项:
mask-repeat: no-repeat;
mask-repeat: repeat;
r.mask-position
描述: 设置遮罩图像的位置。
选项:
mask-position: center;
mask-position: top right;
s.mask-composite (已废弃)
描述: 控制遮罩图像的合成模式。
选项:
mask-composite: add;
t.mask-mode
描述: 设置遮罩图像的模式。
选项:
mask-mode: alpha;
mask-mode: luminance;
u.mask-origin
描述: 设置遮罩图像的原点。
选项:
mask-origin: content-box;
mask-origin: padding-box;
y.mask-clip
描述: 设置遮罩图像的剪切区域。
选项:
mask-clip: border-box;
mask-clip: padding-box;
w.mask-border
描述: 设置边框遮罩效果。
选项:
mask-border: url(border-mask.svg);
mask-border: none;
z.mask-border-source
描述: 设置用于边框遮罩的图像。
选项:
mask-border-source: url(border-mask.svg);
mask-border-source: none;
a.mask-border-slice
描述: 设置边框遮罩的切片区域。
选项:
mask-border-slice: 30%;
mask-border-slice: 10 20 30 40;
b.mask-border-width
描述: 设置边框遮罩的宽度。
选项:
mask-border-width: 10px;
mask-border-width: 1em;
c.mask-border-outset
描述: 设置边框遮罩的外扩。
选项:
mask-border-outset: 10px;
mask-border-outset: 2em;
d.mask-border-repeat
描述: 设置边框遮罩的重复方式。
选项:
mask-border-repeat: repeat;
mask-border-repeat: round;
b.CSS3图片属性(新特性)
a.background-attachment
描述: 设置背景图像是否固定在视口中。
选项:
background-attachment: fixed;
background-attachment: scroll;
b.background-clip
描述: 设置背景的绘制区域。
选项:
background-clip: border-box;
background-clip: padding-box;
background-clip: content-box;
c.background-origin
描述: 设置背景图像的原点。
选项:
background-origin: padding-box;
background-origin: border-box;
background-origin: content-box;
d.background-size
用于设置背景图像的尺寸和覆盖方式。其主要选项包括:
auto:让背景图像保持其原始尺寸。如果只指定一个尺寸,另一个维度将自动调整以保持图像的纵横比。
contain:缩放背景图像,使其完全包含在背景区域内,同时保持图像的纵横比。图像可能不会完全覆盖背景区域,可能会有空白区域。
cover:缩放背景图像,使其覆盖整个背景区域,同时保持图像的纵横比。图像可能会超出背景区域的边界。
<length>:使用具体的长度单位(如 px、em)来设置背景图像的宽度。高度可以使用 auto 保持纵横比。例如:background-size: 100px auto;。
<percentage>:使用百分比来设置背景图像的宽度。高度可以使用 auto 保持纵横比。例如:background-size: 50% auto;。
<length> <length>:分别设置背景图像的宽度和高度,允许您指定具体的宽度和高度。例如:background-size: 100px 50px;。
<percentage> <percentage>:使用百分比来分别设置背景图像的宽度和高度。例如:background-size: 50% 50%;。
e.object-fit
描述: 控制替代元素的内容如何适配其盒子。
选项:
object-fit: cover;
object-fit: contain;
object-fit: fill;
object-fit: none;
object-fit: scale-down;
f.object-position
描述: 控制替代元素内容的位置。
选项:
object-position: center;
object-position: top right;
object-position: 10px 20px;
g.clip-path
描述: 定义元素的可视区域。
选项:
clip-path: circle(50% at 50% 50%);
clip-path: ellipse(50% 30% at 50% 50%);
clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
clip-path: inset(10px 20px 30px 40px);
h.mask-type
描述: 指定遮罩图像的类型。
选项:
mask-type: luminance;
mask-type: alpha;
i.mask-mode
描述: 允许指定遮罩模式。
选项:
mask-mode: alpha;
mask-mode: luminance;
j.mask-composite(已废弃)
描述: 定义多个遮罩的合成方式。
选项:
mask-composite: add;
mask-composite: subtract;
k.mask-image
描述: 允许使用图像作为遮罩。
选项:
mask-image: url(mask.svg);
mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), transparent);
02.样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS 图片属性示例</title>
<style>
/* 基本背景属性 */
.background-example {
width: 300px;
height: 200px;
margin: 10px;
color: white;
font-weight: bold;
text-align: center;
line-height: 200px;
}
.background-example1 {
background: url('https://via.placeholder.com/300x200') no-repeat center center;
background-size: cover;
background-color: #ffcccb; /* 背景色 */
}
.background-example2 {
background-color: #ffcccb;
color: black;
}
.background-example3 {
background-image: url('https://via.placeholder.com/300x200');
background-position: bottom right;
background-repeat: no-repeat;
background-size: contain;
}
/* 边框图像属性 */
.border-image-example {
width: 200px;
height: 200px;
border: 10px solid transparent;
border-image-source: url('https://via.placeholder.com/200x200');
border-image-slice: 30%;
border-image-width: 10px;
border-image-repeat: round;
margin: 10px;
}
/* 遮罩属性 */
.mask-example {
width: 300px;
height: 200px;
background: url('https://via.placeholder.com/300x200') no-repeat center center;
background-size: cover;
-webkit-mask-image: url('https://via.placeholder.com/300x200/ff0000');
mask-image: url('https://via.placeholder.com/300x200/ff0000');
-webkit-mask-size: cover;
mask-size: cover;
margin: 10px;
}
/* CSS3 图片属性示例 */
.object-fit-example {
width: 300px;
height: 200px;
object-fit: cover;
object-position: center;
margin: 10px;
}
.clip-path-example {
width: 300px;
height: 200px;
background: url('https://via.placeholder.com/300x200') no-repeat center center;
background-size: cover;
clip-path: circle(50% at 50% 50%);
margin: 10px;
}
.filter-example {
width: 300px;
height: 200px;
background: url('https://via.placeholder.com/300x200') no-repeat center center;
background-size: cover;
filter: grayscale(50%) sepia(50%) brightness(80%);
margin: 10px;
}
.mix-blend-mode-example {
width: 300px;
height: 200px;
background: url('https://via.placeholder.com/300x200') no-repeat center center;
background-size: cover;
mix-blend-mode: multiply;
margin: 10px;
}
/* 使用图像作为按钮背景 */
.button {
display: inline-block;
padding: 10px 20px;
color: white;
background: url('https://via.placeholder.com/100x50') no-repeat center center;
background-size: cover;
border: none;
font-size: 16px;
cursor: pointer;
text-align: center;
line-height: normal;
}
.button:hover {
background-color: rgba(0, 0, 0, 0.5);
}
</style>
</head>
<body>
<h1>CSS 图片属性示例</h1>
<!-- 基本背景属性 -->
<h2>背景属性</h2>
<div class="background-example background-example1">背景示例 1</div>
<div class="background-example background-example2">背景颜色示例</div>
<div class="background-example background-example3">背景图像示例</div>
<!-- 边框图像属性 -->
<h2>边框图像属性</h2>
<div class="border-image-example">边框图像示例</div>
<!-- 遮罩属性 -->
<h2>遮罩属性</h2>
<div class="mask-example">遮罩示例</div>
<!-- CSS3 图片属性 -->
<h2>CSS3 图片属性</h2>
<div class="object-fit-example">
<img src="https://via.placeholder.com/300x200" alt="Object Fit Example" style="width: 100%; height: 100%; object-fit: cover;">
</div>
<div class="clip-path-example">Clip Path 示例</div>
<div class="filter-example">Filter 示例</div>
<div class="mix-blend-mode-example">Mix Blend Mode 示例</div>
<!-- 使用图像作为按钮背景 -->
<h2>按钮背景图像</h2>
<button class="button">按钮示例</button>
</body>
</html>
3.14 css3图片2
01.类型
圆角图片
椭圆形图片
缩略图
响应式图片
图片文本定位
卡片式图片
图片滤镜
响应式图片相册
02.样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS 图片示例</title>
<style>
/* 全局样式 */
body {
font-family: Arial, sans-serif;
background-color: #f9f9f9;
margin: 20px;
padding: 0;
}
/* 圆角图片 */
.rounded {
border-radius: 8px;
}
/* 椭圆形图片 */
.oval {
border-radius: 50%;
}
/* 缩略图 */
.thumbnail img {
border: 1px solid #ddd;
border-radius: 4px;
padding: 5px;
}
.thumbnail a {
display: inline-block;
border: 1px solid #ddd;
border-radius: 4px;
padding: 5px;
transition: 0.3s;
}
.thumbnail a:hover {
box-shadow: 0 0 2px 1px rgba(0, 140, 186, 0.5);
}
/* 响应式图片 */
.responsive img {
max-width: 100%;
height: auto;
}
/* 图片文本定位 */
.text-overlay {
position: relative;
width: 50%;
}
.text-overlay img {
width: 100%;
height: auto;
}
.text-overlay .text {
position: absolute;
color: white;
padding: 5px;
}
.text-top-left { top: 0; left: 0; }
.text-top-right { top: 0; right: 0; }
.text-bottom-left { bottom: 0; left: 0; }
.text-bottom-right { bottom: 0; right: 0; }
.text-center { top: 50%; left: 50%; transform: translate(-50%, -50%); }
/* 卡片式图片 */
.polaroid {
width: 80%;
background-color: white;
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19);
}
.polaroid img {
width: 100%;
}
.polaroid .container {
text-align: center;
padding: 10px 20px;
}
/* 图片滤镜 */
.grayscale img {
-webkit-filter: grayscale(100%); /* Chrome, Safari, Opera */
filter: grayscale(100%);
}
/* 响应式图片相册 */
.gallery .responsive {
padding: 0 6px;
float: left;
width: 24.99999%;
}
@media only screen and (max-width: 700px) {
.gallery .responsive {
width: 49.99999%;
margin: 6px 0;
}
}
@media only screen and (max-width: 500px) {
.gallery .responsive {
width: 100%;
}
}
/* 图片 Modal(模态) */
.modal {
display: none;
position: fixed;
z-index: 1;
padding-top: 100px;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgb(0,0,0);
background-color: rgba(0,0,0,0.9);
}
.modal-content {
margin: auto;
display: block;
width: 80%;
max-width: 700px;
}
.modal-content {
-webkit-animation-name: zoom;
-webkit-animation-duration: 0.6s;
animation-name: zoom;
animation-duration: 0.6s;
}
@-webkit-keyframes zoom {
from {transform:scale(0)}
to {transform:scale(1)}
}
@keyframes zoom {
from {transform:scale(0.1)}
to {transform:scale(1)}
}
.close {
position: absolute;
top: 15px;
right: 35px;
color: #f1f1f1;
font-size: 40px;
font-weight: bold;
transition: 0.3s;
}
.close:hover,
.close:focus {
color: #bbb;
text-decoration: none;
cursor: pointer;
}
</style>
</head>
<body>
<h2>CSS 图片示例</h2>
<h3>圆角图片</h3>
<img src="https://via.placeholder.com/200" alt="示例图片" class="rounded" width="200">
<h3>椭圆形图片</h3>
<img src="https://via.placeholder.com/200" alt="示例图片" class="oval" width="200">
<h3>缩略图</h3>
<div class="thumbnail">
<img src="https://via.placeholder.com/200" alt="示例图片" width="200">
</div>
<div class="thumbnail">
<a href="https://via.placeholder.com/200">
<img src="https://via.placeholder.com/200" alt="示例图片" width="200">
</a>
</div>
<h3>响应式图片</h3>
<div class="responsive">
<img src="https://via.placeholder.com/600x400" alt="示例图片">
</div>
<h3>图片文本定位</h3>
<div class="text-overlay">
<img src="https://via.placeholder.com/600x400" alt="示例图片">
<div class="text text-top-left">左上角</div>
</div>
<div class="text-overlay">
<img src="https://via.placeholder.com/600x400" alt="示例图片">
<div class="text text-top-right">右上角</div>
</div>
<div class="text-overlay">
<img src="https://via.placeholder.com/600x400" alt="示例图片">
<div class="text text-bottom-left">左下角</div>
</div>
<div class="text-overlay">
<img src="https://via.placeholder.com/600x400" alt="示例图片">
<div class="text text-bottom-right">右下角</div>
</div>
<div class="text-overlay">
<img src="https://via.placeholder.com/600x400" alt="示例图片">
<div class="text text-center">居中</div>
</div>
<h3>卡片式图片</h3>
<div class="polaroid">
<img src="https://via.placeholder.com/400x300" alt="示例图片">
<div class="container">
<p>示例图片</p>
</div>
</div>
<h3>图片滤镜</h3>
<div class="grayscale">
<img src="https://via.placeholder.com/200" alt="示例图片" width="200">
</div>
<h3>响应式图片相册</h3>
<div class="gallery">
<div class="responsive">
<img src="https://via.placeholder.com/300" alt="示例图片">
</div>
<div class="responsive">
<img src="https://via.placeholder.com/300" alt="示例图片">
</div>
<div class="responsive">
<img src="https://via.placeholder.com/300" alt="示例图片">
</div>
<div class="responsive">
<img src="https://via.placeholder.com/300" alt="示例图片">
</div>
</div>
<h3>图片 Modal(模态)</h3>
<img id="myImg" src="https://via.placeholder.com/300" alt="示例图片" width="300">
<div id="myModal" class="modal">
<span class="close">×</span>
<img class="modal-content" id="img01">
<div id="caption"></div>
</div>
<script>
// 获取模态窗口
var modal = document.getElementById('myModal');
// 获取图片模态框,alt 属性作为图片弹出中文本描述
var img = document.getElementById('myImg');
var modalImg = document.getElementById("img01");
var captionText = document.getElementById("caption");
img.onclick = function() {
modal.style.display = "block";
modalImg.src = this.src;
modalImg.alt = this.alt;
captionText.innerHTML = this.alt;
}
// 获取 <span> 元素,关闭模态窗口
var span = document.getElementsByClassName("close")[0];
span.onclick = function() {
modal.style.display = "none";
}
</script>
</body>
</html>