5. CSS的边框和阴影

第5章 边框与阴影

CSS3 为开发者提供了强大的工具,使得我们可以更容易地为网页元素添加视觉效果。这一章将详细介绍边框和阴影的新特性,包括如何使用圆角边框、边框图像、盒阴影和文本阴影,并展示一些实际应用的例子。

5.1 圆角边框(border-radius)

border-radius 属性允许我们为元素的边框添加圆角,使得元素的外观更加柔和和现代。

语法
element {border-radius: [value];
}

value 可以是一个长度单位(如 px%)或多个值的组合。

示例
  1. 单一圆角值:所有四个角的半径相同

    .single-radius {border: 2px solid #333;border-radius: 10px; /* 四个角的半径都为10px */
    }
    
  2. 不同的圆角值:为每个角设置不同的半径

    .multiple-radius {border: 2px solid #333;border-radius: 10px 20px 30px 40px; /* 依次为左上,右上,右下,左下 */
    }
    
  3. 使用百分比:相对于元素的尺寸

    .percentage-radius {border: 2px solid #333;border-radius: 50%; /* 创建一个圆形或椭圆形 */
    }
    
例子
<div class="single-radius">单一圆角值</div>
<div class="multiple-radius">不同的圆角值</div>
<div class="percentage-radius">百分比圆角值</div>
.single-radius {width: 100px;  /* 固定宽度 */height: 100px; /* 固定高度 */border: 2px solid #333; /* 边框宽度和颜色 */border-radius: 10px; /* 四个角的半径都为10px */
}.multiple-radius {width: 100px;  /* 固定宽度 */height: 100px; /* 固定高度 */border: 2px solid #333; /* 边框宽度和颜色 */border-radius: 10px 20px 30px 40px; /* 依次为左上,右上,右下,左下 */
}.percentage-radius {width: 100px;  /* 固定宽度 */height: 100px; /* 固定高度 */border: 2px solid #333; /* 边框宽度和颜色 */border-radius: 50%; /* 圆角半径为元素尺寸的一半,创建一个圆形 */
}
5.2 边框图像(border-image)

border-image 属性允许我们使用图像来作为元素的边框,从而可以创建复杂和独特的边框样式。

语法
element {border-image-source: url(image.png);border-image-slice: [value];border-image-width: [value];border-image-outset: [value];border-image-repeat: [stretch | repeat | round | space];
}
示例
  1. 基础使用

    .border-image {border: 10px solid transparent; /* 必须设置边框宽度,否则无法显示边框图像 */border-image-source: url('border.png'); /* 边框图像的路径 */border-image-slice: 30; /* 定义图像切片的区域 */
    }
    
  2. 重复边框图像

    .border-image-repeat {border: 10px solid transparent; /* 必须设置边框宽度 */border-image-source: url('border.png'); /* 边框图像的路径 */border-image-slice: 30; /* 图像切片值 */border-image-repeat: repeat; /* 重复边框图像 */
    }
    
例子
<div class="border-image">边框图像</div>
<div class="border-image-repeat">重复边框图像</div>
.border-image {width: 200px;  /* 固定宽度 */height: 200px; /* 固定高度 */border: 10px solid transparent; /* 必须设置边框宽度 */border-image-source: url('border.png'); /* 使用的边框图像 */border-image-slice: 30; /* 定义图像切片的区域 */
}.border-image-repeat {width: 200px;  /* 固定宽度 */height: 200px; /* 固定高度 */border: 10px solid transparent; /* 必须设置边框宽度 */border-image-source: url('border.png'); /* 使用的边框图像 */border-image-slice: 30; /* 定义图像切片的区域 */border-image-repeat: repeat; /* 图像重复填充边框 */
}
5.3 盒阴影(box-shadow)

box-shadow 属性允许我们为元素添加一个或多个阴影,从而可以创造出深度和层次感。

语法
element {box-shadow: [h-offset] [v-offset] [blur] [spread] [color];
}
  • h-offset:水平偏移量
  • v-offset:垂直偏移量
  • blur:模糊半径
  • spread:阴影扩展半径
  • color:阴影颜色
示例
  1. 基础阴影

    .box-shadow-basic {box-shadow: 10px 10px 5px #888888; /* x偏移, y偏移, 模糊半径, 颜色 */
    }
    
  2. 内阴影

    .box-shadow-inset {box-shadow: inset 10px 10px 5px #888888; /* inset关键字用于内阴影 */
    }
    
  3. 多重阴影

    .box-shadow-multiple {box-shadow: 10px 10px 5px #888888, -10px -10px 5px #cccccc; /* 多个阴影 */
    }
    
