现代 CSS 解决方案:accent-color 强调色

这篇具有很好参考价值的文章主要介绍了现代 CSS 解决方案:accent-color 强调色。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

accent-color 是从 Chrome 93 开始被得到支持的一个不算太新属性。之前一直没有好好介绍一下这个属性。直到最近在给一些系统整体切换主题色的时候,更深入的了解了一下这个属性。

简单而言,CSS accent-color 支持使用几行简单的 CSS 为表单元素着色,是的,只需几行代码就可以将主题颜色应用到页面的表单输入。

表单元素一直被吐槽很难自定义。而 accent-color 就是规范非常大的一个改变,我们开始能更多的自定义原生的表单的样式了!

如何使用 accent-color

OK,我们一起来学习一下,我们应该如何使用 accent-color

首先,我们来实现这么一个简单的表单界面:

<div class="wrapper">
	<form action="">
		<fieldset>
			<legend>Accent-color Demo</legend>

			<label>
				Strawberries
				<input type="checkbox" id="berries_1" value="strawberries">
			</label>

			<label>
				Radio Buttons
				<div>
					<input type="radio" name="accented-demo" checked>
					<input type="radio" name="accented-demo">
					<input type="radio" name="accented-demo">
				</div>
			</label>

			<label>
				Range Slider
				<input type="range">
			</label>

			<label>
				Progress element
				<progress max="100" value="50">50%</progress>
			</label>
		</fieldset>
	</form>
</div>

只需要最简单的布局 CSS,与 accent-color 关系不大,我就不列出来了,这样,我们的 DEMO 大致如下:

现代 CSS 解决方案:accent-color 强调色

可以看到,表单控件的主题颜色是蓝色,在之前,我们是没办法修改这个颜色的。

而现在,我们可以简单的借助 accent-color,修改表单的主题色:

:root {
	accent-color: rgba(250, 15, 117);
}

其中,rgba(250, 15, 117) 表示粉色,此时,整体的效果就变成了:

现代 CSS 解决方案:accent-color 强调色

当然,这个 accent-color 也支持传入 CSS 变量,配合更多的其他颜色一起进行修改。

我们可以对上述的 DEMO 再简单改造:

:root {
	--brand: rgba(250, 15, 117);
	accent-color: var(--brand);
}
fieldset {
	border: 1px solid var(--brand);
}
legend {
	color: var(--brand);
}

我们设置了一个 CSS 变量 --brand: rgba(250, 15, 117),除了把这个颜色赋值给表单的 accent-color,还能赋值给其它更多元素。譬如这里,我们赋值给了 <fieldset> 的边框色和 <legend> 的文字颜色。

这样,当我们修改 CSS 变量值时,整个主题色会一起发生变化:

现代 CSS 解决方案:accent-color 强调色

完整的 DEMO,你可以戳这:CodePen Demo -- Accent-color with custom property

通常而言,更多的时候,我们会将 accent-color 应用于:

  • checkbox
  • radio
  • range
  • progress

与 color-scheme 配合使用,适配日间夜间模式

还有一个容易忽略的细节点。accent-color 还支持和 color-scheme 一起使用。

OK,什么是 color-scheme 呢?color-scheme 是 CSS 的一个属性,用于指定网页的颜色方案或主题。它定义了网页元素应该使用哪种颜色方案来呈现内容。

color-scheme 属性有以下几个可能的取值:

  • auto:表示使用用户代理(浏览器)的默认颜色方案。这通常是浏览器自动根据操作系统或用户设置选择的方案。
  • light:表示使用浅色颜色方案。这通常包括浅色背景和深色文本。
  • dark:表示使用深色颜色方案。这通常包括深色背景和浅色文本。

通过指定适当的 color-scheme 值,开发者可以为网页提供不同的颜色方案,以适应用户的偏好或操作系统的设置。这有助于提供更好的可访问性和用户体验。

譬如,我们可以将页面的 color-schema 设置为 light dark

body {
  color-scheme: light dark;
}

上述代码表示页面将同时支持浅色和深色颜色方案。它告诉浏览器,网页希望适应用户代理(浏览器)的默认颜色方案,并同时支持浅色和深色模式。

当使用 color-scheme: light dark 时,浏览器会根据用户代理的默认颜色方案来选择适当的颜色方案。如果用户代理处于浅色模式,网页将使用浅色颜色方案来呈现内容;如果用户代理处于深色模式,网页将使用深色颜色方案来呈现内容。

此时,我们的代码可以这样改造:

:root {
	--brand: rgba(250, 15, 117, 1);
	accent-color: var(--brand);
}
@media (prefers-color-scheme: dark) {
	:root {
		--brand: rgba(3, 169, 244, 1);
	}
	
	body {
		background: #000;
		color: #fff;
	}
}
body {
	color-scheme: light dark;
}

下面是我在手机上调整日间模式和夜间模式的效果图:

现代 CSS 解决方案:accent-color 强调色

通过 @media (prefers-color-scheme: dark) {} 媒体查询,在黑夜模式下,展示不同的 accent-color

可能有人对 @media (prefers-color-scheme: dark) 还不太了解,可以看看我的这篇文章 -- 使用 CSS prefers-* 规范,提升网站的可访问性与健壮性

