【问题标题】:How can I make bootstrap-table column-sort icons more visible?如何使引导表列排序图标更明显?
【发布时间】:2021-04-07 04:18:46
【问题描述】:

我正在使用 bootstrap-table 使用 Bootstrap 4 创建一个表,并为列启用排序。它工作得非常好,除了一个小细节:列标题中的小箭头几乎看不见。这是截图:

如何使向上/向下图标更大、更暗或更明显?

【问题讨论】:

    标签: bootstrap-4 bootstrap-table


    【解决方案1】:

    Bootstrap-table 的默认箭头图像的颜色并没有提供太多的颜色对比,尤其是您的表格使用的浅灰色背景色(与 Bootstrap-table 在他们的示例中使用的白色背景相比),并且箭头被硬编码为 base64 图像,因此不容易更改。

    如果您想要符合 WCAG 2 AA 准则的具有更好颜色对比度的箭头,则需要覆盖 Bootstrap Table 在其 CSS 中具有的 base64 图像。您可以在 Bootstrap Table 的 CSS 文件之后添加自定义 CSS,以使用使用 SVG 图像的样式覆盖其样式,例如:

    th {
        background-color: #e0e0e0;
    }
    .bootstrap-table .fixed-table-container .table thead th .both {
        background-image: url("data:image/svg+xml; charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' fill='%23000000' opacity='0.56'%3E%3Cpolygon points='50,10 70,45 30,45'/%3E%3Cpolygon points='30,55 70,55 50,90' /%3E%3C/svg%3E");
        background-size: 1.1875rem, 1.1875rem;
    }
    
    .bootstrap-table .fixed-table-container .table thead th .asc {
        background-image: url("data:image/svg+xml; charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%23000000' opacity='0.69'%3E%3Cpolygon points='50,10 70,45 30,45'/%3E%3C/svg%3E");
        background-size: 1.1875rem, 1.1875rem;
    }
    
    .bootstrap-table .fixed-table-container .table thead th .desc {
        background-image: url("data:image/svg+xml; charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%23000000' opacity='0.69'%3E%3Cpolygon points='30,55 70,55 50,90' /%3E%3C/svg%3E");
        background-size: 1.1875rem, 1.1875rem;
    } /* IE10 & 11 want URL encoded open and close characters */
    

    Bootstrap Table 的双箭头图像使用浅灰色 #DCDCDC。在白色背景下,灰色只有 1.4 比 1 的对比度。在您的灰色标题背景下,该比率仅为 1.2 比 1。WCAG 指南建议普通文本的对比度为 4.5 比 1。升/降箭头使用石板蓝色 #7A80DD。在白色背景下,石板蓝的对比度为 3.5 比 1,但仍低于推荐的 4.5 比 1。在您的灰色标题背景下,该比率为 3.0 比 1。

    我已将 SVG 图像设置为使用黑色 (#000000) 填充,并改变不透明度以获得足够的对比度(Google 在其 Material Design specification 中推荐的方式)。

    在白色背景下,对于双箭头,不透明度为 54% 的对比度为 4.6,对于单箭头,不透明度为 65% 的对比度为 7.0。这两个值足以让大多数人看到指标。

    在浅灰色背景下(例如 #e0e0e0,这是用于 Material Design 标题的灰色),不透明度为 56% 和 69% 的对比度将分别为 4.6 和 7.3,这是我配置的演示代码使用的.

    背景 SVG 图像对字符串中的小于 '' 符号使用 URL 编码以与 IE 10 和 11 一起使用(我在 Chrome、Firefox 和 Edge 上测试了这些样式,并且适用于这三种浏览器)。

    <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
    <link href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" rel="stylesheet"/>
    <link href="https://unpkg.com/bootstrap-table@1.18.3/dist/bootstrap-table.min.css" rel="stylesheet"/>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
    <script src="https://unpkg.com/bootstrap-table@1.18.3/dist/bootstrap-table.min.js"></script>
    
    <style>
        th {
            background-color: #e0e0e0;
        }
        .bootstrap-table .fixed-table-container .table thead th .both {
            background-image: url("data:image/svg+xml; charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' viewBox='0 0 100 100' fill='%23000000' opacity='0.56'%3E%3Cpolygon points='50,10 70,45 30,45'/%3E%3Cpolygon points='30,55 70,55 50,90' /%3E%3C/svg%3E");
            background-size: 19px, 19px;
        }
    
        .bootstrap-table .fixed-table-container .table thead th .asc {
            background-image: url("data:image/svg+xml; charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%23000000' opacity='0.69'%3E%3Cpolygon points='50,10 70,45 30,45'/%3E%3C/svg%3E");
            background-size: 19px, 19px;
        }
    
        .bootstrap-table .fixed-table-container .table thead th .desc {
            background-image: url("data:image/svg+xml; charset=utf8, %3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100' fill='%23000000' opacity='0.69'%3E%3Cpolygon points='30,55 70,55 50,90' /%3E%3C/svg%3E");
            background-size: 19px, 19px;
        } /* IE10 & 11 want URL encoded open and close characters */
    </style>
    
    <table data-toggle="table">
        <thead>
        <tr>
            <th data-sortable="true" data-field="id">Item ID</th>
            <th data-sortable="true" data-field="name">Item Name</th>
            <th data-sortable="true" data-field="price">Item Price</th>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>1</td>
            <td>Item 1</td>
            <td>$1</td>
        </tr>
        <tr>
            <td>2</td>
            <td>Item 2</td>
            <td>$2</td>
        </tr>
        </tbody>
    </table>

    虽然双箭头与 asc 和 decs 箭头之间没有明显的对比,但它们都比 Bootstrap Table 的标准图像对更多用户可见,并且如果需要,可以增加不透明度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多