• CSS实现白天/夜晚模式切换


    目录

    功能介绍

    示例

    原理

    代码 

    优化

    总结


    功能介绍

            在网页设计和用户体验中,模式切换功能是一种常见的需求。模式切换可以为用户提供不同的界面外观和布局方案,以适应其个人偏好或特定环境。在这篇博客中,我们将探索如何使用纯CSS实现一个简单的模式切换效果,无需依赖JavaScript的运行。

    示例

    原理

            通过复选框的选中状态和CSS选择器来控制开关按钮的显示效果。当复选框被选中时,通过选择器选中相邻的元素,然后应用相应的样式改变。常用于创建交互效果和状态切换控件的UI设计。

    代码 

    1. <template>
    2. <div>
    3. <input type="checkbox" id="modeCheckBox">
    4. <div class="container">
    5. <button><label for="modeCheckBox">切换模式label>button>
    6. <p>123p>
    7. div>
    8. div>
    9. template>
    10. <style>
    11. #modeCheckBox {
    12. display: none;
    13. }
    14. .container {
    15. width: 100%;
    16. height: 600px;
    17. transition: all 1s;
    18. }
    19. #modeCheckBox:checked+.container {
    20. background: #000;
    21. color: #fff;
    22. }
    23. style>

            在视图中,我们使用了一个元素来实现复选框,它的id属性被设置为modeCheckBox。接着,我们创建了一个包含按钮和段落的容器,其外部包裹了复选框和容器本身。容器具有.container的类选择器,设置了宽度、高度和过渡效果。

            在样式中,我们使用了display: none;来隐藏复选框,以便只使用自定义按钮进行模式切换。.container类选择器定义了容器的样式,包括宽度、高度和过渡效果。当复选框被选中时,通过使用#modeCheckBox:checked+.container选择器,我们可以改变容器的背景色和文字颜色,从而实现模式切换的效果。

    优化

    1. <template>
    2. <div class="mode-toggle">
    3. <input type="checkbox" id="modeCheckBox">
    4. <label for="modeCheckBox" class="switch">label>
    5. <div class="container">
    6. <p>这是一个示例文本。p>
    7. div>
    8. div>
    9. template>
    10. <style>
    11. .mode-toggle {
    12. position: relative;
    13. }
    14. .mode-toggle #modeCheckBox {
    15. display: none;
    16. }
    17. .mode-toggle .switch {
    18. position: absolute;
    19. top: 0;
    20. right: 10%;
    21. width: 60px;
    22. height: 34px;
    23. background-color: #ccc;
    24. border-radius: 17px;
    25. cursor: pointer;
    26. transition: background-color 0.3s ease;
    27. }
    28. .mode-toggle .switch::after {
    29. content: "";
    30. position: absolute;
    31. top: 2px;
    32. left: 2px;
    33. width: 30px;
    34. height: 30px;
    35. background-color: #fff;
    36. border-radius: 50%;
    37. transform: translateX(0);
    38. transition: transform 0.3s ease;
    39. }
    40. #modeCheckBox:checked+.switch {
    41. background-color: #2196F3;
    42. }
    43. #modeCheckBox:checked+.switch::after {
    44. transform: translateX(26px);
    45. }
    46. .container {
    47. width: 100%;
    48. height: 500px;
    49. transition: all 1s;
    50. }
    51. #modeCheckBox:checked~.container {
    52. background: #000;
    53. color: #fff;
    54. }
    55. style>

            在上述代码中,我们使用了元素来创建一个复选框,它的id属性设置为modeCheckBox。复选框后面是一个元素,通过设置for属性与复选框关联。我们使用一个带有背景色的元素作为模拟开关按钮,通过CSS实现其样式。在

    容器中,我们可以放置需要随模式切换而改变外观的内容,这里使用了一个示例段落。

            在CSS部分,我们首先对模拟开关按钮的样式进行了定义,包括背景颜色、边框半径和过渡效果。使用::after伪元素创建了一个白色圆点,表示开关状态。使用transform属性实现开关滑动的效果。

            通过选择器#modeCheckBox:checked + .switch#modeCheckBox:checked + .switch::after,我们定义了复选框选中时模拟开关按钮和圆点的样式改变,从而实现模式切换时的动画效果。

            通过这段纯CSS代码的实现,我们成功地创建了一个基本的模式切换效果。用户可以点击模拟开关按钮,切换模式,而无需任何JavaScript代码的介入。

    总结

            使用纯CSS实现模式切换功能的好处之一是它可以提供更好的性能,尤其是在移动设备上。纯CSS解决方案能够充分利用浏览器的硬件加速,并避免了JavaScript引擎的运行开销。此外,纯CSS实现还能简化代码结构,减少对外部脚本的依赖。

            需要注意的是,纯CSS解决方案适用于一些简单的切换效果,对于更复杂的交互和动态内容变化可能需要借助JavaScript来实现。

            总之,通过本篇博客,我们探索了如何使用纯CSS实现模式切换效果。这种纯CSS解决方案不仅提供了一种简单而轻量的方式切换模式,同时也可以提升页面性能和用户体验。希望这个示例对你的项目有所启发,进一步发展和优化模式切换功能。

  • 相关阅读:
    ThinkAutomation Crack
    Vue结合Jquery 实现网页端数字键盘
    模拟登陆系统
    stm32之智能垃圾桶实战
    GIT 常用指令
    编程向导-JavaScript-基础语法-算术/赋值/逗号/运算符
    JavaScript 笔记1 ES6 新特性 | 解构赋值、模板字符串、Symbol数据类型、Promise、模块化
    Fortran语言程序设计01 函数与子例行程序
    STM32H743XX/STM32H563XX芯片烧录一次后,再次上电无法烧录
    云计算-Linux-软链接与硬链接,获取命令帮助,系统运行级别,关机和重启
  • 原文地址:https://blog.csdn.net/qq_51588894/article/details/132537642