Offscreen

OSCC · CSS, Layout, Visual · Oct 11, 2021

Hides an element completely (visually and positionally) in the DOM while still allowing it to be accessible.

  • Remove all borders and padding and hide the element's overflow.
  • Use clip to define that no part of the element is shown.
  • Make the height and width of the element 1px and negate them using margin: -1px.
  • Use position: absolute so that the element does not take up space in the DOM.
  • Note: This technique provides an accessible and layout-friendly alternative to display: none (not readable by screen readers) and visibility: hidden (takes up physical space in the DOM).
Preview
<a class="button" href="https://google.com">
  Learn More <span class="offscreen"> about pants</span>
</a>
.offscreen {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

Recommended snippets

  • Clearfix

    CSS, Layout

    Ensures that an element self-clears its children.

  • Fits an positions an image appropriately inside its container while preserving its aspect ratio.

  • Limit multiline text to a given number of lines.