セルの背景色
問題点
セルの背景色を設定するときの悩み
background-color
を設定すると、選択中セルの背景色が反映されない- 選択中セルの背景色が反映されないのに文字色だけ反転される (ので見えなくなる)
↓
いろいろ試して、若干せこい対策だが、background-image
に半透明 image を使うことで回避が良さそう
対策1. セル選択時に文字色を変えない
css
.wj-state-selected,
.wj-state-multi-selected {
color: inherit !important;
}
対策2. 背景色は backround-color を使わず、background-image を使用する
css
.cell-ok {
background-image: repeating-linear-gradient(#e6f4eadd) !important;
}
.cell-default {
background-image: repeating-linear-gradient(#ffffffdd) !important;
}
対策3. code, pre の背景透過
css
.wj-cell pre,
.wj-cell code {
background-color: transparent;
}
コードでのスタイル設定箇所
tsx
initialized={(grid) => {
grid.formatItem.addHandler((s, e) => {
if (e.panel === s.cells) {
const row = s.rows[e.row];
const col = s.columns[e.col];
const item = row.dataItem;
const binding = col.binding;
if (item && binding && typeof item[binding] === 'string') {
const value = item[binding];
if (value === 'OK') {
e.cell.classList.add('cell-ok'); // ← ★ ここでスタイル設定
} else if (value === 'NG') {
e.cell.classList.add('cell-ng');
} else if (value == '-') {
e.cell.classList.add('cell-disabled');
} else {
e.cell.classList.add('cell-default');
}
}
}
}
}}