vue.js - 为什么我的 bootstrap-vue b-table 列标题不在部署中居中?

标签 vue.js bootstrap-vue text-alignment text-align

我有一个带有居中列标题的 b 表。当我在 http://localhost... 本地运行时,标题居中,但在部署中则不然。为什么会这样?

我尝试了两种方法来使标题居中。 我已将 text-center 属性添加到 b-table 组件中,如下所示...

    <b-table
        striped
        hover
        show-empty
        sort-icon-left
        :items="items"
        :fields="fields"
        class="text-center"
      >
    </b-table>
  • 我已将此样式规则包含在我的自定义 scss 文件中,我将其导入 App.vue 中的应用中

    表{ 文本对齐:居中; } 这两种方法在本地都工作得很好,但是当我部署时,列标题右对齐。

  • 这是浏览器检查工具中“元素”选项卡的屏幕截图。 enter image description here

    样式选项卡清楚地表明标签选择器中的 text-align: right 规则会覆盖标签选择器中的 text-align:center 规则。 enter image description here

    最佳答案

    text-aligninherited property .

    这意味着,在解析元素的此属性时,浏览器首先查找针对该元素的任何规则。有问题的元素是 <th> .
    如果浏览器发现任何此类规则,它将应用选择器特异性最高的规则或具有同等特异性的规则中的最后一个。

    如果不存在这样的规则,那么它会继承具有 text-align 的最近父级的值。指定值。
    如果没有祖先有 text-align值,默认为start ,对于带有 direction="ltr" 的文档意味着 left对于带有 direction="rtl" 的文档, .

    所以,基本上,CSS 通过 Bootstrap 应用于祖先之一:

    .text-center {
      text-align: center !important;
    }
    

    ...被应用于实际元素的以下规则覆盖:

    th { text-align: right }
    

    无论父规则的特殊性如何(因为它不直接针对元素)。


    覆盖th您可以使用的规则:

    table.text-center * {
      text-align: center
    }
    

    ...因为table.text-center *th 具有更高的特异性它们都以元素为目标( <th> )。

    显然,如果您只想将居中应用于 <th>元素,您应该替换 *th在上面的选择器中。


    要回答您关于为什么它在本地工作而不是在远程工作的问题:您的远程设备有额外的 CSS(在 app.ee70fc50.css 中),它可以解析 text-align值为 <th>元素,因此父值被忽略(而在本地,父值被继承,因为您没有将 CSS 应用到 <th> )。

    关于vue.js - 为什么我的 bootstrap-vue b-table 列标题不在部署中居中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63182395/

    相关文章:

    vue.js - Chrome 扩展 vue-devtools 未检测到 Vue

    javascript - 当我加载组件时,我可以让我的代码执行一次脚本吗?

    vue.js - Vue : lazy loading from library (Bootstrap-Vue) inside a component

    vue.js - 可以通过复选框选择 bootstrap-vue 表行选择

    visual-studio - 如何在Visual Studio 2017的ASP.net项目中使用Bootstrap-Vue?

    javascript - 单击更改文本对齐

    javascript - 如何在 Vue 中将数据从组件传递到实例

    vue.js - vuejs 从 href 标签调用方法

    dart - Flutter 从右到左 rtl 包装的多行文本隐藏第一个字母

    ios - NSString 绘制矩形 :withAttributes: not correctly centered when using NSKernAttributeName