Common Interview Questions for HTML and HTML5 in 2023 - IQCode

HTML Interview Questions and Answers


Before we dive into the HTML interview questions, let’s first understand what HTML is, its importance, and career opportunities associated with it.

HTML or HyperText Markup Language is a standard text formatting language primarily used for creating web pages. It was first released in 1993, and it provides instructions to the browser on how to display the web page content.

HTML is a critical language to learn for anyone aspiring to work in the web development domain as a web designer or developer. However, HTML is not sufficient on its own. To make the web page visually appealing and functional, web developers need to use CSS and JavaScript.

HTML5 is the latest version of HTML - it consists of tags and attributes. The tags play a crucial role in structuring the web page, and attributes help us to provide additional information to the browser. The below image shows some basic HTML tags and attributes.

Here are some HTML Interview Questions and Answers:

1. Are the HTML tags and elements the same thing?

Code: No, HTML tags and elements are different things. Tags define the elements' start and end, and elements are everything between the start and end tags. For example, the

tag defines a paragraph, but the paragraph's actual text or content goes between the

start and end tags.

Tags and Attributes in HTML

HTML stands for Hypertext Markup Language, which is the standard language used for creating webpages. Tags and attributes are two essential components of HTML that are used to structure and format the content of a webpage.

A tag is a piece of code that is used to define the structure and formatting of content on a webpage. It typically consists of an opening tag, some content, and a closing tag. For example, the

tag is used to define a paragraph of text on a webpage.

An attribute is a modifier that is added to a tag to change its behavior or appearance. Attributes are included within the opening tag and are typically in the form of name-value pairs. For example, the tag is used to insert an image on a webpage, and the "src" attribute is used to specify the location of the image file.

Using HTML tags and attributes, web developers can create a wide range of content types, from simple text paragraphs to complex multimedia presentations. Proper use of tags and attributes is essential for ensuring that webpages are displayed correctly across different browsers and devices.

Understanding Void Elements in HTML

In HTML, void elements are those that don't have a closing tag or any content between them. They are self-closing elements that are used to insert images, line breaks, inputs, and other elements in a webpage.

Some commonly used void elements in HTML are ,
, , , ,

, and. These elements have a specific syntax that doesn't require a closing tag, such as .

It's important to note that void elements cannot have any content between their opening and closing tags. Attempting to add content to a void element may result in an error or unexpected behavior in the browser.

Understanding void elements is essential for web developers as they are an important part of creating well-structured and valid HTML code.

Advantages of Collapsing White Space

Collapsing white space can improve the readability and maintainability of code. By removing unnecessary spaces, tabs, and line breaks, code can become more concise and easier to understand. This can also lead to smaller file sizes and faster loading times for web pages.

In addition, collapsing white space can help ensure consistent formatting and styling throughout a project, making it easier for multiple developers to work on the same codebase. It can also prevent errors caused by unintentional leading or trailing white space in text or code.

//example of collapsing white space
let message = "   Hello        World   ";
let trimmedMessage = message.trim(); //output: "Hello        World"

Understanding HTML Entities

HTML entities are special characters that cannot be used directly in HTML code or are reserved for special use in the language. They are represented by entity names or codes, which can be used instead of the actual symbol to display the desired character on a web page. Examples of commonly used HTML entities include "ampersand (&)", "less than (<)", and "greater than (>)" symbols. By using HTML entities, developers ensure that their web pages display properly across different browsers and devices.

Types of Lists in HTML

In HTML, there are three types of lists:

1. Ordered list (ol) - displays a list with sequential numbers or letters. 2. Unordered list (ul) - displays a list with bullets or some other style marker. 3. Definition list (dl) - displays a list of terms and their definitions.

Example code for each list type:

        <li>First item</li>
        <li>Second item</li>
        <li>Third item</li>

        <li>First item</li>
        <li>Second item</li>
        <li>Third item</li>

        <dt>Term 1</dt>
        <dd>Definition of Term 1</dd>
        <dt>Term 2</dt>
        <dd>Definition of Term 2</dd>

Explanation of the 'class' Attribute in HTML

The 'class' attribute is an HTML attribute used to assign one or more classes to an HTML element. Classes are used to group similar elements together and apply the same styles to them using CSS. A class can be assigned to multiple elements, and an element can have multiple classes assigned to it by separating them with a space.

Difference between ID and Class Attributes in HTML Elements

