从零开始制作一个漂亮的悬浮按钮

news2025/2/24 8:07:56

0.1血版

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
/* 按钮的通用样式, 定义所有 button 元素的样式*/
/* 也可以添加class属性, 使用.class_btn
同样可以添加id属性, 使用#id_btn */
button {
    position: fixed;  /* 固定定位 */
    bottom: 10px; /* 距离窗口底部 10 像素 */
    right: 10px; /* 距离窗口右侧 10 像素 */
    background-color: #007bff; /* 背景颜色为蓝色 */
    padding: 15px 20px; /* 内边距,上下 15 像素,左右 20 像素 */
    z-index: 666; /* 设置较高的层级,确保按钮在最上层显示 */
}
</style>
<body>
    <button id="id_btn" class="class_btn">按钮</button>
</body>
</html>

按钮效果:

使用 button 对所有按钮进行通用样式设置。

使用 position: fixed 固定按钮位置,无论页面如何滚动,带有 position: fixed 的元素都会固定在指定位置,不会随页面滚动而改变位置。
使用了 position: fixed 之后,可以使用以下几个常用的定位属性来指定元素在视口中的位置:
top:距离视口顶部的距离
bottom:距离视口底部的距离
left:距离视口左侧的距离
right:距离视口右侧的距离

使用 padding: 15px 20px;  调整按钮大小,而不是使用width和height。
拥有以下优势:
按钮尺寸根据文本内容加上周围的填充进行动态调整。
不必担心内容溢出。
由于按钮随着文本长度或翻译的不同而增长或收缩,它也往往更快,更容易访问。

残血版

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
button {
    position: fixed;  /* 固定定位 */
    bottom: 10px; /* 距离窗口底部 10 像素 */
    right: 10px; /* 距离窗口右侧 10 像素 */
    background-color: #007bff; /* 背景颜色为蓝色 */
    padding: 15px 20px; /* 内边距,上下 15 像素,左右 20 像素 */
    z-index: 666; /* 设置较高的层级,确保按钮在最上层显示 */

    color: white; /* 文本颜色为白色 */
    font-weight: bold; /* 文本加粗 */
    font-size: 18px;  /* 字体大小 18 像素 */
    border-radius: 30px; /* 设置圆角半径为 30 像素 */
    border: none;  /* 去除边框 */
}
</style>
<body>
    <button id="id_btn" class="class_btn">按钮</button>
</body>
</html>

按钮效果:

消除黑色边框只需简单的 border: none;  /* 去除边框 */

鼠标悬停进阶版

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
/* 按钮样式 */
button {
    position: fixed;  /* 固定定位 */
    bottom: 10px; /* 距离窗口底部 10 像素 */
    right: 10px; /* 距离窗口右侧 10 像素 */
    background-color: #007bff; /* 背景颜色为蓝色 */
    padding: 15px 20px; /* 内边距,上下 15 像素,左右 20 像素 */
    z-index: 666; /* 设置较高的层级,确保按钮在最上层显示 */

    color: white; /* 文本颜色为白色 */
    font-weight: bold; /* 文本加粗 */
    font-size: 18px;  /* 字体大小 18 像素 */
    border-radius: 30px; /* 设置圆角半径为 30 像素 */
    border: none;  /* 去除边框 */

    cursor: pointer;  /* 鼠标悬停时显示手形指针 */
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1);  /* 添加阴影效果 */
    transition: all 0.3s ease;  /* 所有属性变化添加 0.3s 平滑过渡 */
}

/* 当鼠标悬停在 button 上时的样式 */
button:hover {  /* 定义悬停时的样式 */
    background-color: #0056b3;  /* 改变背景颜色为深蓝色 */
    box-shadow: 0 15px 20px rgba(0, 0, 0, 0.2);  /* 增加阴影效果,使按钮更突出 */
    transform: translateY(-5px);  /* 按钮向上移动 5 像素,产生浮动效果 */
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.3);  /* 加深阴影效果 */
}
</style>
<body>
    <button id="id_btn" class="class_btn">按钮</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>Document</title>
</head>
<style>
/* 按钮样式 */
button {
    position: fixed;  /* 固定定位 */
    bottom: 10px; /* 距离窗口底部 10 像素 */
    right: 10px; /* 距离窗口右侧 10 像素 */
    background-color: #007bff; /* 背景颜色为蓝色 */
    padding: 15px 20px; /* 内边距,上下 15 像素,左右 20 像素 */
    z-index: 666; /* 设置较高的层级,确保按钮在最上层显示 */

    color: white; /* 文本颜色为白色 */
    font-weight: bold; /* 文本加粗 */
    font-size: 18px;  /* 字体大小 18 像素 */
    border-radius: 30px; /* 设置圆角半径为 30 像素 */
    border: none;  /* 去除边框 */

    cursor: pointer;  /* 鼠标悬停时显示手形指针 */
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.1);  /* 添加阴影效果 */
    transition: all 0.3s ease;  /* 所有属性变化添加 0.3s 平滑过渡 */
}

