当前位置: 首页 > news >正文

CSS 背景、阴影和混合模式

网站的好坏在于细节,在实现页面里某个组件的布局并写完样式之后,不要急着继续,有意识地训练自己,以挑剔的眼光审视刚刚完成的代码。

1 背景与渐变

background-image

指定文件或者生成的颜色渐变为背景图片。

background-origin

用于确定背景相对于元素的边框盒、内边框盒(初始值)或内容盒子来定位。

图 background-origin 的三个值效果

background-clip

指定背景是否应该填充边框盒(初始值)、内边距框盒或内容盒。

图 background-clip 的三个值效果

background-position

设置背景图的初始位置。

background-size

指定元素内背景图片的渲染尺寸。使用百分位的时候,根据background-origin 指定的位置来确定其元素内容大小。例如,上面background-origin的三个效果值中,指定的background-size 都为100%。

background-repeat

决定在需要填充整个元素时,是否平铺图片。

background-attachment

指定背景图片是随着元素上下滚动(初始值),还是固定在视口区域。(使用fixed值会对页面性能产生负面影响。)

fixed: 固定在视口区域,此时背景的background-origin 参照的是视口。

scroll: 随着元素滚动。如果该元素允许滚动(overflow: auto),那么背景也不会滚动。

local: 随着元素滚动,如果该元素允许滚动,那么背景也会跟着滚动。

图 background-attachment 的三个值效果

background-color

指定纯色背景,渲染到背景图片下方。

表 background属性的组成

1.1 渐变

background-image 可以接受一个渐变函数。

图 渐变函数

1.1.1 渐变角度

linear-gradient 的第一个参数用于定义渐变的角度。 可以使用to top、to bottom、to bottom right。也可以使用更准确的单位。0deg 表示垂直向上,更大值会沿着顺时针变化,因此90deg 代表向右渐变(to right),180deg 表示to bottom。

rad

弧度,一个完整的圆是2π。

turn

环绕圆周的圈数。1 turn = 360deg。

grad

百分度。100 grad 相当于 90 deg(度).

表 指定渐变方向的其他单位

图 渐变角度与方向的变化

1.1.2 多个颜色节点

一个渐变可以接受任意数量的颜色节点,节点之间通过逗号分隔。如果不知道这些节点的位置,则会自动均匀平铺这些颜色节点。节点位置可以通过百分号或者px来指定,跟在颜色值后面,空格符隔开。

图 多个颜色节点实现条纹

1.1.3 重复渐变

对于重复渐变,最好使用特定长度而不是百分比。

图 重复渐变

1.1.4 径向渐变

线性渐变是从元素的一端开始,沿着直线过度到另一端,而径向渐变不同,它是从一个点开始,全方位向外扩张。

图 径向渐变的例子

2 阴影

阴影是一种可以为网页增加立体感的特效。 有两个属性可以创建阴影,box-shadow 可以为元素盒子生成阴影,text-shadow 可以为渲染后的文字生成阴影。

默认情况下,阴影与元素的大小和尺寸相同。如果元素设置了border-radius,那么阴影相应地也会有圆角。阴影的水平偏移量(x)、垂直偏移量(y)和颜色都不可或缺。还有两个值是可选的:模糊半径和扩展半径。

box-shadow: Xpx Ypx 模糊半径px 扩展半径px color;

而text-shadow 只有4个参数(模糊半径可选)。没有扩展半径这个参数。

图 阴影效果

2.1 拟物化设计与扁平化设计

拟物化设计:把屏幕上的元素设计得如同真实世界的实物。追求尽量贴近真实世界。

扁平化设计: 扁平化设计选择接受现代社会已经日益数字化的事实。扁平化设计讲究色彩明快统一、外观简洁明了,这就意味着尽量少用渐变、阴影和圆角。

中庸设计: 介于扁平化设计与拟物化设计之间。