例子
<div class="box-shadow-basic">基础阴影</div>
<div class="box-shadow-inset">内阴影</div>
<div class="box-shadow-multiple">多重阴影</div>
.box-shadow-basic {width: 100px;  /* 固定宽度 */height: 100px; /* 固定高度 */background-color: #ddd; /* 背景颜色 */box-shadow: 10px 10px 5px #888888; /* 水平偏移10px, 垂直偏移10px, 模糊半径5px, 阴影颜色#888 */
}.box-shadow-inset {width: 100px;  /* 固定宽度 */height: 100px; /* 固定高度 */background-color: #ddd; /* 背景颜色 */box-shadow: inset 10px 10px 5px #888888; /* 内阴影, 水平偏移10px, 垂直偏移10px, 模糊半径5px, 阴影颜色#888 */
}.box-shadow-multiple {width: 100px;  /* 固定宽度 */height: 100px; /* 固定高度 */background-color: #ddd; /* 背景颜色 */box-shadow: 10px 10px 5px #888888, -10px -10px 5px #cccccc; /* 两个阴影, 第一个向右下, 第二个向左上 */
}
5.4 文本阴影(text-shadow)

text-shadow 属性允许我们为文本添加阴影效果,从而增强文本的视觉表现力。

语法
element {text-shadow: [h-offset] [v-offset] [blur] [color];
}
  • h-offset:水平偏移量
  • v-offset:垂直偏移量
  • blur:模糊半径
  • color:阴影颜色
示例
  1. 基础文本阴影

    .text-shadow-basic {text-shadow: 2px 2px 2px #888888; /* x偏移, y偏移, 模糊半径, 颜色 */
    }
    
  2. 多重文本阴影

    .text-shadow-multiple {text-shadow: 2px 2px 2px #888888, -2px -2px 2px #cccccc; /* 多个阴影 */
    }
    
例子
<p class="text-shadow-basic">基础文本阴影</p>
<p class="text-shadow-multiple">多重文本阴影</p>
.text-shadow-basic {font-size: 24px; /* 字体大小 */color: #333; /* 字体颜色 */text-shadow: 2px 2px 2px #888888; /* 水平偏移2px, 垂直偏移2px, 模糊半径2px, 阴影颜色#888 */
}.text-shadow-multiple {font-size: 24px; /* 字体大小 */color: #333; /* 字体颜色 */text-shadow: 2px 2px 2px #888888, -2px -2px 2px #cccccc; /* 两个阴影, 第一个向右下, 第二个向左上 */
}
5.5 边框与阴影的实际应用

在实际应用中,边框和阴影可以用来提升UI设计的视觉效果。例如,我们可以为按钮添加圆角边框和盒阴影,使其看起来更立体和可点击;或者为卡片组件添加边框图像和阴影,使其在页面中更加突出。

示例
  1. 按钮样式

    <button class="styled-button">点击我</button>
    
    .styled-button {padding: 10px 20px; /* 内边距,增加按钮的点击区域 */border: none; /* 移除默认边框 */border-radius: 5px; /* 圆角边框 */background-color: #3498db; /* 按钮背景颜色 */color: white; /* 按钮文字颜色 */box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); /* 盒阴影 */transition: box-shadow 0.3s ease; /* 盒阴影变化的过渡效果 */
    }.styled-button:hover {box-shadow: 0 8px 12px rgba(0, 0, 0, 0.2); /* 悬停时的阴影效果 */
    }
    
  2. 卡片组件

    <div class="card"><h2>卡片标题</h2><p>这是一段描述卡片内容的文本。</p>
    </div>
    
    .card {width: 300px;  /* 固定宽度 */padding: 20px; /* 内边距 */border: 1px solid transparent; /* 边框设置为透明以使用边框图像 */border-radius: 10px; /* 圆角边框 */background: #fff; /* 背景颜色 */box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* 盒阴影 */transition: box-shadow 0.3s ease; /* 盒阴影变化的过渡效果 */
    }.card:hover {box-shadow: 0 12px 24px rgba(0, 0, 0, 0.2); /* 悬停时的阴影效果 */
    }
    
实例分析

按钮样式分析

