Framesets in HTML: Nesting Framesets using HTML

a cartoon of a person using a computer

Framesets are integral to HTML. It allows web developers to divide a web page into multiple independent sections or frames. However, there are cases where you need to include framesets inside another frameset. That is when you require complex layout arrangements and enhanced functionality. This article guides you through including framesets within another frameset in HTML.

Understanding Framesets

Framesets allow you to divide the browser window into multiple frames, each displaying a separate HTML document. This enables you to have various independent sections within a single web page. Each frame will have its scrollable content and URL.

Framesets are defined using the < frameset> tag, which contains one or more < frame> or < iframe> tags. Each < frame> or < iframe> tag specifies the source document to display within that particular frame.

Nesting Framesets

Nesting framesets involve including one frameset within another. This provides more flexibility in designing complex layouts. Here's how you can achieve this:

  • Start by defining the outer frameset using the < frameset> tag.
  • Limit the rows or columns within the outer frameset using rows or cols attribute respectively.
    • The rows attribute specifies the height of each row as a comma-separated list of values or percentages.
    • The cols attribute sets the width of each column similarly.
  • Define another frameset using the < frameset> tag inside each row or column.
  • Repeat this process to include as many nested framesets as required.
  • Finally, incorporate the < frame> or < iframe> tags within the innermost framesets to display the content.

Here's an example of nesting framesets with two rows and two columns:

Html code
<frameset rows="50%, 50%">
<frameset cols="50%, 50%">
<frame src="frame1.html">
<frame src="frame2.html">
<frameset cols="50%, 50%">
<frame src="frame3.html">
<frame src="frame4.html">

In this example, the outer frameset is divided into two rows. Each contains another frameset divided into two columns. Specify the content of each frame using the < frame> tag with the src attribute pointing to the respective HTML document.

a computer screen shot of a program code

Benefits of Nested Framesets

Nesting framesets provide several advantages in web development. Here are some of the benefits of using Nested Framesets in HTML:

Enhanced Layout Flexibility

Nesting framesets allow you to create more complex and dynamic layouts by dividing the browser window into multiple sections.

Improved Code Organization

Nested framesets provide a structured way to organize your code, making it easier to maintain and modify.

Isolation of Functionality

Each frame within a frameset can function independently, allowing you to incorporate different functionalities or content sources into a single web page.

Considerations and Best Practices

While nesting framesets can be helpful, there are some considerations and best practices to keep in mind:

SEO Impact

Framesets can harm search engine optimization (SEO). Search engines may have difficulty indexing and ranking content within frames. Therefore, it is advisable to use alternative techniques, such as CSS, for layout purposes.


HTML5 deprecates framesets, and some modern browsers don’t support them. Consider using alternative approaches like CSS grid or Flexbox for responsive layouts.


Frames can sometimes cause usability issues. This could be difficulty bookmarking specific pages within a frameset or creating direct links to individual frames. Ensure that your design addresses these concerns and provides a seamless user experience.

If you enjoyed this piece, we've crafted a related article delving into Single row functions in SQL. Explore it here.


Nesting framesets in HTML allow you to create sophisticated and flexible web page layouts. Framesets deliver a great user experience as you divide the browser window into sections with independent content pieces.

However, it's crucial to consider the SEO impact, compatibility, and usability aspects associated with framesets. As web development evolves, CSS has become more prevalent for achieving similar layout goals.