The 'id' and 'class' are HTML attributes that are used to specify styles for elements. The main difference between the two is that an ID can be used to uniquely identify one element, whereas a class can be used to identify multiple elements.

An element can only have one ID, while it can have many classes. IDs are typically used for elements with unique styles, such as a header or a footer. Classes, on the other hand, are used for elements that share a similar style, such as a group of buttons or links.

Definition of Multipart Form Data

Multipart Form Data is a protocol/form of encoding HTML forms data as a series of parts, where each part contains a name and a value, separated by a boundary. It is commonly used when there is a need to upload files or send binary data such as images or media files along with the textual/form data.

HTML Layout Structure

HTML provides a way to structure content on a web page using various elements and attributes to define the layout. Some of the important layout elements are listed below:

  • <div>

    : This element is used to create a container for grouping of content and applying styles.

  • <header>

    : This element is used for grouping introductory or navigational aids content at the top of the page.

  • <nav>

    : This element is used for defining the navigation links of the website.

  • <main>

    : This element contains the main content of the web page.

  • <section>

    : This element is used for grouping related content together.

  • <article>

    : This element is used for grouping independent, self-contained content.

  • <aside>

    : This element is used for containing content that is not directly related to the main content.

  • <footer>

    : This element is used for containing content such as copyright information, contact details, etc. at the bottom of the page.

By appropriately using these elements, developers can create a well-organized and easy-to-navigate website layout that will enhance the user's experience of browsing the site.

<!DOCTYPE html>
      <title>Page Title</title>
         <h1>Welcome to My Website</h1>
            <a href="#">Home</a>
            <a href="#">About</a>
            <a href="#">Contact</a>
            <h2>Section Title</h2>
            <p>Section content goes here.</p>
            <h3>Sidebar Title</h3>
            <p>Sidebar content goes here.</p>
            <h2>Article Title</h2>
            <p>Article content goes here.</p>
         <p>© 2021 My Website. All rights reserved.</p>

Optimizing Website Asset Loading

When it comes to website speed, one of the most critical factors is the loading time of your assets such as images, CSS, and JavaScript files. Here are some steps you can take to optimize your website asset loading:

1. Compress your images: Large image files can significantly slow down your website's loading time. Use image compression tools to reduce the size of your images while maintaining their quality.

2. Minify CSS and JavaScript files: Minifying these files means stripping out unnecessary white space and comments, which can result in smaller file sizes and faster loading times.

3. Use a content delivery network (CDN): A CDN stores your website's assets on multiple servers around the world, which reduces the distance between the user and the server and improves loading times.

4. Load essential assets first: Load critical assets such as CSS and JavaScript files first to ensure that your website's layout is displayed quickly to users.

5. Defer non-critical assets: Delay loading non-essential assets so that they do not slow down the loading of the page's essential components.

By optimizing your website asset loading, you can significantly improve your website's speed and provide a better user experience to your visitors.

Various Formatting Tags in HTML

HTML provides various formatting tags that can be used to manipulate the appearance and layout of the content on a webpage. Some of these formatting tags include:


- Bold text


- Italicized text


- Underlined text


- Strong text


- Emphasized text


- Superscript text


- Subscript text


- Strikethrough text


- Large text


- Small text

It is important to note that some of these tags, like




, are deprecated and it is recommended to use CSS to achieve the desired formatting instead. Additionally, with the introduction of HTML5, some of these tags have been removed or redefined.

Doctypes in HTML

In HTML, there are different types of doctypes available to specify the version of HTML being used in a document. Some of the common doctypes are:

- HTML5: - HTML 4.01 Strict: - HTML 4.01 Transitional: - XHTML 1.0 Strict: - XHTML 1.0 Transitional:</p>

Using a proper doctype is important as it ensures a web page is correctly parsed by a web browser and displayed in compliance with the standards.

Explaining How to Indicate the Character Set Used by an HTML Document

To indicate the character set being used by an HTML document, the meta tag can be added to the head section of the HTML document as shown below:

Web Page Title

The "charset" attribute specifies the character encoding used in the document. UTF-8 is the most commonly used character set for web pages as it supports a wide range of characters from different languages and scripts.

It is important to ensure that the character set specified in the HTML document is the same as the actual character set used in the content of the page. This helps to ensure that the characters in the content are displayed correctly in different browsers and devices.

Difference Between and Tags in HTML

and tags are both used in HTML to emphasize or highlight text, but they have different meanings and visual styles.

