Template:Sticky table start/styles.css: Difference between revisions

From Ara: History Untold Wiki
Created page with "→‎{{pp-template}}: /** * Classes to make row N or thead top sticky, and/or column N left sticky. * Reverse collapsible behavior: * - Show (not mw-collapsed): Enabled w/ scroll and sticky. * - Hide (mw-collapsed): Disabled w/o scroll or sticky. * * Div classes: * - sticky-table-collapsible: Adds collapsible; contains scroll div. * - sticky-table-scroll: Adds scroll; contains table. * * Table classes: * - sticky-table-head: Top sticky thead rows. * - sticky-..."
 
No edit summary
Line 1: Line 1:
/* {{pp-template}} */
 
/**
/**
  * Classes to make row N or thead top sticky, and/or column N left sticky.
  * Classes to make row N or thead top sticky, and/or column N left sticky.

Revision as of 19:40, 11 October 2024

/**

* Classes to make row N or thead top sticky, and/or column N left sticky.
* Reverse collapsible behavior:
* - Show (not mw-collapsed): Enabled w/ scroll and sticky.
* - Hide (mw-collapsed): Disabled w/o scroll or sticky.
*
* Div classes:
* - sticky-table-collapsible: Adds collapsible; contains scroll div.
* - sticky-table-scroll: Adds scroll; contains table.
*
* Table classes:
* - sticky-table-head: Top sticky thead rows.
* - sticky-table-row1: Top sticky first row.
* - sticky-table-row2: Top sticky second row.
* - sticky-table-col1: Left sticky first column.
* - sticky-table-col2: Left sticky second column.
*
* Cell classes:
* - sticky-table-none: Cell not sticky to fix span issues.
* - sticky-table-left: Cell left sticky to fix span issues.
*
* Notes:
* - Sortable moves to thead any header rows and (after sort) sorttop rows.
* - Sticky gadget (.mw-sticky-header) moves to thead any wikitable header rows.
* - Collapsible states reversed due to anchor links removing "mw-collapsed".
*   Also reverses the "aria-expanded" attribute's true/false value.
*/