图 三种不同的设计效果

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div class="container"><div class="con"><button class="btn">Sign up now</button><div>拟物化</div></div><div class="con"><button class="btn">Sign up now</button><div>扁平化</div></div><div class="con"><button class="btn">Sign up now</button><div>中庸</div></div>
</div>
</body>
</html>
<style>.container {display: flex;padding-top: 30px;}.con {margin-left: 40px;text-align: center;}.btn {padding: 1em;border: 0;font-size: 0.8rem;color: white;border-radius: 0.5em;margin-bottom: 15px;}.con:nth-child(1) .btn {background-image: linear-gradient(to bottom,#57b,#148);box-shadow: 0.1em 0.1em 0.5em #124;}.con:nth-child(1) .btn:active {box-shadow: inset 0 0 0.5em #124,inset 0 0.5em 1em rgba(0,0,0,0.4);}.con:nth-child(2) .btn {background-color: #57b;box-shadow: 0 0.2em 0.2em rgba(0,0,0,0.15);}.con:nth-child(2) .btn:hover {background-color: #456ab6;}.con:nth-child(2) .btn:active {background-color: #148;}.con:nth-child(3) .btn {background-color: #57b;box-shadow: 0 0.4em #148;text-shadow: 1px 1px #148;}.con:nth-child(3) .btn:active {background-color: #456ab6;transform: translateY(0.1em);box-shadow: 0 0.3em #148;}</style>

3 混合模式

混合模式用来控制叠放的图片怎样融合在一起。

变暗

multiply

前景色越亮,后景色显示出来的越多。

darken

选择两个颜色中较暗的那个。

color-burn

加深背景色,增加对比度。

变亮

screen

前景色越暗,背景色显示出来的越多。

lighten

选择两个颜色中较亮的那个

color-dodge

加亮背景色,降低对比度。

对比

overlay

对暗色使用multiply,对亮色使用screen,以增加对比度,对比效果较柔和。

hard-light

大幅度增加对比度,有点像叠加,但是使用加强版multiply或者screen,对比效果明显。

soft-light

有点类似hard-light,但是使用burn/dodge代替multiply/screen。

复合

Hue

将上层颜色的色相混合到下层颜色上。

saturation

将上层颜色的饱和度复合到下层颜色上。

luminosity

将上层颜色的明度混合到下层颜色上。

color

将上层颜色的色相和饱和度混合到下层颜色上。

比较

difference

从亮色中减去暗色。

exclusion

类似于difference,但对比度稍弱。

表 混合模式的五大类

图 15种混合模式效果

3.1 实际应用

混合模式实际应用有:

  1. 使用某种颜色或渐变为图片着色。
  2. 为图片增加纹理效果,比如划痕或者老胶片放映时的颗粒感等。
  3. 缓和、加深或减小图片的对比度,使图片上的文字更具可读性。
  4. 在图片上覆盖一条文字条幅,但是还是想让图片完整显示。

图 纹理效果

3.1.1 融合混合模式

background-blend-mode属性只能局限于元素的背景使用。mix-blend-mode可以融合多个元素。

图 融合混合模式效果

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div class="blend"><h1>融合混合模式</h1>
</div>
</body>
</html>
<style>.blend {background-image: url("../asset/animal1.jpeg");background-size: 100%;width: 200px;height: 200px;display: flex;align-items: center;}.blend > h1 {margin: 0;font-size: 2rem;text-align: center;mix-blend-mode: hard-light;background-color: #c33;color: #808080;border: 0.1em solid #ccc;}
</style>

相关文章:

CSS 背景、阴影和混合模式

网站的好坏在于细节&#xff0c;在实现页面里某个组件的布局并写完样式之后&#xff0c;不要急着继续&#xff0c;有意识地训练自己&#xff0c;以挑剔的眼光审视刚刚完成的代码。 1 背景与渐变 background-image 指定文件或者生成的颜色渐变为背景图片。 background-origin…...

第49届ICPC亚洲区域赛,非凸科技再次支持上海赛站

11月16日-17日&#xff0c;第49届ICPC国际大学生程序设计竞赛亚洲区域赛上海站在上海大学宝山校区成功举办&#xff0c;来自全国各地222所高校、中学、企业的352支参赛队伍同台竞技。非凸科技高度重视ICPC竞赛&#xff0c;再次荣膺上海赛站合作伙伴&#xff0c;共同推动全球信息…...

良好的并发编程习惯之封闭(Confinement)

创作内容丰富的干货文章很费心力&#xff0c;感谢点过此文章的读者&#xff0c;点一个关注鼓励一下作者&#xff0c;激励他分享更多的精彩好文&#xff0c;谢谢大家&#xff01; “共享可变状态”有两个要点&#xff1a;“共享”和“可变”。封闭的策略是&#xff1a;不共享就完…...

docker镜像、容器、仓库介绍

docker docker介绍docker镜像命令docker容器命令docker仓库 docker介绍 官网 Docker 是一种开源的容器化平台&#xff0c;用于开发、部署和运行应用。它通过将应用程序及其依赖项打包到称为“容器”的单一包中&#xff0c;使得应用能够在任何环境下运行&#xff0c;不受底层系…...

写个添加球队和展示球队的功能--laravel与inertia

先展示下最终效果,如下是展示球队的界面 如下是添加球队的界面 界面样式没怎么调整,不要在意这些细节。先说说操作流程 首先需要登录,没注册就注册一个账号。登录界面就不展示了。然后选中”NbaBasketballTeams“这个选项,就进入了展示球队的界面。然后点击…...

自制Windows系统(十)

上图 &#xff08;真的不是Windows破解版&#xff09; 开源地址&#xff1a;仿Windows...

World of Warcraft /script SetRaidTarget(“target“, n, ““) n=8,7,6,5,4,3,2,1,0

魔兽世界执行当前目标标记方法 /script SetRaidTarget("target", n, "") n8,7,6,5,4,3,2,1,0 解析这个lua脚本 D:\Battle.net\World of Warcraft\_classic_\Interface\AddOns\wMarker wMarker.lua /script SetRaidTarget("target", 8, &quo…...

Rust中Tracing 应用指南

欢迎来到这篇全面的Rust跟踪入门指南。Rust 的tracing是一个用于应用程序级别的诊断和调试的库。它提供了一种结构化的、异步感知的方式来记录日志和跟踪事件。与传统的日志记录相比&#xff0c;tracing能够更好地处理复杂的异步系统和分布式系统中的事件跟踪&#xff0c;帮助开…...

海外媒体发稿:根据您的要求编写二十个文案标题方法-华媒舍

本文旨在科普解读并描述标题中所包含的二十个爆款文案&#xff0c;为读者提供更深入的了解和知识。通过对每个标题进行拆解描述&#xff0c;我们将深入探讨各个文案标题的背后含义和吸引人之处。 1、"10个你不可忽视的秘密技巧&#xff0c;提升你的生活品质&#xff01;&q…...

gitlab:使用脚本批量下载项目,实现全项目检索

目的 当需要知道gitlab中所有项目是否存在某段代码时&#xff0c;gitlab免费版只提供了当个项目内的检索&#xff0c;当项目过多时一个个查太过繁琐。下面通过 GitLab API 将指定 Group 下的所有项目克隆到本地。此脚本会自动获取项目列表并逐一克隆它们&#xff0c;再在本地进…...

macos 使用 nvm 管理 node 并自定义安装目录

系统环境&#xff1a;MacOS Version 参考文章&#xff1a; Github 地址&#xff1a;https://github.com/nvm-sh/nvm 安装的方式是很简单的&#xff0c;直接执行下面的命令即可&#xff1a; curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bas…...

网络编程第一课

0voice第一课 https://github.com/0voice 今日学习&#xff1a;网络通信IO 网络通信的核心是通过系统提供的socket套接字实现的。socket和c语言中文件操作的本质类似&#xff0c;在c语言中&#xff0c;通过fopen、fclose、fread、fwrite实现了对文件的操作&#xff0c;socket…...

玩转 Burp Suite (1)

内容预览 ≧∀≦ゞ 玩转 Burp Suite (1)声明Burp Suite 简介Dashboard&#xff08;仪表盘&#xff09;1. 默认任务管理2. 暂停任务3. 新建扫描任务4. 使用总结 Target&#xff08;目标&#xff09;1. SIte Map &#xff08;站点地图&#xff09;2. Scope&#xff08;范围&#…...

【linux】(16)date命令

基本用法 date [OPTION]... [FORMAT]显示当前日期和时间 默认情况下&#xff0c;date 命令显示当前的日期和时间&#xff1a; date输出示例&#xff1a; Sun Jun 2 10:29:08 UTC 2024自定义日期和时间格式 可以使用 FORMAT 选项自定义输出格式。常用的格式选项包括&#…...

算法笔记:并查集

一、什么是并查集 并查集的逻辑结构是一个包含N个元素的集合&#xff0c;如图&#xff1a; 我们将各个元素划分为若干个互不相交的子集&#xff0c;如图&#xff1a; 二、并查集的基本操作 &#xff08;一&#xff09;初始化 初始化可以先将每个子集指向自己 //初始化int []…...

密码系统设计实验3-2

文章目录 《密码系统设计》实验实验项目实验三 密码模块实现4-6 学时实践要求&#xff08;30 分&#xff09; 《密码系统设计》实验 实验项目 实验序号实验名称实验学时数实验目的实验内容实验类型学生学习预期成果实验三密码模块实现6基于商用密码标准的密码模块的实现实现简…...

Spring Boot 与 Spring Cloud Alibaba 版本兼容对照

版本选择要点 Spring Boot 3.x 与 Spring Cloud Alibaba 2022.0.x Spring Boot 3.x 基于 Jakarta EE&#xff0c;javax.* 更换为 jakarta.*。 需要使用 Spring Cloud 2022.0.x 和 Spring Cloud Alibaba 2022.0.x。 Alibaba 2022.0.x 对 Spring Boot 3.x 的支持在其发行说明中…...

SVD 奇异值分解

SVD 是一种矩阵分解和降维的算法&#xff0c;通过分解矩阵找到奇异值&#xff0c;奇异值越大代表特征越重要。公式如下 A U Σ V T A U \Sigma V^T AUΣVT U : 左矩阵 ( m \times m ) Σ \Sigma Σ: 对角奇异值矩阵V&#xff1a;右矩阵( n \times n ) Sklearn 实现 S…...

C++设计模式-享元模式

动机(Motivation) 在软件系统采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中&#xff0c;从而带来很高的运行时代价——主要指内存需求方面的代价。如何在避免大量细粒度对象问题的同时&#xff0c;让外部客户程序仍然能够透明地使用面向对象的方式来进行操作…...

AI加持,华为全屋智能品牌升级为“鸿蒙智家”

1.传统智能家居的困境&#xff1a;从便利到繁琐 近年来&#xff0c;智能家居因其便捷性和科技感受到消费者的青睐。然而&#xff0c;随着用户需求的多样化&#xff0c;传统智能家居的弊端逐渐显现&#xff1a; 设备连接复杂&#xff0c;品牌间兼容性不足&#xff0c;用户不得不…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)

服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南

精益数据分析&#xff08;97/126&#xff09;&#xff1a;邮件营销与用户参与度的关键指标优化指南 在数字化营销时代&#xff0c;邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天&#xff0c;我们将深入解析邮件打开率、网站可用性、页面参与时…...

Device Mapper 机制

Device Mapper 机制详解 Device Mapper&#xff08;简称 DM&#xff09;是 Linux 内核中的一套通用块设备映射框架&#xff0c;为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程&#xff0c;并配以详细的…...

Python 高效图像帧提取与视频编码:实战指南

Python 高效图像帧提取与视频编码:实战指南 在音视频处理领域,图像帧提取与视频编码是基础但极具挑战性的任务。Python 结合强大的第三方库(如 OpenCV、FFmpeg、PyAV),可以高效处理视频流,实现快速帧提取、压缩编码等关键功能。本文将深入介绍如何优化这些流程,提高处理…...

rknn toolkit2搭建和推理

安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 &#xff0c;不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源&#xff08;最常用&#xff09; conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...