浅色模式效果如图:
深色模式效果如图:
window.matchMedia ( https://developer.mozilla.org/zh-CN/docs/Web/API/Window/matchMedia ) 方法可以用来查询指定的媒体查询字符串解析后的结果。结合 CSS 变量和 matchMedia 的查询结果,设置对应的 CSS 主题颜色。该方法更灵活,可以单独抽离主题色进行适配,深色模式匹配 (prefers-color-scheme: dark) ,浅色模式匹配 (prefers-color-scheme: light) 。
监听主题模式,深色模式时为 body 添加类名 dark,根据 CSS 变量的响应式布局特点,自动生效 dark 类名下的 CSS。
浅色模式效果如图:
深色模式效果如图:
创建和应用CSS
样式表
除了为单个元素设置内联样式之外,还可以创建和应用级联样式表
(CSS)
文件。级联样式表使您可以定义可应用于多个控件和页面的样式,而不必分别编辑元素。
在演练的本节中,将创建样式表,该样式表使您可以使用用于设置内联样式的相同工具。然后将样式表应用于正在编辑的页面。
创建样式表
在解决方案资源管理器中,右击网站的名称(如
C:\WebSites),再单击“添加新项”。
在“Visual
Studio
已安装的模板”之下单击“样式表”。
在“名称”框中,键入“dark.css”,再单击“添加”。
编辑器打开一个包含
body
样式元素的新样式表。
将插入点定位在左右大括号
({
})
之间,然后在“样式”菜单上单击“生成样式”。
出现“样式生成器
-
body”对话框。
单击“字体”,在“字体属性”下单击位于“颜色”框右边的省略号“(…)”,在“颜色选取器”对话框中单击一种亮色,再单击“确定”。
注意
请确保选择一种与网站网页的默认颜色不同的颜色。
单击“背景”,单击一种与前面步骤中选定的字体颜色对比的暗色(如“褐紫红色”),再单击“确定”关闭“样式生成器
-
body”对话框。
将插入点定位到
body
元素的右大括号之后,右击,再单击“添加样式规则”。
出现“添加样式规则”对话框。
“添加样式规则”对话框使您可以创建绑定到特定
HTML
元素类型、样式类名或特定元素的新样式。
单击“类名”,然后在框中键入“reverse”。
这样将创建一个名为
.reverse
的新样式类。将能够把为
.reverse
定义的样式设置应用于页上的任何元素。还可以选择创建类,以便它只能应用于特定类型的元素(定位点、按钮等),但是在本演练中将创建一个简单的样式类。
单击“确定”以关闭“添加样式规则”对话框。
使用样式生成器或
IntelliSense
功能将
.reverse
样式的颜色设置为与主体样式的颜色相反的颜色。元素类似于如下所示:
.reverse
{
background-color:white
color:maroon
}
既然有样式表,那么可以在正在编辑的页中对其进行引用。
在网页上引用样式表
打开
Default.aspx
页并切换到“设计”视图。
从解决方案资源管理器中,将
dark.css
文件拖动到页面上。
页面已更新,并显示样式表的效果。
单击“正方形”,然后在“属性”中设置“CssClass”“reverse”。
这样将反转样式应用于“正方形”。
切换到“源”视图。
在
<head>
元素中,可以看到编辑器已经添加了引用样式表的
<link>
元素。还可以看到
<asp:button>
元素的
cssclass
属性已设置为
reverse。
右击该页,再单击“在浏览器中查看”。
该页出现在浏览器中,且已应用样式表。