/* 当鼠标悬停在 button 上时的样式 */
button:hover {  /* 定义悬停时的样式 */
    background-color: #0056b3;  /* 改变背景颜色为深蓝色 */
    box-shadow: 0 15px 20px rgba(0, 0, 0, 0.2);  /* 增加阴影效果,使按钮更突出 */
    transform: translateY(-5px);  /* 按钮向上移动 5 像素,产生浮动效果 */
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.5);  /* 加深阴影效果 */
}

/* 当鼠标点击 button 时的样式 */
button:active {  /* 定义按钮被点击时的样式 */
    background-color: #00408a;  /* 改变背景颜色为更深蓝色 */
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.6);  /* 调整阴影效果,使按钮看起来按下 */
    transform: translateY(0);  /* 按钮恢复原位 */
}
</style>
<body>
    <button id="id_btn" class="class_btn">按钮</button>
</body>
</html>

按钮效果

鼠标悬停效果

鼠标点击效果

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

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

相关文章

Win11更新系统c盘爆满处理

1.打开磁盘管理 2.右击c盘选择属性&#xff0c;进行磁盘管理&#xff0c;选择详细信息。 3.选择以前安装的文件删除即可释放c盘空间。

从零实现机器人自主避障

1. 编译工具安装 sudo apt update sudo apt install python3-catkin-pkg python3-rosdep python3-rosinstall-generator python3-wstool python3-rosinstall build-essential sudo rosdep init rosdep update2. 构建节点 mkdir -p ~/ros2_ws/src cd ~/ros2_ws ros2 pkg creat…

【Nacos】从零开始启动Nacos服务(windows/linux)

文章目录 前言前置条件官方网址一、Nacos下载1.1 选择Nacos版本1.2 下载 二、解压2.1 解压到某个文件夹 三、 启动3.1 方式一&#xff1a;直接使用命令启动3.1.1 进入bin文件夹3.1.2 进入命令行工具3.1.3 执行命令 3.2 方式二&#xff1a;修改配置文件后启动3.2.1 修改启动脚本…

即插即用Transformer、扩散模型、机器人规划、长文本检索增强生成 | Big Model Weekly 第57期...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 01 ProTransformer: Robustify Transformers via Plug-and-Play Paradigm 近年来&#xff0c;基于Transformer的架构在机器学习的各个领域占据了主导地位。本文介绍了一种新颖的鲁棒性注意力机制&#xff0c;旨…

FPGA DSP:Vivado 中带有 DDS 的 FIR 滤波器

本文使用 DDS 生成三个信号&#xff0c;并在 Vivado 中实现低通滤波器。低通滤波器将滤除相关信号。 介绍 用DDS生成三个信号&#xff0c;并在Vivado中实现低通滤波器。低通滤波器将滤除较快的信号。 本文分为几个主要部分&#xff1a; 信号生成&#xff1a;展示如何使用DDS&am…

DeepSeek各模型现有版本对比分析

文章目录 一、基础模型系列&#xff1a;V1 到 V3 的演进二、专用模型系列&#xff1a;推理与多模态三、版本选型与商业化趋势 DeepSeek作为最近特别火爆的模型&#xff0c;本文将对DeepSeek现有的主要版本进行对比分析,涵盖参数规模、训练数据、功能改进、应用场景和性能表现等…

ASP.NET Core Clean Architecture

文章目录 项目地址一、项目主体1. CQRS1.1 Repository数据库接口1.2 GetEventDetail 完整的Query流程1.3 创建CreateEventCommand并使用validation 2. EFcore层2.1 BaseRepository2.2 CategoryRepository2.3 OrderRepository 3. Email/Excel导出3.1 Email1. Email接口层 4. 定义…

紫光同创开发板使用教程(二):sbit文件下载

sbit文件相当于zynq里面的bit文件&#xff0c;紫光的fpga工程编译完成后会自动生成sbit文件&#xff0c;因工程编译比较简单&#xff0c;这里不在讲解工程编译&#xff0c;所以我这里直接下载sbit文件。 1.工程编译完成后&#xff0c;可以看到Flow列表里面没有报错&#xff0c…

1. 自定义组件基础

相关资源&#xff1a; &#x1f4ce;day10 图片素材.zip 1. 自定义组件基础 概念&#xff1a;在ArkUI中由框架直接提供的称为系统组件 -> Column&#xff0c;Button等&#xff0c;由开发者定义的称为自定义组件 作用&#xff1a;自定义组件可以对 UI和业务逻辑进行封装&…

