CSS Сетка: липкие углы - PullRequest
0 голосов
/ 11 марта 2020

У меня есть сетка, и я хочу, чтобы самый левый столбец оставался в поле зрения, а верхний ряд оставался в поле зрения. Мими c поведение замораживания их в Excel.

Я могу заставить их работать самостоятельно, но когда я объединяю их, верхний левый угол ведет себя странно. Есть ли простое решение для этого, или мне придется использовать js для измерения размеров, а затем создать абсолютную версию этого сверху?

Я был бы рад, если бы он просто вел себя как верхний ряд или самый левый столбец, но независимо от того, какой класс я даю в верхнем левом столбце, он не будет работать правильно.

https://jsfiddle.net/eL4ux1gd/4/

<style>
.rtable-container {
  width: 500px;
  overflow: auto;
  height: 500px;
  border-top: 1px solid grey;
  border-left: 1px solid grey;
}

.rtable {
  display: grid;
  grid-template-columns: repeat(3, auto);
  grid-template-rows: repeat(3, auto);
  width: 750px;
  height: 750px;
}


.rtable-columnheader {
  box-sizing: border-box;
  padding: 2px;
  border-bottom: 1px solid #aaa;
  border-right: 1px solid #aaa;
  background: white;
  position: sticky;
  top: 0;
  width: 100%;
}

.rtable-rowheader {
  box-sizing: border-box;
  padding: 2px;
  border-bottom: 1px solid #aaa;
  border-right: 1px solid #aaa;
  background: white;
  position: sticky;
  left: 0;
  width: 100%;
}

.rtable-cornerheader {
  box-sizing: border-box;
  padding: 2px;
  border-bottom: 1px solid #aaa;
  border-right: 1px solid #aaa;
  background: white;
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
}

.rtable-cell {
  box-sizing: border-box;
  border-bottom: 1px solid grey;
  border-right: 1px solid grey;
  padding: 3px;
  width: 100%;
}
</style>

<div class='rtable-container'>
  <div class='rtable'>
    <div class='rtable-cornerheader'>
      Corner
    </div>
    <div class='rtable-columnheader'>
      Column Header
    </div>
    <div class='rtable-columnheader'>
      Column Header
    </div>
    <div class='rtable-rowheader'>
      Row Header
    </div>
    <div class='rtable-cell'>
      A Cell 1
    </div>
    <div class='rtable-cell'>
      A Cell 2
    </div>
    <div class='rtable-rowheader'>
      Row Header
    </div>
    <div class='rtable-cell'>
      A Cell 3
    </div>
    <div class='rtable-cell'>
      A Cell 4
    </div>
  </div>
</div>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...