@media screen {

 /**
  * Div containers with collapsible and restricted height/width + scroll.
  */
 .sticky-table-collapsible {
   margin-bottom: 1em; /* Moved from table. */
   margin-top: 1em; /* Moved from table. */
 }
 .sticky-table-collapsible:not(.mw-collapsed) .sticky-table-scroll {
   max-height: 75vh;
   max-width: max-content; /* Vertical scroll next to div. */
   min-width: 50px; /* In case another element floats right. */
   overflow-y: auto;
 }
 .sticky-table-collapsible table {
   margin-bottom: 0; /* Move to div. */
   margin-top: 0; /* Move to div. */
 }
 .sticky-table-collapsible table > caption {
   text-align: left; /* Fix narrow, centered caption hidden on wide table. */
 }
 /**
  * Modify collapsible.
  */
 /* Button. */
 .sticky-table-collapsible > .mw-collapsible-toggle {
   float: none; /* Was "right". */
   padding-left: 0; /* Was "0.2em". */
   padding-right: 0; /* Was "0.2em". */
   display: none; /* Was "inline-block". Hide. Below shows on mobile. */
 }
 @media (max-width: 639px), (max-height: 639px) {
   .sticky-table-collapsible > .mw-collapsible-toggle {
     display: inline-block; /* Reset. */
   }
 }
 .sticky-table-collapsible .mw-collapsible-text {
   font-size: 88%;
 }
 /* Disabled. */
 .sticky-table-collapsible.mw-collapsed .mw-collapsible-content {
   display: block !important; /* Was "none". */
 }
 /**
  * Make top sticky.
  */
 .sticky-table-collapsible:not(.mw-collapsed) .sticky-table-row1:not(.sticky-table-row2):not(.sticky-table-head) > thead > tr:nth-child(1),
 .sticky-table-collapsible:not(.mw-collapsed) .sticky-table-row1:not(.sticky-table-row2):not(.sticky-table-head) > caption + tbody > tr:nth-child(1),
 .sticky-table-collapsible:not(.mw-collapsed) .sticky-table-row1:not(.sticky-table-row2):not(.sticky-table-head) > tbody:first-child > tr:nth-child(1),
 .sticky-table-collapsible:not(.mw-collapsed) .sticky-table-row2:not(.sticky-table-row1):not(.sticky-table-head) > thead > tr:nth-child(2),
 .sticky-table-collapsible:not(.mw-collapsed) .sticky-table-row2:not(.sticky-table-row1):not(.sticky-table-head) > caption + tbody > tr:nth-child(2),
 .sticky-table-collapsible:not(.mw-collapsed) .sticky-table-row2:not(.sticky-table-row1):not(.sticky-table-head) > tbody:first-child > tr:nth-child(2),
 .sticky-table-collapsible:not(.mw-collapsed) .sticky-table-head:not(.sticky-table-row1):not(.sticky-table-row2) > thead {
   position: sticky; /* Was "static". */
   top: 0;
   z-index: 10;
 }
 /**
  * Make left sticky.
  */
 .sticky-table-collapsible:not(.mw-collapsed) .sticky-table-col1:not(.sticky-table-col2) > * > tr > :nth-child(1):not(.sticky-table-none),
 .sticky-table-collapsible:not(.mw-collapsed) .sticky-table-col2:not(.sticky-table-col1) > * > tr > :nth-child(2):not(.sticky-table-none),
 .sticky-table-collapsible:not(.mw-collapsed) table > * > tr > .sticky-table-left {
   position: sticky; /* Was "static". */
   left: 0;
   z-index: 9;
 }
 /**
  * Fix scrolling data shows through sticky's transparent background.
  *
  * Note: ":not(.mw-collapsed)" removed so "row hover highlight" hover works.
  */
 .sticky-table-collapsible table:not(.wikitable) {
   background-color: white;
 }
 .sticky-table-collapsible table > thead,
 .sticky-table-collapsible table > tbody,
 .sticky-table-collapsible table > tfoot,
 .sticky-table-collapsible table > * > tr,
 .sticky-table-collapsible table > * > tr > td,
 .sticky-table-collapsible :not(.wikitable) > * > tr > th {
   background-color: inherit;
 }
 /**
  * Fix missing borders due to sticky position and wikitable collapsed borders.
  * https://bugs.webkit.org/show_bug.cgi?id=128486
  *
  * Skip rare plain table separated borders, which sometimes shows scrolling
  * data through sticky's 2px "border-spacing".
  *
  * Skip very rare Timeless plain table ".mw-datatable" collapsed boarders.
  *
  * Note: Template:Static row numbers border separating header/sorttop from numbers
  * missing and may not be fixable until Wikipedia supports newer CSS.
  */
 .sticky-table-collapsible:not(.mw-collapsed) .wikitable {
   border-collapse: separate; /* Was "collapse". */
   border-spacing: 0;
   border-width: 1px 0 0 1px;
 }
 .sticky-table-collapsible:not(.mw-collapsed) .wikitable > * > tr > td,
 .sticky-table-collapsible:not(.mw-collapsed) .wikitable > * > tr > th {
   border-width: 0 1px 1px 0;
 }
 /* Adjust Template:Static row numbers borders. */
 .sticky-table-collapsible:not(.mw-collapsed) .static-row-numbers.wikitable > * > tr::before {
   border-right-width: 1px;
 }
 /* .sticky-table-collapsible:not(.mw-collapsed) .static-row-numbers.wikitable > * > .sorttop:not(:has(~ .sorttop))::before, */
 .sticky-table-collapsible:not(.mw-collapsed) .static-row-numbers.wikitable > tbody > tr:last-child::before,
 .sticky-table-collapsible:not(.mw-collapsed) .static-row-numbers.wikitable > tfoot > tr:last-child::before {
   border-bottom-width: 1px;
 }
 .sticky-table-collapsible:not(.mw-collapsed) .static-row-numbers.wikitable > tbody > tr:not(.static-row-header)::before {
   border-top-width: 0 !important;
   border-left-width: 0 !important;
 }
 /**
  * Fix Timeless skin very wide tables not sticky.
  */
 body.skin-timeless .sticky-table-collapsible:not(.mw-collapsed) .overflowed,
 body.skin-timeless .sticky-table-collapsible:not(.mw-collapsed) .overflowed .content-table {
   overflow: visible; /* Reset. */
 }
 body.skin-timeless .sticky-table-collapsible:not(.mw-collapsed) .overflowed {
   margin-top: 0; /* Was "1em". */
   margin-bottom: 0; /* Was "1em". */
 }
 body.skin-timeless .sticky-table-collapsible:not(.mw-collapsed) .scroll-right.overflowed .content-table-right {
   box-shadow: none; /* Reset. */
   border-left: none; /* Reset. */
 }
 body.skin-timeless .sticky-table-collapsible:not(.mw-collapsed) .wikitable {
   padding: 0;
 }
 /**
  * Fix skins width <=639px (mobile) not sticky.
  */
 @media (max-width: 639px) {
   body.skin-minerva .sticky-table-collapsible:not(.mw-collapsed) table,
   body.skin-monobook .sticky-table-collapsible:not(.mw-collapsed) table,
   body.skin-vector-legacy .sticky-table-collapsible:not(.mw-collapsed) table,
   body.skin-vector-2022 .sticky-table-collapsible:not(.mw-collapsed) table {
     display: table; /* Was "block". */
   }
   body.skin-minerva .sticky-table-collapsible:not(.mw-collapsed) table > caption {
     display: table-caption; /* Was "block". */
   }
 }
 /**
  * Fix "Sticky Table Headers" gadget styles causing sticky issues.
  */
 .sticky-table-collapsible:not(.mw-collapsed) .jquery-tablesorter > thead,
 .sticky-table-collapsible:not(.mw-collapsed) .mw-sticky-header > thead {
   top: 0 !important; /* Was value based on skin and max/min width. */
 }
 .sticky-table-collapsible:not(.mw-collapsed) .jquery-tablesorter > tfoot,
 .sticky-table-collapsible:not(.mw-collapsed) .mw-sticky-header > tfoot {
   position: static; /* Was "sticky". */
   bottom: auto; /* Was "0". */
 }

}

@media all {

 /* Set important to override template parameter. */
 .sticky-table-collapsible.mw-collapsed .sticky-table-scroll {
   max-height: none !important; /* Default. */
   max-width: none !important; /* Default. */
 }

}