完整的 DEMO,你可以戳这:CodePen Demo -- Accent-color with custom property

最后

怎样,学会了吗。并且,根据规范描述,后续 accent-color 将会应用于更多的元素。将未来的 CSS 中会逐渐变得更加重要。早点掌握不是坏事。

好了,本文到此结束,希望本文对你有所帮助 😃

想 Get 到最有意思的 CSS 资讯,千万不要错过我的公众号 -- iCSS前端趣闻 😄

更多精彩 CSS 技术文章汇总在我的 Github -- iCSS ,持续更新,欢迎点个 star 订阅收藏。

如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。文章来源地址https://www.toymoban.com/news/detail-837837.html

到了这里,关于现代 CSS 解决方案:accent-color 强调色的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • css相邻元素边框重合问题,解决方案

    给每个元素设置margin-top以及margin-left为负的边框 我的解决方案是在宽度上下手,根据观察,发现一行三列,实际导致缺失的是两个边框的大小,那么将这两个边框的大小平分到每行三列模块的开宽度内即可解决,其他情况下,由此推导

    2024年03月08日
    浏览(37)
  • 【vue项目部署CSS失效】VUE部署后css样式加载无效和失效多种情况解决方案

    【写在前面】vue3在vscode运行正常、build后在IDEA运行正常,但是当部署在服务器上运行发现样式加载不出来,下面我们针对这些情况进行复现与解决。 困扰我好久,当即百度原因,百度清一色下面三种情况: 1、nginx配置文件的问题 2、控制台样式404,文件没找到【文件路径错

    2023年04月09日
    浏览(42)
  • CSS使两个不同的div居中对齐的三种解决方案

    在CSS中,有多种方法可以让两个不同的div居中对齐,包括相对定位和绝对定位。以下是两种常见的方法: 方法一:使用Flexbox Flexbox是一个用于创建灵活布局的CSS3模块。使用Flexbox,可以很容易地对元素进行居中对齐。 HTML: CSS: 方法二:使用CSS Grid CSS Grid是另一个用于创建二维

    2024年02月10日
    浏览(60)
  • CSS笔记——font、line-height知识点及图片间隙、文本溢出等解决方案

    font-family(字体族 ):指定字体的名称或类别。可以指定多个字体族,用逗号分隔,浏览器会按照指定的顺序依次寻找可用字体。可取值: 字体名称:如\\\"Arial\\\"、\\\"Times New Roman\\\"等。 通用字体系列:如\\\"serif\\\"、“sans-serif”、\\\"monospace\\\"等。 自定义字体系列:如\\\"myFont, Arial, sans-serif

    2024年02月07日
    浏览(52)
  • CSS - 完美解决 flex 布局下,一行显示固定个数(平均分布)并且强制换行,超出后 “靠左“ 对其(详细解决方案,适用于 Web、Vue、React 等任何前端项目)

    关于 flex 布局下 justify-content: xx,很多朋友都想让其换行后,靠左进行依次排列(默认会平均分布居中)。 本文实现了 纯 CSS (无任何 JS),实现 flex / justify-content 弹性布局下,断行后让元素始终靠左排序, 你可以一键复制示例,然后稍微改改样式就能使用。 如下图所示,

    2024年02月03日
    浏览(45)
  • CSS色域、色彩空间、CSS Color 4新标准

    近期,三大主流浏览器引擎均发布最新版本,支持W3C的CSS Color 4标准,包含新的取色方法 color() 和相应语法,可展示更多的色域及色彩空间,这意味着web端能展示更丰富更高清的色彩。虽然目前只有最新版本的现代浏览器才支持,我们可以先提前了解一下这项新标准。 本文首

    2024年02月08日
    浏览(47)
  • CSS色域、色彩空间、CSS Color 4新标准 | 京东云技术团队

    近期,三大主流浏览器引擎均发布最新版本,支持W3C的CSS Color 4标准,包含新的取色方法 color() 和相应语法,可展示更多的色域及色彩空间,这意味着web端能展示更丰富更高清的色彩。虽然目前只有最新版本的现代浏览器才支持,我们可以先提前了解一下这项新标准。 本文首

    2024年02月05日
    浏览(37)
  • 智慧社区解决方案核心要点有哪些 智慧社区解决方案

    智慧社区解决方案核心要点有哪些 智慧社区解决方案 城市的发展意味着生产与消费的集中化与规模化,这些改变带来了生产效率的提高。而智慧社区解决方案核心要点有哪些呢?下面跟着小编一起去了解下! 智慧社区解决方案核心要点有哪些:数字化 大数据、云计算等新技

    2024年02月05日
    浏览(59)
  • 千万级数据并发解决方案(理论+实战) 高并发解决思路 方案

    课程地址 项目地址 秒杀 高并发 新闻系统 超大数据量 一般的网站 写入的少 读取的次数多 模糊查询 数据量少的时候可以用 like 数据量多的时候用 Elasticsearch搜索引擎 占用磁盘空间比较大 在laravel中 创建 要提前配置好数据库 在Tests文件中写入 运行命令 php artisan app:tests 生成

    2024年02月08日
    浏览(86)
  • CSS中如何实现文字渐变色效果(Text Gradient Color)?

    前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一个系统而又亲切的学习平台。在这个

    2024年02月10日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包