• 自定义 HTML5 Progress 的样式


    Progress 元素是 HTML5 标准草案中新增的元素之一,W3C 关于此元素的定义请猛击这里。默认情况下,Progress 会生成一个和系统默认样式一样的进度条。Webkit 中对于 Progress 的默认样式定义在这里可以找到。在 Windows 7 和 MaxOS Lion 中的显示效果如下:

    看起来貌似还不错,但是如果运行在 Windows XP 下呢?想一下就够头疼了,何况出于一致性的考虑,很多情况下我们还是想能够控制这个进度条的样式。

    查看了 Webkit 项目中关于 Element Progress 的定义,Progress 在渲染时会被解析成以下结构:

    <progress>
        ┗ <div> ::-webkit-progress-bar
             ┗ <div>::-webkit-progress-value

    通过 ::-webkit-progress-bar 和 ::-webkit-progress-value 两个伪元素选择符(之前伪元素的名称是 ::-webkit-progress-bar-value,今年上半年的某个 Patch 改成了现在这样,这里可以看到 Chromium 中一个相关的 Issue),可以定义第一层和第二层的两个 div 的样式。

    示例:

    progress {
        border-radius: 2px;
        border-left: 1px #ccc solid;
        border-right: 1px #ccc solid;
        border-top: 1px #aaa solid;
        background-color: #eee;
    }
     
    progress::-webkit-progress-bar {
        background-color: #d7d7d7;
    }
     
    progress::-webkit-progress-value {
        background-color: #aadd6a;
    }

    以上 CSS 可以定义一个如下效果的 Progress Bar:

    同时支持 CSS 动画、背景图片等特性哦,这样就可以根据自己的需要打造一个完全个性化的 Progress Bar 了。另外 Gecko 核心的浏览器也可以通过一个类似的伪元素 ::-moz-progress-bar 来实现同样的效果。IE 全系不支持此元素(这简直是一定的)。

  • 相关阅读:
    Vue-ui常用组件库整理
    给博客添加fork me on github图标
    element-ui 带单选框的表格
    css grid 网格布局
    TensorFlow学习笔记(6):TensorBoard之Embeddings
    ES6 异步编程之一:Generator
    浅析 Node.js 的 vm 模块以及运行不信任代码
    使用 D8 分析 javascript 如何被 V8 引擎优化的
    深入新版BS4源码 探索flex和工程化sass奥秘
    PHP-7.1 源代码学习:字节码生成 之 "$a = 1"
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/2101927.html
Copyright © 2020-2023  润新知