The tag is used to indicate strong importance. The text enclosed in tags is typically displayed in bold by default, and it is often used to highlight keywords, headings, and important phrases.

On the other hand, the tag is used to indicate emphasis. The text enclosed in tags is typically displayed in italics by default, and it is often used to highlight emphasized words or phrases within a sentence.

Overall, the main difference between and tags is that indicates strong importance, while indicates emphasis.

Understanding the Significance of <title> and <meta> Tags in HTML

The <title> tag in HTML is used to specify the title of a webpage. It appears in the browser tab and is often displayed by search engines as the main headline for the page in search results. The title should accurately and concisely describe the content of the page.

The <meta> tag is used to provide additional information about the webpage, such as keywords (used by search engines to improve search results) and character encoding. It can also be used to define other metadata, such as author, description, and viewport settings for responsive web design. These tags are important for optimizing search engine rankings and improving website accessibility.

Can a Web Page be Displayed Within Another Web Page or is Nesting of Webpages Possible?

Is it possible to display a webpage within another webpage or nest webpages?

  Yes, it is possible to display a webpage within another webpage using HTML's 'iframe' tag. The 'iframe' tag creates an inline frame, which can contain another HTML document. Nesting webpages is also possible by creating multiple 'iframe' tags, each containing a different webpage.

However, it should be noted that nesting webpages too deeply can result in slow loading times and negatively impact user experience. It's important to consider the purpose and necessity of displaying multiple webpages within one page and to optimize the code accordingly.

Difference between Cell Padding and Cell Spacing

When designing a table in HTML, Cell padding and Cell spacing are two important attributes that affect the way the table looks.

Cell Padding is used to add space within each cell of a table. It is measured in pixels and defines the distance between the cell's content and the cell wall. Using cell padding, you can increase or decrease the distance between the cell's content and the cell wall.

On the other hand, Cell Spacing is used to add space around the cell. It is also measured in pixels and defines the distance between adjacent cells in a table. Using cell spacing, you can increase or decrease the space between adjacent cells in a table.

In summary, Cell padding affects the space within a cell while Cell spacing affects the space between adjacent cells.

Merging Rows or Columns in HTML Table

We can merge two or more rows or columns in an HTML table using the colspan and rowspan attributes. The colspan attribute specifies the number of columns an element should span, while the rowspan attribute specifies the number of rows an element should span.

For example, if we want to merge two columns into a single column, we can use the colspan attribute and set its value to 2. Similarly, if we want to merge two rows into a single row, we can use the rowspan attribute and set its value to 2.

Converting an Inline Element to a Block Level Element

