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).
<a class="button" href="">
  Learn More <span class="offscreen"> about pants</span>
.offscreen {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;

More like this

  • Clearfix

    Ensures that an element self-clears its children.

    CSS, Layout · Dec 30, 2020

  • Fit image in container

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

    CSS, Layout · Dec 30, 2020

  • Trim multiline text

    Limit multiline text to a given number of lines.

    CSS, Layout · May 16, 2021