css网格与背景 - 当网格大于背景时滚动

时间:2018-04-30 16:33:53

标签: css css3 vue.js overflow css-grid

我有一张可以长大的桌子,一旦它长大,它可以将网格高度推到比背景更大的位置。 我希望网格本身在背景上有一个滚动。 我试图使用溢出但没有成功。

您可以看到问题Selected Tree

这是相关代码:



.wrapper {
  background-repeat: no-repeat;
  background-position: top center;
  height: 1024px;
  min-width: 1055px;
  display: grid;
  grid-template-columns: 0.1fr 2.8fr 0.1fr;
  grid-gap: 10px;
  grid-template-rows: 100px auto auto 100px;
  font-family: 'roboto',sans-serif;
  overflow:visible;
  /*grid-auto-rows: minmax(100px, auto);*/
  /*border: 1px solid;*/
}
.wrapper > div {
  display: flex;
  justify-content: center;
  /* align-items: center; */
  font-size: 16px;
  font-weight: 400;
  /* border: solid 1px; */
  color: #39393ac7 /*#39393A*/;
}

.header {
  grid-column: 2 ;
}
.herbTable {
  grid-column: 2 ;
}
.chart {
  grid-column: 2 ;
}
.footer {
  grid-column: 1 / -1 ;
  grid-row: 4;
}

 @media screen and (max-width : 1439px) /*and (max-width : 1439px) */
{
  .wrapper {
    background-image: url("~/static/bg1440px.jpg");
    background-size: cover;
    /* background-size: 1024px; */
    /* width: 1024px; */
  }
}

@media screen and (min-width : 1440px)
{
  .wrapper {
    background-image: url("~/static/bg1440px.jpg");
    background-size: 1440px auto;
    /* height: 1024px; */
    width: 1440px;
  }
}

<template>
  <div class="wrapper">
      <appHeader class="header"></appHeader>
      <loading :active.sync="isLoading" :can-cancel="false"></loading>
      <appHerbsTable v-if="!isLoading" class="herbTable"></appHerbsTable>
      <appChart v-if="!isLoading" class="chart">chart</appChart>
      <div class="footer"></div>
  </div>
</template>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:1)

由于您已经固定了列宽,因此将css更改为:

非常容易
.herbTable thead {
  display: block; /*inline-block should also be ok*/
}
.herbTable tbody {
  display: block;
  max-height: 300px;
  overflow-y: scroll;
}

..你必须修改你的td宽度才能让它看起来再好看

编辑:(我希望我终于明白你的意思是网格)

html {
  height: 100%;
}
body {
  height: 100%;
  box-sizing: border-box;
  padding: 8px;
  margin: 0;
}
.wrapper {
  height: 100%;
  overflow-y: auto;
}

..希望这会有所帮助..

答案 1 :(得分:1)

.wrapper {
  /* overflow: visible; */
  overflow: auto; /* NEW */
}