上述代码示例中,我们为按钮添加了圆角边框和盒阴影:

  • border-radius: 5px;:使按钮的边角变得圆润。
  • box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);:为按钮添加了轻微的阴影,使其看起来有浮动的效果。
  • transition: box-shadow 0.3s ease;:添加平滑过渡效果,使得在悬停时阴影变化更自然。
  • :hover 伪类用于定义悬停状态下的阴影效果,增加了按钮的交互感。

卡片组件分析

卡片组件的代码展示了如何结合多种CSS3特性来实现美观的设计:

  • border-radius: 10px;:为卡片的边角添加圆角效果,增加视觉柔和感。
  • box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);:添加轻微的阴影,使卡片在页面中看起来更立体。
  • transition: box-shadow 0.3s ease;:平滑的过渡效果让卡片在悬停时显得更加自然。
  • :hover 伪类下,阴影效果增强,使得卡片在悬停时看起来更加突出。

这些特性和技术不仅提升了网页的视觉效果,还提高了用户的体验。通过适当地使用这些特性,我们可以设计出更加吸引人的网页。

小结

在这一章中,我们详细探讨了CSS3中边框和阴影的各种新特性,包括border-radiusborder-imagebox-shadowtext-shadow

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

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

相关文章

232转Profinet网关接扫码枪与PLC通讯在物流分拣线上的应用

一、背景 随着生活节奏的加快&#xff0c;网络购物需求非常大&#xff0c;从而造成快递站需要快速提取快递信息已达到快速出站的效果&#xff0c;这就用到了扫码枪&#xff0c;扫码枪作为采集设备&#xff0c;能够迅速准确地读取货物信息。并将数据传输至PLC控制器&#xff0c…

5.28OpenMV入门

10分钟快速上手 OpenMV中文入门教程 使用的元件 先安装好&#xff0c;上述链接上手 IDE显示颜色阈值&#xff0c;同时也配有示例文件&#xff0c;如下图打开&#xff0c;helloworld 你好&#xff0c;世界&#xff01; OpenMV中文入门教程&#xff0c;在官方也有每一个的详细…

JUC总结1

线程和进程的对比 进程是操作系统资源分配的最小单位&#xff0c;其包含了进程控制块、程序、数据等&#xff0c;在电脑上启动的一个个应用程序就是进程&#xff0c;当一个程序要被运行时&#xff0c;从磁盘中将这个应用程序的代码加载到内存中&#xff0c;就开启了一个进程。…

音乐系统java在线音乐网站基于springboot+vue的音乐系统带万字文档

文章目录 音乐系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码和万字论文参考&#xff08;9.9&#xffe5;带走&#xff09; 音乐系统 一、项目演示 在线音乐系统 二、项目介绍 基于springbootvue的前后端分离在线音乐系…

【Python设计模式14】状态模式

状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许对象在其内部状态改变时改变其行为。状态模式将不同状态的行为封装到不同的状态类中&#xff0c;使得状态之间的转换独立于对象本身&#xff0c;减少了条件语句的使用&#xff0c;提高了代…

Design and implementation of robot impedance controller

机器人阻抗控制器的设计与实现是一个复杂但关键的过程&#xff0c;它涉及到多个方面以确保机器人能够在外界环境的影响下保持稳定的性能。以下是对机器人阻抗控制器设计与实现的详细解答&#xff1a; 一、阻抗控制原理 阻抗控制的基本原理是建立一个期望的机器人位置和接触力…

股票交易vip快速通道有什么门槛?vip交易通道的开通流程!

证券公司的VIP通道通常是为了满足高端客户或高频交易客户的需求而设立的&#xff0c;提供更快速、更便捷的交易服务。证券公司VIP通道适用于有追涨停板需求的投资者&#xff0c;以及一些喜爱高频交易的投资者&#xff0c;总的来说就是快速&#xff0c;在交易主机排队靠前。 VI…

go-zero 实战(1)

环境准备 go 版本 go version go1.22.2 linux/amd64 goctl 安装 goctl&#xff08;官方建议读 go control&#xff09;是 go-zero微服务框架下的代码生成工具。使用 goctl 可以显著提升开发效率&#xff0c;让开发人员将时间重点放在业务开发上&#xff0c;其功能有&#xff1a…

pands使用openpyxl引擎实现EXCEL条件格式