MySQL MHA 部署全攻略:从零搭建高可用数据库架构

文章目录 1.MHA介绍2.MHA组件介绍3.集群规划4.服务器初始化5.MySQL集群部署5.1 安装MySQL集群5.2 配置一主两从5.3 测试MySQL主从5.4 赋予MHA用户连接权限 6.安装MHA环境6.1 安装MHA Node6.2 安装MHA Manager 7.配置MHA环境8.MySQL MHA高可用集群测试8.1 通过VIP连接MySQL8.2模…

Spring Boot3+Vue2极速整合:10分钟搭建DeepSeek AI对话系统

前言 在生成式AI技术蓬勃发展的今天&#xff0c;大语言模型已成为企业智能化转型和个人效率提升的核心驱动力。作为国产大模型的优秀代表&#xff0c;DeepSeek凭借其卓越的中文语义理解能力和开发者友好的API生态&#xff0c;正在成为构建本土化AI应用的首选平台。 本文将以S…

浅谈 Redis 主从复制原理(二)

大家好&#xff0c;我是此林。 【浅谈 Redis 主从集群原理&#xff08;一&#xff09; 】 上一篇文章中&#xff0c;说到了 Redis 主从复制的全量同步和增量同步&#xff0c;repl_baklog 复制缓冲区&#xff0c;以及 slave 挂掉之后数据同步的措施。 下面介绍的上一篇遗留问…

elf_loader:一个使用Rust编写的ELF加载器

本文介绍一个使用Rust实现的ELF加载器。 下面是elf_loader的仓库链接&#xff1a; github&#xff1a; https://github.com/weizhiao/elf_loaderhttps://github.com/weizhiao/elf_loader crates.io&#xff1a; https://crates.io/crates/elf_loaderhttps://crates.io/cra…

连接Sql Server时报错无法通过使用安全套接字层加密与 SQL Server 建立安全连接

文章目录 一. 前言二. 解决方案 方案1方案2 三. 总结 一. 前言 在《数据库原理》这门课的实验上&#xff0c;需要使用SQL Server&#xff0c;然后使用jdbc连接sql server突然报错为&#xff1a;SQLServerException: “Encrypt”属性设置为“true”且 “trustServerCertific…

Qt常用控件之日历QCalendarWidget

日历QCalendarWidget QCalendarWidget 是一个日历控件。 QCalendarWidget属性 属性说明selectDate当前选中日期。minimumDate最小日期。maximumDate最大日期。firstDayOfWeek设置每周的第一天是周几&#xff08;影响日历的第一列是周几&#xff09;。gridVisible是否显示日历…

超级详细Spring AI运用Ollama大模型

大模型工具Ollama 官网:https://ollama.com/ Ollama是一个用于部署和运行各种开源大模型的工具; 它能够帮助用户快速在本地运行各种大模型&#xff0c;极大地简化了大模型在本地运行的过程。用户通过执行几条命令就能在本地运行开源大模型&#xff0c;如Lama 2等; 综上&#x…

0083.基于springboot+uni-app的社区车位租赁系统小程序+论文

一、系统说明 基于springbootuni-app的社区车位租赁系统小程序,系统功能齐全, 代码简洁易懂&#xff0c;适合小白学编程。 现如今&#xff0c;信息种类变得越来越多&#xff0c;信息的容量也变得越来越大&#xff0c;这就是信息时代的标志。近些年&#xff0c;计算机科学发展…

计算机视觉行业洞察--影像行业系列第一期

计算机视觉行业产业链的上下游构成相对清晰&#xff0c;从基础技术研发到具体应用场景的多个环节相对成熟。 以下是我结合VisionChina经历和行业龙头企业对计算机视觉行业产业链上下游的拆解总结。 上下游总结 上游产业链分为软硬件两类&#xff0c;视觉的硬件主要指芯片、…

【深度学习量化交易15】基于miniQMT的量化交易回测系统已基本构建完成!AI炒股的框架初步实现

我是Mr.看海&#xff0c;我在尝试用信号处理的知识积累和思考方式做量化交易&#xff0c;应用深度学习和AI实现股票自动交易&#xff0c;目的是实现财务自由~ 目前我正在开发基于miniQMT的量化交易系统——看海量化交易系统。 AI怎么炒股&#xff1f;就是通过量化交易。 近期D…

使用大语言模型(Deepseek)构建一个基于 SQL 数据的问答系统

GitHub代码仓库 架构 从高层次来看&#xff0c;这些系统的步骤如下&#xff1a; 将问题转换为SQL查询&#xff1a;模型将用户输入转换为SQL查询。 执行SQL查询&#xff1a;执行查询。 回答问题&#xff1a;模型根据查询结果响应用户输入。 样本数据 下载样本数据&#xf…