CSS3学习教程,从入门到精通,CSS3 属性语法知识点及案例代码(4)
CSS3 属性语法知识点及案例代码
一、CSS3 文本属性
1. 颜色相关属性
- color:设置文本颜色。
- text-shadow:设置文本阴影。
2. 字体相关属性
- font-family:设置字体系列。
- font-size:设置字体大小。
- font-weight:设置字体粗细。
- font-style:设置字体风格(如斜体)。
3. 文本修饰属性
- text-decoration:设置文本装饰(如下划线)。
- text-align:设置文本对齐方式。
- line-height:设置行高。
- letter-spacing:设置字母间距。
- word-spacing:设置单词间距。
4. 文本转换属性
- text-transform:设置文本转换(如大写、小写)。
二、CSS3 盒模型属性
1. 外边距属性
- margin:设置外边距。
- margin-top、margin-right、margin-bottom、margin-left:分别设置上、右、下、左边的外边距。
2. 内边距属性
- padding:设置内边距。
- padding-top、padding-right、padding-bottom、padding-left:分别设置上、右、下、左边的内边距。
3. 宽度和高度属性
- width:设置元素宽度。
- height:设置元素高度。
4. 边框属性
- border:设置边框。
- border-width、border-style、border-color:分别设置边框的宽度、样式和颜色。
- border-radius:设置边框圆角。
三、CSS3 背景属性
1. 背景颜色和图像
- background-color:设置背景颜色。
- background-image:设置背景图像。
- background-repeat:设置背景图像是否重复。
- background-position:设置背景图像的位置。
- background-size:设置背景图像的大小。
- background-attachment:设置背景图像是否固定或滚动。
四、CSS3 盒子阴影和轮廓
1. 盒子阴影
- box-shadow:设置盒子阴影。
2. 轮廓
- outline:设置轮廓。
- outline-width、outline-style、outline-color:分别设置轮廓的宽度、样式和颜色。
五、CSS3 二维转换
1. 基本转换
- transform:设置元素的二维转换。
- transform-origin:设置转换的原点。
六、CSS3 动画
1. 关键帧动画
- @keyframes:定义动画的关键帧。
- animation:应用动画。
- animation-name、animation-duration、animation-timing-function、animation-delay、animation-iteration-count、animation-direction、animation-fill-mode、animation-play-state:分别设置动画的名称、持续时间、速度曲线、延迟、迭代次数、方向、填充模式和播放状态。
七、CSS3 多列布局
1. 多列属性
- column-count:设置列数。
- column-width:设置列宽。
- column-gap:设置列之间的间隔。
- column-rule:设置列之间的分隔线。
八、CSS3 弹性布局
1. 弹性容器属性
- display: flex:将元素设置为弹性容器。
- flex-direction:设置主轴方向。
- flex-wrap:设置是否换行。
- justify-content:设置主轴对齐方式。
- align-items:设置侧轴对齐方式。
- align-content:设置多行对齐方式。
2. 弹性项目属性
- order:设置项目的排列顺序。
- flex-grow:设置项目的扩展比例。
- flex-shrink:设置项目的收缩比例。
- flex-basis:设置项目的初始主轴长度。
- align-self:设置项目的侧轴对齐方式。
九、CSS3 网格布局
1. 网格容器属性
- display: grid:将元素设置为网格容器。
- grid-template-columns、grid-template-rows:设置网格的列和行。
- grid-gap:设置网格之间的间隔。
- grid-template-areas:设置网格区域。
2. 网格项目属性
- grid-column、grid-row:设置项目在网格中的位置。
- grid-area:设置项目的网格区域。
十、CSS3 过渡效果
1. 过渡属性
- transition:设置过渡效果。
- transition-property、transition-duration、transition-timing-function、transition-delay:分别设置过渡的属性、持续时间、速度曲线和延迟。
十一、CSS3 滤镜效果
1. 滤镜属性
- filter:设置滤镜效果。
十二、CSS3 媒体查询
1. 媒体查询属性
- @media:用于响应式设计,根据不同的屏幕尺寸设置不同的样式。
十三、CSS3 伪元素和伪类
1. 伪元素
- ::before、::after:在元素前后插入内容。
- ::first-letter、::first-line:设置首字母和首行样式。
2. 伪类
- :hover、:active、:focus:设置元素在不同状态下的样式。
十四、CSS3 颜色函数
1. 颜色函数
- rgb()、rgba()、hsl()、hsla():设置颜色。
十五、CSS3 字体图标
1. 字体图标属性
- @font-face:自定义字体。
十六、CSS3 文本溢出
1. 文本溢出属性
- text-overflow:设置文本溢出时的显示方式。
十七、CSS3 盒模型增强
1. 盒模型属性
- box-sizing:设置盒模型的计算方式。
十八、CSS3 动画和过渡综合案例
案例:按钮悬停效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS3 按钮悬停效果</title>
<style>
/* 设置按钮的基本样式 */
.btn {
display: inline-block;
padding: 10px 20px;
margin: 20px;
border: none;
border-radius: 5px;
color: white;
text-align: center;
cursor: pointer;
transition: all 0.3s ease; /* 设置过渡效果 */
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* 设置阴影 */
}
/* 不同按钮的背景颜色 */
.btn-primary {
background-color: #007bff;
}
.btn-secondary {
background-color: #6c757d;
}
.btn-success {
background-color: #28a745;
}
.btn-danger {
background-color: #dc3545;
}
/* 按钮悬停效果 */
.btn:hover {
transform: translateY(-2px); /* 向上移动 */
box-shadow: 0 6px 8px rgba(0, 0, 0, 0.2); /* 增大阴影 */
}
/* 按钮按下效果 */
.btn:active {
transform: translateY(1px); /* 向下移动 */
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* 减小阴影 */
}
/* 按钮禁用状态 */
.btn:disabled {
opacity: 0.6;
cursor: not-allowed;
}
/* 使用伪元素添加图标 */
.btn::before {
content: "▶ ";
font-weight: bold;
}
</style>
</head>
<body>
<button class="btn btn-primary">主要按钮</button>
<button class="btn btn-secondary">次要按钮</button>
<button class="btn btn-success">成功按钮</button>
<button class="btn btn-danger" disabled>危险按钮</button>
</body>
</html>
案例代码说明
- 基本样式设置:为按钮设置了基本的样式,包括内边距、外边距、边框、圆角、颜色等。
- 过渡效果:使用
transition
属性为按钮的属性变化添加平滑的过渡效果。 - 阴影效果:使用
box-shadow
属性为按钮添加阴影,增强立体感。 - 悬停效果:通过
:hover
伪类,在鼠标悬停时改变按钮的位置和阴影,实现上浮效果。 - 按下效果:通过
:active
伪类,在按钮被按下时改变其位置和阴影,模拟被按下的状态。 - 禁用状态:通过
:disabled
伪类,为禁用的按钮设置透明度和鼠标样式,表示不可用。 - 伪元素:使用
::before
伪元素在按钮前添加图标,增强视觉效果。
这个案例综合运用了 CSS3 的多种属性和伪类,展示了如何通过 CSS3 实现丰富的按钮交互效果。
以下是 CSS3 属性在实际开发中的一些具体案例,涵盖了常见属性的实际应用,每个案例都包含详细注释:
案例一:简单的导航栏样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>导航栏样式</title>
<style>
/* 导航栏容器样式 */
.navbar {
background-color: #333; /* 设置背景颜色 */
padding: 10px 20px; /* 设置内边距 */
border-radius: 5px; /* 设置圆角 */
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* 添加阴影 */
}
/* 导航链接样式 */
.navbar a {
color: white; /* 设置文本颜色 */
text-decoration: none; /* 去掉下划线 */
margin-right: 15px; /* 设置右边距 */
padding: 5px 10px; /* 设置内边距 */
transition: background-color 0.3s ease; /* 添加过渡效果 */
}
/* 鼠标悬停时的样式 */
.navbar a:hover {
background-color: #555; /* 改变背景颜色 */
border-radius: 3px; /* 设置圆角 */
}
/* 当前页面活动链接样式 */
.navbar a.active {
color: #04AA6D; /* 设置活动链接的颜色 */
font-weight: bold; /* 加粗字体 */
}
</style>
</head>
<body>
<nav class="navbar">
<a href="#" class="active">首页</a>
<a href="#">关于我们</a>
<a href="#">服务</a>
<a href="#">联系我们</a>
</nav>
</body>
</html>
案例二:响应式卡片布局
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>响应式卡片布局</title>
<style>
/* 卡片容器样式 */
.card-container {
display: flex; /* 使用弹性布局 */
flex-wrap: wrap; /* 允许换行 */
gap: 20px; /* 设置卡片之间的间隔 */
padding: 20px;
}
/* 卡片样式 */
.card {
flex: 1; /* 卡片在容器中等分空间 */
min-width: 250px; /* 设置最小宽度 */
background-color: white; /* 设置背景颜色 */
border-radius: 8px; /* 设置圆角 */
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); /* 添加阴影 */
padding: 15px; /* 设置内边距 */
transition: transform 0.3s ease; /* 添加过渡效果 */
}
/* 鼠标悬停时的样式 */
.card:hover {
transform: translateY(-5px); /* 向上移动 */
}
/* 卡片标题样式 */
.card h3 {
color: #333; /* 设置标题颜色 */
margin-top: 0; /* 去掉上边距 */
}
/* 卡片内容样式 */
.card p {
color: #666; /* 设置内容颜色 */
line-height: 1.5; /* 设置行高 */
}
/* 响应式设计 */
@media (max-width: 768px) {
.card-container {
flex-direction: column; /* 在小屏幕上改为垂直布局 */
}
}
</style>
</head>
<body>
<div class="card-container">
<div class="card">
<h3>卡片标题 1</h3>
<p>这是一个卡片内容。卡片可以用于展示信息,是现代网页设计中常见的组件。</p>
</div>
<div class="card">
<h3>卡片标题 2</h3>
<p>这是另一个卡片内容。通过 CSS3 属性,我们可以轻松地为卡片添加样式,使其看起来更加美观。</p>
</div>
</div>
</body>
</html>
案例三:按钮样式与交互效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>按钮样式与交互效果</title>
<style>
/* 按钮基本样式 */
.btn {
display: inline-block; /* 设置为行内块元素 */
padding: 10px 20px; /* 设置内边距 */
background-color: #007bff; /* 设置背景颜色 */
color: white; /* 设置文本颜色 */
border: none; /* 去掉边框 */
border-radius: 5px; /* 设置圆角 */
cursor: pointer; /* 设置鼠标指针为手型 */
transition: all 0.3s ease; /* 添加过渡效果 */
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* 添加阴影 */
}
/* 鼠标悬停时的样式 */
.btn:hover {
background-color: #0056b3; /* 改变背景颜色 */
transform: translateY(-2px); /* 向上移动 */
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2); /* 改变阴影 */
}
/* 按钮按下时的样式 */
.btn:active {
transform: translateY(1px); /* 向下移动 */
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); /* 改变阴影 */
}
/* 禁用按钮的样式 */
.btn:disabled {
opacity: 0.6; /* 设置透明度 */
cursor: not-allowed; /* 设置鼠标指针为禁止状态 */
}
</style>
</head>
<body>
<button class="btn">点击我</button>
<button class="btn" disabled>禁用按钮</button>
</body>
</html>
案例四:文本溢出处理
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>文本溢出处理</title>
<style>
/* 文本容器样式 */
.text-container {
width: 200px; /* 设置宽度 */
border: 1px solid #ddd; /* 设置边框 */
padding: 10px; /* 设置内边距 */
margin: 20px; /* 设置外边距 */
background-color: #f9f9f9; /* 设置背景颜色 */
}
/* 单行文本溢出处理 */
.single-line {
white-space: nowrap; /* 不换行 */
overflow: hidden; /* 隐藏溢出部分 */
text-overflow: ellipsis; /* 添加省略号 */
}
/* 多行文本溢出处理 */
.multi-line {
display: -webkit-box; /* 使用 Webkit 盒模型 */
-webkit-box-orient: vertical; /* 垂直排列 */
-webkit-line-clamp: 3; /* 设置显示的行数 */
overflow: hidden; /* 隐藏溢出部分 */
}
</style>
</head>
<body>
<div class="text-container">
<h3>单行文本溢出</h3>
<p class="single-line">这是一个很长的文本,用于演示单行文本溢出时的效果。文本内容超出了容器的宽度。</p>
</div>
<div class="text-container">
<h3>多行文本溢出</h3>
<p class="multi-line">这是一个很长的文本,用于演示多行文本溢出时的效果。文本内容超出了容器的高度,这里只显示前三行,多余的部分被隐藏。</p>
</div>
</body>
</html>
案例五:弹性布局应用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>弹性布局应用</title>
<style>
/* 容器样式 */
.container {
display: flex; /* 使用弹性布局 */
justify-content: space-between; /* 主轴对齐方式 */
padding: 20px;
background-color: #f5f5f5; /* 设置背景颜色 */
}
/* 左侧边栏样式 */
.sidebar {
flex: 0 0 200px; /* 设置固定宽度 */
background-color: #ddd; /* 设置背景颜色 */
padding: 15px; /* 设置内边距 */
border-radius: 5px; /* 设置圆角 */
}
/* 主要内容区域样式 */
.main-content {
flex: 1; /* 剩余空间等分 */
background-color: white; /* 设置背景颜色 */
padding: 15px; /* 设置内边距 */
border-radius: 5px; /* 设置圆角 */
margin-left: 20px; /* 设置左边距 */
}
</style>
</head>
<body>
<div class="container">
<div class="sidebar">
<h3>侧边栏</h3>
<p>这里可以放置导航菜单或其他辅助内容。</p>
</div>
<div class="main-content">
<h3>主要内容</h3>
<p>这里是页面的主要内容区域,使用弹性布局可以确保它在不同屏幕尺寸下都能良好显示。</p>
</div>
</div>
</body>
</html>
这些案例展示了 CSS3 属性在实际开发中的广泛应用,从简单的样式设置到复杂的布局和交互效果,CSS3 提供了丰富的功能来满足现代网页设计的各种需求。