通过python的openpyxl库&#xff0c;实现公式条件格式。 实现内容&#xff1a;D列单元格不等于E列同行单元格时标红。 #重点是formula后面的公式不需要“”号。 from openpyxl.styles import Color, PatternFill, Font, Border from openpyxl.styles.differential import Dif…

Java客户端SpringDataRedis(RedisTemplate)上手

文章目录 ⛄概述⛄快速入门❄️❄️导入依赖❄️❄️配置文件❄️❄️测试代码 ⛄数据化序列器⛄StringRedisTemplate⛄RedisTemplate的两种序列化实践方案总结 ⛄概述 SpringData是Spring中数据操作的模块&#xff0c;包含对各种数据库的集成&#xff0c;其中对Redis的集成模…

LLM学习笔记

Q1&#xff1a;SFT时&#xff0c;计算LOSS ​ LLM是自回归生成模型&#xff0c;每次只会生成一个 token&#xff0c;难道 SFT 时&#xff0c;对于一个 (L, D) 的数据&#xff0c;要调用 L 次LLM去计算loss&#xff1f; A1&#xff1a; ​ 在每个前向传播过程&#xff0c;模型…

HDU 2196 Computer(树形dp)

H D U 2196 C o m p u t e r &#xff08;树形 d p &#xff09; \Huge{HDU 2196 Computer&#xff08;树形dp&#xff09;} HDU2196Computer&#xff08;树形dp&#xff09; 文章目录 题意思路标程 题目链接&#xff1a;Problem - 2196 (hdu.edu.cn) 题意 给出一个n个节点的无…

论AI大模型炼丹与练舞的关系

AI大模型的训练和微调的区别&#xff0c;就像是在舞蹈中学习基础动作和编排新的舞蹈一样。 想象一下&#xff0c;你有一个神奇的舞蹈机器人&#xff0c;只要给它足够的舞蹈视频&#xff0c;它就能学会各种各样的舞步。 模型训练的过程就像是给这个舞蹈教练机器人一个包含了各种…

git将某次提交合并到另一个分支

一、需求背景 将分支b中的某一次提交单独合并到分支a 二、实现方案 需求&#xff1a;将分支b中的某一次提交单独合并到分支a 1.在git上查看指定某次提交的id&#xff0c;如下图所示&#xff1a; 也可以通过git log命令查看提交的id&#xff0c;如下图&#xff1a; git log…

CNN网络的介绍及实战

卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;是一种深度学习模型&#xff0c;它在计算机视觉领域取得了巨大成功。CNN的设计灵感来自于生物学中的视觉系统&#xff0c;旨在模拟人类视觉处理的方式。CNN由多层卷积层和池化层堆叠而成&…

【AIGC调研系列】MiniCPM-Llama3-V2.5模型与GPT-4V对比

MiniCPM-Llama3-V2.5模型与GPT-4V的对比可以从多个方面进行分析&#xff0c;包括性能、应用场景和技术特点。 从性能角度来看&#xff0c;MiniCPM-Llama3-V2.5在OCR识别、模型幻觉能力和空间理解能力方面表现出色&#xff0c;实现了开源模型的性能SOTA&#xff08;State of th…

Android13 基座充电屏保

屏幕保护有两个设置可选&#xff1a;默认为插入基座充电时 通过DreamBackend启用屏保&#xff0c;并且保存选择的时机 //QSSI.13\packages\apps\Settings\src\com\android\settings\dream\WhenToDreamPicker.java Override protected boolean setDefaultKey(String key) {mBac…

LeetCode hot100-50-G

124. 二叉树中的最大路径和二叉树中的 路径 被定义为一条节点序列&#xff0c;序列中每对相邻节点之间都存在一条边。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点&#xff0c;且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根…

linux input 驱动

使用文档 设备树修改 新增一个 LED 节点 arch/arm/boot/dts/arm/vexpress-v2p-ca9.dts my_pl_led {compatible = "arm, cortex-a9-led";status = "okay";};设备树编译 make dtbs日志 DTC arch/arm/boot/dts/arm/vexpress

AI视频换脸!最快的方法,100%成功,完全免费,无需配置、打开即用

这是一款百分百完全免费&#xff0c;超级好用又简单的AI视频换脸工具&#xff0c;不仅效果非常不错而且支持CPU和GPU解码&#xff0c;即使电脑上没有独立显卡&#xff0c;你也可以通过电脑上的CPU要进解码&#xff0c;虽然我之前给他介绍好几个有关AI视频&#xff0c;比如像这个…