CSS3学习教程,从入门到精通,CSS3 属性语法知识点及案例代码(4)

news2025/3/18 17:14:04

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-topmargin-rightmargin-bottommargin-left:分别设置上、右、下、左边的外边距。

2. 内边距属性

  • padding:设置内边距。
  • padding-toppadding-rightpadding-bottompadding-left:分别设置上、右、下、左边的内边距。

3. 宽度和高度属性

  • width:设置元素宽度。
  • height:设置元素高度。

4. 边框属性

  • border:设置边框。
  • border-widthborder-styleborder-color:分别设置边框的宽度、样式和颜色。
  • border-radius:设置边框圆角。

三、CSS3 背景属性

1. 背景颜色和图像

  • background-color:设置背景颜色。
  • background-image:设置背景图像。
  • background-repeat:设置背景图像是否重复。
  • background-position:设置背景图像的位置。
  • background-size:设置背景图像的大小。
  • background-attachment:设置背景图像是否固定或滚动。

四、CSS3 盒子阴影和轮廓

1. 盒子阴影

  • box-shadow:设置盒子阴影。

2. 轮廓

  • outline:设置轮廓。
  • outline-widthoutline-styleoutline-color:分别设置轮廓的宽度、样式和颜色。

五、CSS3 二维转换

1. 基本转换

  • transform:设置元素的二维转换。
  • transform-origin:设置转换的原点。

六、CSS3 动画

1. 关键帧动画

  • @keyframes:定义动画的关键帧。
  • animation:应用动画。
  • animation-nameanimation-durationanimation-timing-functionanimation-delayanimation-iteration-countanimation-directionanimation-fill-modeanimation-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-columnsgrid-template-rows:设置网格的列和行。
  • grid-gap:设置网格之间的间隔。
  • grid-template-areas:设置网格区域。

2. 网格项目属性

  • grid-columngrid-row:设置项目在网格中的位置。
  • grid-area:设置项目的网格区域。

十、CSS3 过渡效果

1. 过渡属性

  • transition:设置过渡效果。
  • transition-propertytransition-durationtransition-timing-functiontransition-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>

案例代码说明

  1. 基本样式设置:为按钮设置了基本的样式,包括内边距、外边距、边框、圆角、颜色等。
  2. 过渡效果:使用 transition 属性为按钮的属性变化添加平滑的过渡效果。
  3. 阴影效果:使用 box-shadow 属性为按钮添加阴影,增强立体感。
  4. 悬停效果:通过 :hover 伪类,在鼠标悬停时改变按钮的位置和阴影,实现上浮效果。
  5. 按下效果:通过 :active 伪类,在按钮被按下时改变其位置和阴影,模拟被按下的状态。
  6. 禁用状态:通过 :disabled 伪类,为禁用的按钮设置透明度和鼠标样式,表示不可用。
  7. 伪元素:使用 ::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 提供了丰富的功能来满足现代网页设计的各种需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2317335.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【操作系统安全】任务4:Windows 系统网络安全实践里常用 DOS 命令

目录 一、引言 二、网络信息收集类命令 2.1 ipconfig 命令 2.1.1 功能概述 2.1.2 实例与代码 2.2 ping 命令 2.2.1 功能概述 2.2.2 实例与代码 2.3 tracert 命令 2.3.1 功能概述 2.3.2 实例与代码 三、网络连接与端口管理类命令 3.1 netstat 命令 3.1.1 功能概述…

【从零开始学习计算机科学】信息安全(二)物理安全

【从零开始学习计算机科学】信息安全(二)物理安全 物理安全物理安全的涵义物理安全威胁常见物理安全问题物理安全需求规划物理安全需求设备安全防盗和防毁机房门禁系统机房入侵检测和报警系统防电磁泄漏防窃听设备管理设备维护设备的处置和重复利用设备的转移电源安全电源调整…

LeetCode hot 100—验证二叉搜索树

题目 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 示例 1&#…

MongoDB 可观测性最佳实践

MongoDB 介绍 MongoDB 是一个高性能、开源的 NoSQL 数据库&#xff0c;它采用灵活的文档数据模型&#xff0c;非常适合处理大规模的分布式数据。MongoDB 的文档存储方式使得数据结构可以随需求变化而变化&#xff0c;提供了极高的灵活性。它支持丰富的查询语言&#xff0c;允许…

论文阅读笔记——LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

LoRA 论文 传统全面微调&#xff0c;对每个任务学习的参数与原始模型相同&#xff1a; m a x Φ ∑ ( x , y ) ∈ Z ∑ t 1 ∣ y ∣ l o g ( P Φ ( y t ∣ x , y < t ) ) 式(1) max_{\Phi}\sum_{(x,y)\in Z}\sum^{|y|}_{t1}log(P_{\Phi}(y_t|x,y<t)) \qquad \text{式(…

UE5中 Character、PlayerController、PlayerState、GameMode和GameState核心类之间的联动和分工·

1. GameMode 与 GameState 关系描述 GameMode&#xff1a;定义游戏规则和逻辑&#xff0c;控制游戏的开始、进行和结束。GameState&#xff1a;存储和同步全局游戏状态&#xff0c;如得分、时间、胜利条件等。 联动方式 GameMode初始化GameState&#xff1a;GameMode在游戏…

Ubuntu24.04 启动后突然进入tty,无法进入图形界面

