HTML <noframes> Element

The <noframes> element was historically used in frame-based webpages to provide alternative content for browsers that could not display frames or had frame support disabled. It was normally used with the obsolete <frameset> and <frame> elements.

Historical Syntax

A frame-based HTML document could contain markup similar to the following:

<frameset cols="25%,75%">
  <frame src="navigation.html">
  <frame src="content.html">
  <noframes>
    <body>
      <p>This page requires a browser that supports frames.</p>
    </body>
  </noframes>
</frameset>

A browser capable of displaying frames used the documents referenced by the <frame> elements. The <noframes> content provided an alternative for browsers that could not display the framed version. This code is shown for historical reference only and should not be used in modern HTML.

Attributes

The <noframes> element did not have any element-specific attributes. Its purpose came from the alternative HTML content placed between its opening and closing tags.

Historical Use

Frames allowed a browser window to be divided into several independent areas, with each area displaying a separate HTML document. A common layout placed navigation in one frame while another frame displayed the main page content.

Because not every browser initially supported frames, authors needed a way to provide usable content for visitors who could not view the framed version. The <noframes> element supplied that fallback.

Authors could place explanatory text, navigation links, or an alternative version of the page inside <noframes>. This helped prevent visitors without frame support from receiving an unusable or nearly empty page.

Why It Became Obsolete

The <noframes> element became unnecessary because the entire frameset model was removed from modern HTML. The related <frame> and <frameset> elements are also obsolete.

Frames created numerous problems with navigation, bookmarking, browser history, printing, search engines, accessibility, and linking directly to content. They also divided a webpage into several separate documents when a single structured document was usually easier to maintain.

Modern HTML provides the structure of the page, while CSS Grid, Flexbox, and other CSS layout techniques can create complex page arrangements without dividing the browser window into separate frame documents. Because modern layouts do not depend on frames, they do not need <noframes> fallback content.

Modern Alternative

There is no direct replacement for <noframes> because modern webpages do not require a separate fallback for frame-based layouts. Instead, create the page as a normal HTML document and use CSS to arrange its sections.

<div class="page-layout">
  <nav>
    <a href="/index.html">Home</a>
    <a href="/services.html">Services</a>
    <a href="/contact.html">Contact</a>
  </nav>

  <main>
    <h1>Welcome to Our Website</h1>
    <p>The page content appears here.</p>
  </main>
</div>
.page-layout {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 30px;
}

This approach keeps navigation and main content within one document and allows the layout to adapt to different screen sizes with CSS. It eliminates the need for separate frame and no-frame versions of the page.

Play in Editor

Legacy Browser Support

The <noframes> element was supported as part of the historical frameset model. Modern browsers may continue to recognize old frame-related markup for compatibility with legacy webpages, but this does not make <noframes> valid for use in modern HTML.

When an older frameset website is updated, the better approach is to replace the complete frame-based structure rather than simply replacing the <noframes> element.

For detailed legacy browser compatibility information, see Can I Use: HTML <noframes> Element .

The obsolete <frame> element represented an individual frame, while the obsolete <frameset> element defined how the browser window was divided. The modern <iframe> element can embed another document when that is genuinely required, but it should not be used to recreate the obsolete frameset page-layout model.

Specifications

The <noframes> element is listed as an entirely obsolete, non-conforming feature in the WHATWG HTML Living Standard . The <frame> and <frameset> elements it accompanied are also obsolete.