Hopp til hovedinnhold

Hva leter du etter?

Prøv å søke etter…

Komponenter

Table

Table brukes for å vise strukturert informasjon på en ryddig og oversiktlig måte. Tabeller kan gjøre det enklere for brukerne å skanne og sammenligne informasjon.

HTML

Trykk Enter for å redigere
Unable to parse html
const Preview = () => {
  return (
    <Table>
      <caption>Table caption</caption>
      <Table.Head>
        <Table.Row>
          <Table.HeaderCell>Header 1</Table.HeaderCell>
          <Table.HeaderCell>Header 2</Table.HeaderCell>
          <Table.HeaderCell>Header 3</Table.HeaderCell>
        </Table.Row>
      </Table.Head>
      <Table.Body>
        <Table.Row>
          <Table.Cell>Cell 1</Table.Cell>
          <Table.Cell>Cell 2</Table.Cell>
          <Table.Cell>Cell 3</Table.Cell>
        </Table.Row>
        <Table.Row>
          <Table.Cell>Cell 4</Table.Cell>
          <Table.Cell>Cell 5</Table.Cell>
          <Table.Cell>Cell 6</Table.Cell>
        </Table.Row>
      </Table.Body>
      <Table.Foot>
        <Table.Row>
          <Table.HeaderCell>Footer 1</Table.HeaderCell>
          <Table.HeaderCell>Footer 2</Table.HeaderCell>
          <Table.HeaderCell>Footer 3</Table.HeaderCell>
        </Table.Row>
      </Table.Foot>
    </Table>
  );
};

render(<Preview />)

Bruk

Det anbefales å lese om <table> på MDN (mozilla.org) for en grundig gjennomgang av HTML-tabeller og deres semantikk.

Klassenavnet ds-table legges på <table>-elementet.

Ved å legge <button> i en <th> med aria-sort="*" får du en visuell knapp for sortering. Du kobler selv logikken for sortering på knappen. Legg på type="button" for å unngå at knappen oppfører seg som en submit-knapp.

Du kan legge på data-clickdelegatefor på en <tr> for å delegere klikkhendelser til et element i raden, for eksempel en <a>-tag.

Bruk data-border="true" for å legge til en synlig kant rundt tabellen.

CSS variabler og data-attributter

Størrelser styres med data-size og farger med data-color. Komponenten vil arve nærmeste forelder med disse satt.

CSS-variabler
NavnVerdi
--dsc-table-background--hovervar(--ds-color-surface-hover)
--dsc-table-background--zebravar(--ds-color-surface-tinted)
--dsc-table-backgroundtransparent
--dsc-table-border-colorvar(--ds-color-border-subtle)
--dsc-table-border-radiusvar(--ds-border-radius-md)
--dsc-table-border-stylesolid
--dsc-table-border-widthvar(--ds-border-width-default)
--dsc-table-colorvar(--ds-color-text-default)
--dsc-table-divider-border-colorvar(--dsc-table-border-color)
--dsc-table-divider-border-stylesolid
--dsc-table-divider-border-widthcalc(var(--ds-border-width-default) + 1px)
--dsc-table-header-background--hovervar(--ds-color-surface-hover)
--dsc-table-header-background--sortedvar(--ds-color-surface-tinted)
--dsc-table-header-background--stickyvar(--ds-color-surface-default)
--dsc-table-header-backgroundtransparent
--dsc-table-paddingvar(--ds-size-2) var(--ds-size-3)
--dsc-table-sort-sizevar(--ds-size-6)
Data-attributter
NavnVerdi
data-border
data-sticky-header
data-zebra
data-hover

Eksempel

Sortering

Du kan bruke props på Table.HeaderCell for å vise at tabellen kan sorteres etter innholdet i en kolonne.

  • Bruk sort-prop'en for å indikere sorteringsretningen:
    • "none" - ingen sortering
    • "ascending" - stigende rekkefølge
    • "descending" - synkende rekkefølge
  • Bruk onClick for å håndtere hva som skal skje når brukeren klikker på kolonneoverskriften.

Fast kolonnebredde

Du kan bruke table-layout: fixed for å hindre at kolonnebreddene endrer seg når innholdet i tabellen oppdateres. Dette gir jevnere layout, og hjelper nettleseren med å tegne tabellen raskere.

Det er spesielt nyttig i tabeller med paginering eller annen dynamisk oppdatering av innhold, der stabil kolonnebredde gir bedre brukeropplevelse.

Klikkbar rad

React

zebra
Description

Will give the table zebra striping

Type
boolean
Default
false
stickyHeader
Description

Will make the table header sticky

Type
boolean
Default
false
border
Description

Will give the table a rounded border

Type
boolean
Default
false
hover
Description

Will give the table a hover effect on rows

Type
boolean
Default
false
NameTypeDefaultDescription
zebrabooleanfalse

Will give the table zebra striping

stickyHeaderbooleanfalse

Will make the table header sticky

borderbooleanfalse

Will give the table a rounded border

hoverbooleanfalse

Will give the table a hover effect on rows

TableHeaderCell

sort
Description

If 'none' | 'ascending' | 'descending' | 'other' will add a button to the header cell and change aria-sort and icon

Type
"none" | "ascending" | "descending" | "other"
Default
undefined
NameTypeDefaultDescription
sort"none" | "ascending" | "descending" | "other"undefined

If 'none' | 'ascending' | 'descending' | 'other' will add a button to the header cell and change aria-sort and icon

Rediger denne siden på github.com (åpnes i ny fane)