【问题标题】:Vue grid layout with css update带有 css 更新的 Vue 网格布局
【发布时间】:2019-03-09 15:44:54
【问题描述】:

我正在使用 Vue js 和 vue-grid-layout。 我想创建一个带有一些小部件的仪表板。

css 正在与布局对象中已经存在的其他网格一起使用。 所以,我可以添加一个带有按钮的网格,但是 css 不适用于新的网格。

有一个名为 addGrid() 的带有点击动作的按钮,它将在布局对象的末尾添加一个新行。

在此先感谢,希望每个人都能理解我的帖子。

 <grid-layout
            :layout="layout"
            :col-num="10"
            :row-height="10"
            :is-draggable="true"
            :is-resizable="true"
            :is-mirrored="false"
            :vertical-compact="false"
            :margin="[10, 10]"
            :use-css-transforms="false">

            <grid-item v-for="item in layout"
                   :x="item.x"
                   :y="item.y"
                   :w="item.w"
                   :h="item.h"
                   :i="item.i">
                   <span class="text">{{item.i}}</span>
            </grid-item>
</grid-layout>

import VueGridLayout from "vue-grid-layout";
export default {
  name: "Home",
  data() {
    return {
      layout: [
        { x: 0, y: 0, w: 2, h: 2, i: "0" },
        { x: 2, y: 0, w: 2, h: 4, i: "1" },
        { x: 4, y: 0, w: 2, h: 5, i: "2" },
      ],
    };
  },
  methods: {
    addGrid() {
      this.layout.push({x:0, y:-1, w:2, h:5, i:parseInt(this.layout[this.layout.length - 1].i, 10) + 1});
    }
  }
};

这里有一个 css 研磨的例子

.vue-grid-item:not(.vue-grid-placeholder) {
  background: #4caf50;
  opacity: 0.7;
  border: 1px solid black;
}

【问题讨论】:

  • 欢迎来到 StackOverflow!请尝试创建一个 MCVE(请参阅 minimal reproducible example),以便其他用户可以更快地帮助您,并且不需要阅读许多不必要的代码行:)
  • @Hille 这样更好吗?感谢您的帮助!
  • 是的,它更具可读性和更容易理解。你的努力得到了支持。与第一次尝试相比,这将吸引更多可以帮助您的用户。
  • 好吧,我找到了解决方案。首先删除
  • 哦,对了,我的错...我没有看到“添加答案”按钮,仍然感谢您的帮助!

标签: javascript css vue.js grid-layout vuetify.js


【解决方案1】:

好吧,我找到了解决方案。首先删除了“样式范围”中的范围,我在其中添加了一个类以将 css 应用于网格!

<grid-item v-for="item in layout" class="grid-widget"
                        [........]
                    <span class="text">{{item.i}}</span>
</grid-item>
<style>
    .grid-widget {
        background: #4caf50;
        opacity: 0.7;
        border: 1px solid black;
    }
</style>

【讨论】:

  • 为什么要删除scoped 样式?请参阅this answer 以了解如何解决它。我想你可以简单地使用&gt;&gt;&gt;.grid-widget(所以只需在课程前添加&gt;&gt;&gt;)。看到那个答案并摸索它,它会帮助你理解发生了什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-28
  • 2021-12-09
  • 2020-09-21
  • 2020-05-08
  • 1970-01-01
  • 2017-11-26
  • 1970-01-01
相关资源
最近更新 更多