primefaces / primevue

Next Generation Vue UI Component Library
https://primevue.org
MIT License
9.1k stars 1.12k forks source link

DataTable: Rendering a span inside a column with partial opacity renders it above frozen columns #5461

Open matthew-dean opened 4 months ago

matthew-dean commented 4 months ago

Describe the bug

  1. Render a column's data with a template body slot.
  2. Wrap that data in an inline element
  3. Set the inline element to something like opacity: 0.5
  4. Inline element, when scrolling, will appear on top of the frozen column.

Honestly, this looks 100% like a Chrome bug (and I plan to file it with Chrome), as the rendering behavior of elements should not change z-index layer order, by any spec I know of.

The reason I'm filing it here is that a simple adjustment by PrimeVue would circumvent this bug. The fix is simple, so I'm hoping PrimeVue can add it. (I'll add it to my own "override" CSS in the interim.) However, I don't know if there are other PrimeVue components that expect particular z-index ordering. I've done this, which circumvents the issue:

.p-frozen-column {
    z-index: 1;
  }

Reproducer

https://stackblitz.com/edit/primevue-create-vue-typescript-issue-template-bsguuz?file=src%2FApp.vue,package.json

PrimeVue version

3.47.2

Vue version

3.x

Language

TypeScript

Build / Runtime

Vue CLI App

Browser(s)

Chrome Version 123.0.6312.59 (Official Build) (arm64)

Steps to reproduce the behavior

See above.

Expected behavior

Frozen columns should always stay on top.

matthew-dean commented 4 months ago

Here is the issue I filed with Chromium: https://issues.chromium.org/issues/330771349