问题描述 昨晚在编译 Android AOSP 14 后&#xff0c;进入了登录页面&#xff0c;但出现了无法输入密码的情况&#xff0c;且无法正常关机&#xff0c;只能强制重启。重启后&#xff0c;系统只能进入 TTY 页面&#xff0c;无法进入图形界面。 问题排查 经过初步排查&#x…

搭建主从服务器

任务需求 客户端通过访问 www.nihao.com 后&#xff0c;能够通过 dns 域名解析&#xff0c;访问到 nginx 服务中由 nfs 共享的首页文件&#xff0c;内容为&#xff1a;Very good, you have successfully set up the system. 各个主机能够实现时间同步&#xff0c;并且都开启防…

jenkins 配置邮件问题整理

版本&#xff1a;Jenkins 2.492.1 插件&#xff1a; A.jenkins自带的&#xff0c; B.安装功能强大的插件 配置流程&#xff1a; 1. jenkins->系统配置->Jenkins Location 此处的”系统管理员邮件地址“&#xff0c;是配置之后发件人的email。 2.配置系统自带的邮件A…

JVM中常量池和运行时常量池、字符串常量池三者之间的关系

文章目录 前言常量池&#xff08;Constant Pool&#xff09;运行时常量池&#xff08;Runtime Constant Pool&#xff09;字符串常量池&#xff08;String Literal Pool&#xff09;运行时常量池和字符串常量池位置变化方法区与永久代和元空间的关系三者之间的关系常量池与运行…

Mysql篇——SQL优化

本篇将带领各位了解一些常见的sql优化方法&#xff0c;学到就是赚到&#xff0c;一起跟着练习吧~ SQL优化 准备工作 准备的话我们肯定是需要一张表的&#xff0c;什么表都可以&#xff0c;这里先给出我的表结构&#xff08;表名&#xff1a;userinfo&#xff09; 通过sql查看…

FPGA|Verilog-SPI驱动

最近准备蓝桥杯FPGA的竞赛&#xff0c;因为感觉官方出的IIC的驱动代码思路非常好&#xff0c;写的内容非常有逻辑并且规范。也想学习一下SPI的协议&#xff0c;所以准备自己照着写一下。直到我打开他们给出的SPI底层驱动&#xff0c;我整个人傻眼了&#xff0c;我只能说&#x…

Windows11 新机开荒(二)电脑优化设置

目录 前言&#xff1a; 一、注册微软账号绑定权益 二、此电脑 桌面图标 三、系统分盘及默认存储位置更改 3.1 系统分盘 3.2 默认存储位置更改 四、精简任务栏 总结&#xff1a; 前言&#xff1a; 本文承接上一篇 新机开荒&#xff08;一&#xff09; 上一篇文章地址&…

关于deepseek R1模型分布式推理效率分析

1、引言 DeepSeek R1 采用了混合专家&#xff08;Mixture of Experts&#xff0c;MoE&#xff09;架构&#xff0c;包含多个专家子网络&#xff0c;并通过一个门控机制动态地激活最相关的专家来处理特定的任务 。DeepSeek R1 总共有 6710 亿个参数&#xff0c;但在每个前向传播…

揭秘大数据 | 9、大数据从何而来?

在科技发展史上&#xff0c;恐怕没有任何一种新生事物深入人心的速度堪比大数据。 如果把2012年作为数据量爆发性增长的第一年&#xff0c;那么短短数年&#xff0c;大数据就红遍街头巷尾——从工业界到商业界、学术界&#xff0c;所有的行业都经受了大数据的洗礼。从技术的迭…

使用Dependency Walker和Beyond Compare快速排查dll动态库损坏或被篡改的问题

目录 1、问题描述 2、用Dependency Walker工具打开qr.dll库&#xff0c;查看库与库的依赖关系以及接口调用情况&#xff0c;定位问题 3、使用Beyond Compare工具比较一下正常的msvcr100d.dll和问题msvcr100d.dll的差异 4、最后 C软件异常排查从入门到精通系列教程&#xff…

repo init 错误 Permission denied (publickey)

一、已经生成ssh-key并设置到gerrit上 二、已经设置.gitconfig &#xff08;此步骤是公司要求&#xff0c;设置gerrit地址为一个别名之类的&#xff0c;有的公司不需要&#xff09; 然后出现下面的错误&#xff0c;最后发现忘记设置git的用户名和邮箱 1. git config --globa…

TSB - AD 解读 — 迈向可靠、透明的 TSAD 任务

目录 一 文章动机 二 TSAD 领域内的两类缺陷 三 数据集的构建 四 实验结果及结论 项目宣传链接&#xff1a;TSB-AD 代码链接&#xff1a; TheDatumOrg/TSB-AD: TSB-AD: Towards A Reliable Time-Series Anomaly Detection Benchmark 原作者解读&#xff1a;NeurIPS 2…

论文阅读:2023-arxiv Can AI-Generated Text be Reliably Detected?

总目录 大模型安全相关研究&#xff1a;https://blog.csdn.net/WhiffeYF/article/details/142132328 文章目录 Abstract&#xff08;摘要&#xff09;1 Introduction&#xff08;引言&#xff09;Conclusion&#xff08;结论&#xff09; Can AI-Generated Text be Reliably D…

Language Models are Few-Shot Learners,GPT-3详细讲解

GPT的训练范式&#xff1a;预训练Fine-Tuning GPT2的训练范式&#xff1a;预训练Prompt predict &#xff08;zero-shot learning&#xff09; GPT3的训练范式&#xff1a;预训练Prompt predict &#xff08;few-shot learning&#xff09; GPT2的性能太差&#xff0c;新意高&…