Skip to content

移动端主题切换

html
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      [data-prefer-scheme='light'] {
        --primary-color: #007bff;
        --secondary-color: #6c757d;
        --bg-color: #f8f9fa;
        --text-color: #333;
      }

      [data-prefer-scheme='dark'] {
        --primary-color: #6c757d;
        --secondary-color: #007bff;
        --bg-color: #333;
        --text-color: #f8f9fa;
      }

      body {
        background-color: var(--bg-color);
        color: var(--text-color);
        font-family: Arial, sans-serif;
        margin: 0;
        padding: 0;
      }

      .container {
        max-width: 800px;
        margin: 0 auto;
        padding: 40px;
      }

      h1 {
        color: var(--primary-color);
        background-color: var(--bg-color);
        color: var(--text-color);
      }

      button {
        color: var(--secondary-color);
        border: none;
        padding: 10px 20px;
        cursor: pointer;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <h1>Theme Demo</h1>
      <button id="theme-btn">Toggle Theme</button>
      <p>This is some content.</p>
    </div>
    <script>
      const themeBtn = document.getElementById('theme-btn');
      let currentTheme = 'light';

      function toggleTheme() {
        if (currentTheme === 'light') {
          document.documentElement.setAttribute('data-prefer-scheme', 'dark');
          currentTheme = 'dark';
        } else {
          document.documentElement.setAttribute('data-prefer-scheme', 'light');
          currentTheme = 'light';
        }
      }

      themeBtn.addEventListener('click', toggleTheme);
    </script>
  </body>
</html>