Yes, it is possible to change an inline element into a block level element by using CSS. Setting the "display" property to "block" will change the element's inline display to a block-level display, which will cause it to take up the full width of its container and create a new line after it.


    /* CSS rule to convert inline element to block element */
    .inline-to-block {
        display: block;

<p>This is an inline element. <span class="inline-to-block">This inline element has been converted into a block level element.</span></p>

In the code above, the CSS rule with the class ".inline-to-block" sets the "display" property to "block". This class can be applied to any inline element you wish to convert to a block-level element.

Ways to Position an HTML Element

The position attribute in HTML has the following permissible values:

- static
- relative
- absolute
- fixed
- sticky

Depending on the value of the position attribute, an HTML element can be positioned in various ways. For example:

  • Static: This is the default positioning for an HTML element and places it in the normal document flow.
  • Relative: This allows an element to be positioned relative to its normal position in the document flow.
  • Absolute: This allows an element to be positioned relative to its nearest positioned ancestor element or the body element if no ancestor exists.
  • Fixed: This positions an element relative to the browser window and keeps it fixed in place even when the user scrolls the page.
  • Sticky: This is a relatively new value and allows an element to stick to a given position on the page, until a certain threshold is met.

How many ways are there to display HTML elements?

There are several ways to display HTML elements including:

1. Using HTML tags such as


, , etc.

2. Using Cascading Style Sheets (CSS) to style and position the HTML elements.

3. Using JavaScript to manipulate and dynamically display the HTML elements on a webpage.

4. Using a combination of all three methods to create complex and interactive webpages.

Difference between "display: none" and "visibility: hidden" in HTML

In HTML and CSS, "display: none" and "visibility: hidden" are similar in that they both make an element invisible. However, there are some key differences between the two.

When an element has "display: none", it is completely removed from the document. This means that it takes up no space on the page and cannot be interacted with. It is essentially not there at all.

On the other hand, when an element has "visibility: hidden", it is still a part of the document and takes up space on the page. However, it is just not visible to the user. It can still be interacted with using JavaScript or other means.

In summary, "display: none" completely removes the element from the page, while "visibility: hidden" just hides it from view but keeps it present in the document.

Specifying Links in HTML and Explaining the Target Attribute

To create a hyperlink in HTML, we use the anchor tag `` with its `href` attribute to specify the URL or file we want to link to.


<a href="">Visit Example Website</a>

This will create a link that says "Visit Example Website" and directs the user to the URL when clicked.

The `target` attribute, on the other hand, specifies where to open the linked document. It can take a variety of values, including `_blank` to open the link in a new window, `_self` to open the link in the same window, `_parent` to open the link in the parent frame, and `_top` to open the link in the full body of the window.


<a href="" target="_blank">Visit Example Website in a New Window</a>

This will create a link that opens the URL in a new window when clicked.

It is considered good practice to include the `target` attribute when linking to external websites, so that the user is not taken away from your webpage. However, when linking to internal pages within your own website, it is usually unnecessary to use the `target` attribute.

How many ways can we specify CSS styles for HTML elements?

There are three ways to specify CSS styles for HTML elements:

  1. Inline style: The style can be defined directly within the HTML element using the "style" attribute.
  2. Internal style sheet: The style can be defined within the head section of an HTML document using the "style" element.
  3. External style sheet: The style can be defined in a separate CSS file and linked to the HTML document using the "link" element.

Difference between link tag and anchor tag

In HTML, the


tag is used to link external resources such as stylesheets, icons, etc. It is generally placed in the head section of an HTML document and does not have an end tag.

On the other hand, the


tag is used to create clickable links within a document. It is placed within the body section of an HTML document and requires an opening and closing tag. The


attribute is used to specify the URL of the resource that is linked.

How to Include JavaScript Code in HTML

To include JavaScript code in HTML, you first need to define the script tag. The script tag is used to link to external JavaScript files or to embed JavaScript code directly in the HTML file.

1. Embedding JavaScript Code Directly in HTML

To embed JavaScript code directly in HTML, you can use the script tag with the type attribute set to "text/javascript", like this:

    <script type="text/javascript">
        // Your JavaScript code here

2. Linking to an External JavaScript File

To link to an external JavaScript file, you can use the script tag with the src (source) attribute set to the URL of the JavaScript file, like this:

    <script src="path/to/your/javascript/file.js"></script>

Make sure to put your script tag inside the body tag of your HTML document, and to link to your external JavaScript file using the correct file path. With these steps, you can include your JavaScript code in HTML and make your web page interactive.

When to Use Scripts in the Head and When to Use Scripts in the Body?

Scripts can be included in a web page either in the head section or in the body section. The best practice is to place scripts that are essential for the functionality of the webpage in the head section. This includes scripts for analytics and tracking, font loading, and any scripts that need to be loaded prior to the page content.

Non-essential scripts such as those for loading images, videos, or any other non-critical content can be included in the body section. Placing these scripts in the body after the main content of the page ensures that page load speed is not significantly affected, which can have negative effects on user experience and search engine optimization.

// Example of loading a Google Font script in the head section
  <link href="" rel="stylesheet">

// Example of loading a script for lazy-loading images in the body section
  <img data-src="image.jpg">
  <!-- Other page content -->
  <script src="lazyload.js"></script>
    new LazyLoad();

What are Forms and How to Create Them in HTML?

In HTML, forms are used to collect input from users and send that data to a server for processing. To create a form in HTML, you need to use the <form> element and specify the action attribute to define where the form data should be sent. You should also use the method attribute to specify the HTTP method that should be used to submit the form data. The most commonly used method is "POST", which sends the data in the HTTP request body.

<form action="/submit-form" method="POST"><br>
   <label for="name">Name:</label><br>
   <input type="text" id="name" name="name"><br>
   <label for="email">Email:</label><br>
   <input type="email" id="email" name="email"><br>
   <button type="submit">Submit</button><br>

In the example above, we have created a simple form with two input fields for the user's name and email address. We have also included a submit button that will send the form data to the "/submit-form" URL using the HTTP POST method. When the user submits the form, the data will be sent to the server as key-value pairs in the request body, such as "name=John+Doe&".

How to Handle Events in HTML

In HTML, you can handle events using inline event handlers or by adding event listeners to elements with JavaScript.

Inline event handlers are defined directly in the HTML element and are executed when the event occurs. For example:

<button onclick="alert('Hello World')">Click Me</button>

Here, the onclick attribute is an inline event handler that will execute the alert function when the button is clicked.

Event listeners are added to elements using JavaScript and can handle multiple events for the same element. For example:

const button = document.querySelector('button');
button.addEventListener('click', () => {
  alert('Hello World');

Here, we select the button element using document.querySelector and add a click event listener using addEventListener. The arrow function will execute when the button is clicked.

There are many types of events that can be handled in HTML, such as mouse events, keyboard events, form events, and more. You can find a full list of events and their descriptions in the Mozilla Docs.

HTML5 Interview Questions

One of the frequently asked questions in HTML5 interviews is:

31. What are some advantages of HTML5 over its previous versions?

HTML5 has a lot of advantages compared to its previous versions like HTML4 and XHTML. Some of the major advantages are:

1. Improved support for multimedia: HTML5 provides native support for audio and video playback without the need for third-party plugins like Adobe Flash. This improves performance and reduces the security vulnerabilities that come with using external plugins.

2. Richer user experience: HTML5 allows web developers to create richer, more interactive web applications with improved features like drag and drop, canvas, and offline storage.

3. Greater device compatibility: HTML5 is designed to work on all devices and platforms, including mobile devices and tablets. This eliminates the need to create different versions of the same website to account for device-specific requirements.

4. Simplified code: With HTML5, developers can create simpler, more semantic code that is easier to understand and maintain.

5. Improved SEO: HTML5's semantic markup and improved tagging system improves search engine optimization, making it easier for search engines to crawl and index web pages.

Overall, HTML5 provides a lot of benefits that make it a better choice than its predecessors for creating modern web applications.

How to Include Audio or Video in a Webpage?

To include audio or video in a webpage, there are a few methods you can use:

1. HTML5 Audio and Video Elements:

HTML5 offers native support for audio and video elements. You can embed media files on your webpage using the `

Example code for embedding a video into a webpage:

<video width="480" height="320" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
  Your browser does not support the video tag.

2. External Services:

You can also use external services like YouTube or Vimeo to include videos on your webpage. These services provide embed codes that you can copy and paste into your webpage.

Example code for embedding a YouTube video into a webpage:

<iframe width="560" height="315" src="" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>

3. Audio and Video Plugins:

There are plugins like Flowplayer and JW Player that you can use to embed audio and video on your webpage.

Example code for embedding a video using Flowplayer:

<video id="player" width="640" height="360">
  <source type="video/webm" src="">
  flowplayer("#player", "");

These are some of the ways you can include audio or video on a webpage.

Inline and Block Elements in HTML5

In HTML5, there are two types of elements: inline and block elements.

Block elements form a block on the web page and take up the full width of the page. Examples of block elements are





    , and
  1. .

    Inline elements, on the other hand, do not form a block and only take up as much space as necessary. They are typically used for smaller pieces of content such as text or images. Examples of inline elements are , , , , and .

    To specify the type of element in HTML5, you simply declare it in the opening tag using the "inline" or "block" attribute. For example:

    This is a block element

    This is an inline element

    By understanding and correctly using inline and block elements in HTML5, you can effectively structure and style your web pages.

    What is the difference between
    tag and


    tag is used to define a header section for a document or a section of a document. It usually contains the site logo, a search bar, and other website navigation elements.


Technical Interview Guides

Here are guides for technical interviews, categorized from introductory to advanced levels.

View All

Best MCQ

As part of their written examination, numerous tech companies necessitate candidates to complete multiple-choice questions (MCQs) assessing their technical aptitude.

View MCQ's
Made with love
This website uses cookies to make IQCode work for you. By using this site, you agree to our cookie policy

Welcome Back!

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign in
Recover lost password
Or log in with

Create a Free Account

Sign up to unlock all of IQCode features:
  • Test your skills and track progress
  • Engage in comprehensive interactive courses
  • Commit to daily skill-enhancing challenges
  • Solve practical, real-world issues
  • Share your insights and learnings
Create an account
Sign up
Or sign up with
By signing up, you agree to the Terms and Conditions and Privacy Policy. You also agree to receive product-related marketing emails from IQCode, which you can unsubscribe from at any time.