每日一题:通过css变量来控制主题

每日,一题,通过,css,变量,控制,主题 · 浏览次数 : 4

小编点评

```html ``` **内容解析:** 1. **定义不同主题颜色**:`:root`中的`--theme-color`定义不同主题的颜色,而`html[theme=\"dark\"]`则根据`theme`属性的值切换颜色。 2. **通过切换html自定义属性来控制主题**:当`theme`属性设置为`dark`时,`--theme-color`的值更改为`#000`,设置字体颜色为黑色。否则,`--theme-color`的值设置为`#000`,设置字体颜色为白色。 3. **设置主题颜色**:`.theme`样式定义了一个背景颜色为`var(--theme-color)`,其中`--theme-color`是通过`html[theme=\"dark\"]`中定义的属性的值。 **示例使用:** ```html
``` 当点击“改变主题”按钮时,主题会切换为黑色。

正文

1、定义不同主题颜色

      :root{
      --theme-color: blue;
      --font-size: 18px;;
    }
    html[theme="dark"]{
        --theme-color: #000;
       

2、通过切换html自定义属性来控制主题

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
  <div class="theme">

  </div>
<button>改变主题</button>
</body>
<script>
    document.getElementsByTagName('button')[0].addEventListener('click',changeTheme,false);
    function changeTheme(){
        console.log('changeTheme')
        if(document.documentElement.getAttribute('theme') === 'dark'){
            document.documentElement.setAttribute('theme','light');
        }else{
            document.documentElement.setAttribute('theme','dark');
        }
    }
</script>
</html>
<style>
    :root{
      --theme-color: blue;
      --font-size: 18px;;
    }
    html[theme="dark"]{
        --theme-color: #000;
        --font-size: 13px;
    }
    .theme{
        width: 700px;
        height: 700px;
        background: var(--theme-color);
    }
</style>

与每日一题:通过css变量来控制主题相似的内容:

每日一题:通过css变量来控制主题

1、定义不同主题颜色 :root{ --theme-color: blue; --font-size: 18px;; } html[theme="dark"]{ --theme-color: #000; 2、通过切换html自定义属性来控制主题

每日一题:AJAX进度监控(附可运行源码)

1、什么是AJAX AJAX(Asynchronous JavaScript and XML)是一种用于在网页上进行异步通信的技术。它允许在不刷新整个页面的情况下,通过在后台与服务器进行数据交换来更新部分网页内容。 传统的网页开发中,当用户与网页进行交互时,需要刷新整个页面才能获取最新的内容。而使用

每日一题:探究响应式本质,以最简单的方式理解响应式

1、响应式本质 就是把数据和函数相关联起来,当数据变化时,函数自动执行。当然这对于函数和数据也是有要求的 函数必须是以下几种: render computed watch watchEffect 数据必须是以下几种: 响应式数据 在函数中用到的数据 2、例子 2.1

每日一题:吃透大文件上传问题(附可运行的前后端源码)

大文件上传 前言 在日常开发中,文件上传是常见的操作之一。文件上传技术使得用户可以方便地将本地文件上传到Web服务器上,这在许多场景下都是必需的,比如网盘上传、头像上传等。 但是当我们需要上传比较大的文件的时候,容易碰到以下问题: 上传时间比较久 中间一旦出错就需要重新上传 一般服务端会对文件的大小

每日一题: 细说es6中的Reflect

1、Reflect是什么,有什么作用? Reflect是ES6为了操作对象而新增的API,Reflect对象是一个全局的普通的对象,Reflect的原型就是Object. 作用:将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上

每日一题:无感刷新页面(附可运行的前后端源码,前端vue,后端node)

1、前言 想象下,你正常在网页上浏览页面。突然弹出一个窗口,告诉你登录失效,跳回了登录页面,让你重新登录。你是不是很恼火。这时候无感刷新的作用就体现出来了。 2、方案 2.1 redis设置过期时间 在最新的技术当中,token一般都是在Redis服务器存着,设置过期时间。只要在有效时间内,重新发出

每日一题:vue3自定义指令大全(呕心沥血所作,附可运行项目源码)

1.VUE常用指令大全 本项目所有指令均为全局注册,使用时直接在组件中使用即可。 指令目录:src/directives 页面目录:src/views 具体可查看源码 1.1 权限指令 封装一个权限指令,在模板中根据用户权限来控制元素的显示或隐藏。 permission.js import { re

每日一题:如何判断是否是数组,一个既简单又复杂的问题。(不要再用Object.prototype.toString.call、instance of判断了!!!)

1、不要使用Object.prototype.toString.call() 正常情况下: const arr = [1,2,3,4,5] const obj = {} console.log(Object.prototype.toString.call(arr))//[Object,Array]

后端每日一题 1:说一下三次握手

本文首发于公众号:腐烂的橘子 三次握手的流程 第 1 步 - 初始连接请求 SYN(Synchronize) 服务端状态 LISTEN,客户端向服务端发送一个 SYN 标志位的报文段(TCP segment) 这个报文段包含初始序列号 x,以及最大报文段大小等字段 客户端发送报文后,状态设置为 SY

后端每日一题 2:DNS 解析过程

本文首发于公众号:腐烂的橘子 本文梗概: DNS 是什么,有什么作用 一条 DNS 记录是什么样的 DNS 域名解析原理 DNS 服务器如何抵御攻击 DNS 是什么,有什么作用 DNS(Domain Name System)是一种应用层协议,用于映射域名和 ip 地址。 为什么要做映射呢?就像可以用