::v-deep .table-box .table-filter { height: 60px; } ::v-deep .__h_table_container.is-pagination { height: calc(100% - 53px); }动态改变这两个高度值
时间: 2024-09-15 07:05:03 浏览: 40
vue样式穿透 ::v-deep的具体使用
这两段CSS规则是在Vue单文件组件(.vue)中使用的深选选择器(`:v-deep`),它们分别针对`.table-box .table-filter`和`.__h_table_container.is-pagination`两个元素设置了高度样式。
1. `.table-box .table-filter { height: 60px; }` 这行代码表示当`.table-box`这个容器内部的`.table-filter`元素时,其高度会被设置为60像素。
2. `.__h_table_container.is-pagination { height: calc(100% - 53px); }` 当`.__h_table_container`有`.is-pagination`这个类名时,它的高度会计算为父元素高度减去53像素。这意味着如果`.__h_table_container`是滚动区域的一部分,它会自动调整高度以便留出导航空间。
如果你想动态地更改这些高度值,通常可以通过JavaScript或者Vue的指令如`v-bind`、`v-model`以及`ref`来控制。例如:
```html
<template>
<div class="table-box">
<input ref="tableFilter" class="table-filter" />
</div>
<div v-if="showPagination" class="__h_table_container is-pagination"></div>
</template>
<script>
export default {
data() {
return {
showPagination: false,
filterHeight: 60, // 或者从其他地方获取初始高度
paginationHeight: 'calc(100% - 53px)', // 初始静态高度
};
},
methods: {
togglePagination() {
this.showPagination = !this.showPagination;
if (this.showPagination) {
this.$refs.tableFilter.style.height = '';
} else {
this.$refs.tableFilter.style.height = this.filterHeight + 'px'; // 设置过滤器回原来的固定高度
}
},
},
};
</script>
```
在这个例子中,你可以通过`togglePagination`方法动态显示或隐藏`.is-pagination`,并相应地调整`.table-filter`的高度。如果你需要动态计算`.is-pagination`的高度,你可以在计算后更新`paginationHeight`变量。
阅读全文