HTML TUTORIAL

HTML Tutorial

HTML stands for Hyper Text Markup Language, which is the most widely used language on Web to develop web pages. HTML was created by Berners-Lee in late 1991 but "HTML 2.0" was the first standard HTML specification which was published in 1995. HTML 4.01 was a major version of HTML and it was published in late 1999. Though HTML 4.01 version is widely used but currently we are having HTML-5 version which is an extension to HTML 4.01, and this version was published in 2012.

Prerequisites

Before proceeding with this tutorial you should have a basic working knowledge with Windows or Linux operating system, additionally you must be familiar with −

  • Experience with any text editor like notepad, notepad++, or Edit plus etc.
  • How to create directories and files on your computer.
  • How to navigate through different directories.
  • How to type content in a file and save them on a computer.
  • Understanding about images in different formats like JPEG, PNG format.
  • Overview

    HTML stands for Hypertext Markup Language, and it is the most widely used language to write Web Pages.

  • Hypertext refers to the way in which Web pages (HTML documents) are linked together. Thus, the link available on a webpage is called Hypertext.
  • As its name suggests, HTML is a Markup Language which means you use HTML to simply "mark-up" a text document with tags that tell a Web browser how to structure it to display.
  • Originally, HTML was developed with the intent of defining the structure of documents like headings, paragraphs, lists, and so forth to facilitate the sharing of scientific information between researchers

    Now, HTML is being widely used to format web pages with the help of different tags available in HTML language.

    Basic HTML Document

    In its simplest form, following is an example of an HTML document −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>This is document title</title>
       </head>
    	
       <body>
          <h1>This is a heading</h1>
          <p>Document content goes here.....</p>
       </body>
    	
    </html>
    

    HTML Tags

    As told earlier, HTML is a markup language and makes use of various tags to format the content. These tags are enclosed within angle braces <Tag Name>. Except few tags, most of the tags have their corresponding closing tags. For example, <html> has its closing tag </html> and <body> tag has its closing tag </body> tag etc.

    Above example of HTML document uses the following tags −

    Sr.No Tag & Description
    1 <!DOCTYPE...>

    This tag defines the document type and HTML version.

    2 <html>

    This tag encloses the complete HTML document and mainly comprises of document header which is represented by <head>...</head> and document body which is represented by <body>...</body> tags.

    3 <head>

    This tag represents the document's header which can keep other HTML tags like <title>, <link> etc.

    4 <title>

    The <title> tag is used inside the <head> tag to mention the document title.

    5 <body>

    This tag represents the document's body which keeps other HTML tags like <h1>, <div>, <p> etc.

    6 <h1>

    This tag represents the heading.

    7 <p>

    This tag represents a paragraph.

    To learn HTML, you will need to study various tags and understand how they behave, while formatting a textual document. Learning HTML is simple as users have to learn the usage of different tags in order to format the text or images to make a beautiful webpage.

    World Wide Web Consortium (W3C) recommends to use lowercase tags starting from HTML 4

    Heading Tags

    Any document starts with a heading. You can use different sizes for your headings. HTML also has six levels of headings, which use the elements <h1>,<h2>,<h3>,<h4>,<h5> and <h6>. While displaying any heading, browser adds one line before and one line after that heading.

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Heading Example</title>
       </head>
    	
       <body>
          <h1>This is heading 1</h1>
          <h2>This is heading 2</h2>
          <h3>This is heading 3</h3>
          <h4>This is heading 4</h4>
          <h5>This is heading 5</h5>
          <h6>This is heading 6</h6>
       </body>
    	
    </html>
    

    Paragraph Tag

    The <p> Tag offers a way to structure your text into different paragraphs. Each paragraph of text should go in between an opening <p> and a closing </p> tag as shown below in the example −

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Paragraph Example</title>
       </head>
    	
       <body>
          <p>Here is a first paragraph of text.</p>
          <p>Here is a second paragraph of text.</p>
          <p>Here is a third paragraph of text.</p>
       </body>
    	
    </html>
    

    Html Images

    Images are very important to beautify as well as to depict many complex concepts in simple way on your web page. This tutorial will take you through simple steps to use images in your web pages.

    Insert Image

    You can insert any image in your web page by using <img> tag. Following is the simple syntax to use this tag.

    <img src = "Image URL" ... attributes-list/>
    

    The <img> tag is an empty tag, which means that, it can contain only list of attributes and it has no closing tag.

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Using Image in Webpage</title>
       </head>
    	
       <body>
          <p>Simple Image Insert</p>
          <img src = "/html/images/test.png" alt = "Test Image" />
       </body>
    	
    </html>
    

    You can use PNG, JPEG or GIF image file based on your comfort but make sure you specify correct image file name in src attribute. Image name is always case sensitive.

    The alt attribute is a mandatory attribute which specifies an alternate text for an image, if the image cannot be displayed.

    Set Image Location

    Usually we keep all the images in a separate directory. So let's keep HTML file test.htm in our home directory and create a subdirectory images inside the home directory where we will keep our image test.png.

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Using Image in Webpage</title>
       </head>
    	
       <body>
          <p>Simple Image Insert</p>
          <img src = "/html/images/test.png" alt = "Test Image" />
       </body>
    	
    </html>
    

    Set Image Width/Height

    You can set image width and height based on your requirement using width and height attributes. You can specify width and height of the image in terms of either pixels or percentage of its actual size.

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Set Image Width and Height</title>
       </head>
    	
       <body>
          <p>Setting image width and height</p>
          <img src = "/html/images/test.png" alt = "Test Image"
    width = "150" height = "100"/> </body> </html>

    Set Image Border

    By default, image will have a border around it, you can specify border thickness in terms of pixels using border attribute. A thickness of 0 means, no border around the picture.

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Set Image Border</title>
       </head>
    	
       <body>
          <p>Setting image Border</p>
          <img src = "/html/images/test.png" alt = "Test Image" border = "3"/>
       </body>
    	
    </html>
    

    Set Image Alignment

    By default, image will align at the left side of the page, but you can use align attribute to set it in the center or right.

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Set Image Alignment</title>
       </head>
    	
       <body>
          <p>Setting image Alignment</p>
     <img src = "/html/images/test.png" alt = "Test Image" border ="3"alig ="right"/>
       </body>
    	
    </html>
    

    Tables

    The HTML tables allow web authors to arrange data like text, images, links, other tables, etc. into rows and columns of cells.

    The HTML tables are created using the <table> tag in which the <tr> tag is used to create table rows and <td> tag is used to create data cells. The elements under <td> are regular and left aligned by default

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Tables</title>
       </head>
    	
       <body>
          <table border = "1">
             <tr>
                <td>Row 1, Column 1</td>
                <td>Row 1, Column 2</td>
             </tr>
             
             <tr>
                <td>Row 2, Column 1</td>
                <td>Row 2, Column 2</td>
             </tr>
          </table>
          
       </body>
    </html>
    

    This will produce the following result −

    Here, the border is an attribute of <table> tag and it is used to put a border across all the cells. If you do not need a border, then you can use border = "0".

    Table Heading

    Table heading can be defined using <th> tag. This tag will be put to replace <td> tag, which is used to represent actual data cell. Normally you will put your top row as table heading as shown below, otherwise you can use <th> element in any row. Headings, which are defined in <th> tag are centered and bold by default.

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Table Header</title>
       </head>
    	
       <body>
          <table border = "1">
             <tr>
                <th>Name</th>
                <th>Salary</th>
             </tr>
             <tr>
                <td>Ramesh Raman</td>
                <td>5000</td>
             </tr>
             
             <tr>
                <td>Shabbir Hussein</td>
                <td>7000</td>
             </tr>
          </table>
       </body>
       
    </html>
    

    Cellpadding and Cellspacing Attributes

    There are two attributes called cellpadding and cellspacing which you will use to adjust the white space in your table cells. The cellspacing attribute defines space between table cells, while cellpadding represents the distance between cell borders and the content within a cell.

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Table Cellpadding</title>
       </head>
    	
       <body>
          <table border = "1" cellpadding = "5" cellspacing = "5">
             <tr>
                <th>Name</th>
                <th>Salary</th>
             </tr>
             <tr>
                <td>Ramesh Raman</td>
                <td>5000</td>
             </tr>
             <tr>
                <td>Shabbir Hussein</td>
                <td>7000</td>
             </tr>
          </table>
       </body>
    	
    </html>
    

    Colspan and Rowspan Attributes

    You will use colspan attribute if you want to merge two or more columns into a single column. Similar way you will use rowspan if you want to merge two or more rows.

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Table Colspan/Rowspan</title>
       </head>
    	
       <body>
          <table border = "1">
             <tr>
                <th>Column 1</th>
                <th>Column 2</th>
                <th>Column 3</th>
             </tr>
             <tr>
                <td rowspan = "2">Row 1 Cell 1</td>
                <td>Row 1 Cell 2</td>
                <td>Row 1 Cell 3</td>
             </tr>
             <tr>
                <td>Row 2 Cell 2</td>
                <td>Row 2 Cell 3</td>
             </tr>
             <tr>
                <td colspan = "3">Row 3 Cell 1</td>
             </tr>
          </table>
       </body>
    	
    </html>
    

    Tables Backgrounds

    You can set table background using one of the following two ways −

    • bgcolor attribute − You can set background color for whole table or just for one cell.

    • background attribute − You can set background image for whole table or just for one cell.

    You can also set border color also using bordercolor attribute.

    Note − The bgcolor, background, and bordercolor attributes deprecated in HTML5. Do not use these attributes.

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Table Background</title>
       </head>
    	
       <body>
          <table border = "1" bordercolor = "green" bgcolor = "yellow">
             <tr>
                <th>Column 1</th>
                <th>Column 2</th>
                <th>Column 3</th>
             </tr>
             <tr>
                <td rowspan = "2">Row 1 Cell 1</td>
                <td>Row 1 Cell 2</td>
                <td>Row 1 Cell 3</td>
             </tr>
             <tr>
                <td>Row 2 Cell 2</td>
                <td>Row 2 Cell 3</td>
             </tr>
             <tr>
                <td colspan = "3">Row 3 Cell 1</td>
             </tr>
          </table>
       </body>
    	
    </html>
    

    Here is an example of using background attribute. Here we will use an image available in /images directory.

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Table Background</title>
       </head>
    	
       <body>
          <table border = "1" bordercolor = "green" background = "/images/test.png">
             <tr>
                <th>Column 1</th>
                <th>Column 2</th>
                <th>Column 3</th>
             </tr>
             <tr>
                <td rowspan = "2">Row 1 Cell 1</td>
                <td>Row 1 Cell 2</td><td>Row 1 Cell 3</td>
             </tr>
             <tr>
                <td>Row 2 Cell 2</td>
                <td>Row 2 Cell 3</td>
             </tr>
             <tr>
                <td colspan = "3">Row 3 Cell 1</td>
             </tr>
          </table>
       </body>
    	
    </html>
    

    Table Height and Width

    You can set a table width and height using width and height attributes. You can specify table width or height in terms of pixels or in terms of percentage of available screen area.

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Table Width/Height</title>
       </head>
    	
       <body>
          <table border = "1" width = "400" height = "150">
             <tr>
                <td>Row 1, Column 1</td>
                <td>Row 1, Column 2</td>
             </tr>
             
             <tr>
                <td>Row 2, Column 1</td>
                <td>Row 2, Column 2</td>
             </tr>
          </table>
       </body>
    	
    </html>
    

    Table Caption

    The caption tag will serve as a title or explanation for the table and it shows up at the top of the table. This tag is deprecated in newer version of HTML/XHTML.

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Table Caption</title>
       </head>
    	
       <body>
          <table border = "1" width = "100%">
             <caption>This is the caption</caption>
             
             <tr>
                <td>row 1, column 1</td><td>row 1, columnn 2</td>
             </tr>
             
             <tr>
                <td>row 2, column 1</td><td>row 2, columnn 2</td>
             </tr>
          </table>
       </body>
    	
    </html>
    

    Table Header, Body, and Footer

    Tables can be divided into three portions − a header, a body, and a foot. The head and foot are rather similar to headers and footers in a word-processed document that remain the same for every page, while the body is the main content holder of the table.

    The three elements for separating the head, body, and foot of a table are −

    • <thead> − to create a separate table header.

    • <tbody> − to indicate the main body of the table.

    • <tfoot> − to create a separate table footer.

    A table may contain several <tbody> elements to indicate different pages or groups of data. But it is notable that <thead> and <tfoot> tags should appear before <tbody>

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Table</title>
       </head>
    	
       <body>
          <table border = "1" width = "100%">
             <thead>
                <tr>
                   <td colspan = "4">This is the head of the table</td>
                </tr>
             </thead>
             
             <tfoot>
                <tr>
                   <td colspan = "4">This is the foot of the table</td>
                </tr>
             </tfoot>
             
             <tbody>
                <tr>
                   <td>Cell 1</td>
                   <td>Cell 2</td>
                   <td>Cell 3</td>
                   <td>Cell 4</td>
                </tr>
             </tbody>
             
          </table>
       </body>
    	
    </html>
    

    Nested Tables

    You can use one table inside another table. Not only tables you can use almost all the tags inside table data tag <td>.

    Example

    Following is the example of using another table and other tags inside a table cell.

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Table</title>
       </head>
    	
       <body>
          <table border = "1" width = "100%">
             
             <tr>
                <td>
                   <table border = "1" width = "100%">
                      <tr>
                         <th>Name</th>
                         <th>Salary</th>
                      </tr>
                      <tr>
                         <td>Ramesh Raman</td>
                         <td>5000</td>
                      </tr>
                      <tr>
                         <td>Shabbir Hussein</td>
                         <td>7000</td>
                      </tr>
                   </table>
                </td>
             </tr>
             
          </table>
       </body>
    	
    </html>
    

    Odered List and Unodered List

    HTML offers web authors three ways for specifying lists of information. All lists must contain one or more list elements. Lists may contain −

    • <ul> − An unordered list. This will list items using plain bullets.

    • <ol> − An ordered list. This will use different schemes of numbers to list your items.

    • <dl> − A definition list. This arranges your items in the same way as they are arranged in a dictionary.

    HTML Unordered Lists

    An unordered list is a collection of related items that have no special order or sequence. This list is created by using HTML <ul> tag. Each item in the list is marked with a bullet.

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Unordered List</title>
       </head>
    	
       <body>
          <ul>
             <li>Beetroot</li>
             <li>Ginger</li>
             <li>Potato</li>
             <li>Radish</li>
          </ul>
       </body>
       
    </html>
    

    The type Attribute

    You can use type attribute for <ul> tag to specify the type of bullet you like. By default, it is a disc. Following are the possible options −

    <ul type = "square">
    <ul type = "disc">
    <ul type = "circle">
    

    Example

    Following is an example where we used <ul type = "square">

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Unordered List</title>
       </head>
    
       <body>
          <ul type = "square">
             <li>Beetroot</li>
             <li>Ginger</li>
             <li>Potato</li>
             <li>Radish</li>
          </ul>
       </body>
    
    </html>
    

    Example

    Following is an example where we used <ul type = "disc"> −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Unordered List</title>
       </head>
    	
       <body>
          <ul type = "disc">
             <li>Beetroot</li>
             <li>Ginger</li>
             <li>Potato</li>
             <li>Radish</li>
          </ul>
       </body>
    
    </html>
    

    Example

    Following is an example where we used <ul type = "circle"> −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Unordered List</title>
       </head>
    
       <body>
          <ul type = "circle">
             <li>Beetroot</li>
             <li>Ginger</li>
             <li>Potato</li>
             <li>Radish</li>
          </ul>
       </body>
    	
    </html>
    

    HTML Ordered Lists

    If you are required to put your items in a numbered list instead of bulleted, then HTML ordered list will be used. This list is created by using <ol> tag. The numbering starts at one and is incremented by one for each successive ordered list element tagged with <li>.

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Ordered List</title>
       </head>
    
       <body>
          <ol>
             <li>Beetroot</li>
             <li>Ginger</li>
             <li>Potato</li>
             <li>Radish</li>
          </ol>
       </body>
    
    </html>
    

    The type Attribute

    You can use type attribute for <ol> tag to specify the type of numbering you like. By default, it is a number. Following are the possible options −

    <ol type = "1"> - Default-Case Numerals.
    <ol type = "I"> - Upper-Case Numerals.
    <ol type = "i"> - Lower-Case Numerals.
    <ol type = "A"> - Upper-Case Letters.
    <ol type = "a"> - Lower-Case Letters.
    

    Example

    Following is an example where we used <ol type = "1">

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Ordered List</title>
       </head>
    
       <body>
          <ol type = "1">
             <li>Beetroot</li>
             <li>Ginger</li>
             <li>Potato</li>
             <li>Radish</li>
          </ol>
       </body>
    
    </html>
    

    Example

    Following is an example where we used <ol type = "I">

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Ordered List</title>
       </head>
    	
       <body>
          <ol type = "I">
             <li>Beetroot</li>
             <li>Ginger</li>
             <li>Potato</li>
             <li>Radish</li>
          </ol>
       </body>
    	
    </html>
    

    Example

    Following is an example where we used <ol type = "i">

    <!DOCTYPE html>
    <html>
       
       <head>
          <title>HTML Ordered List</title>
       </head>
    	
       <body>
          <ol type = "i">
             <li>Beetroot</li>
             <li>Ginger</li>
             <li>Potato</li>
             <li>Radish</li>
          </ol>
       </body>
    	
    </html>
    

    Example

    Following is an example where we used <ol type = "A" >

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Ordered List</title>
       </head>
    	
       <body>
          <ol type = "A">
             <li>Beetroot</li>
             <li>Ginger</li>
             <li>Potato</li>
             <li>Radish</li>
          </ol>
       </body>
    	
    </html>
    

    Example

    Following is an example where we used <ol type = "a">

    <!DOCTYPE html>
    <html>
       
       <head>
          <title>HTML Ordered List</title>
       </head>
    	
       <body>
          <ol type = "a">
             <li>Beetroot</li>
             <li>Ginger</li>
             <li>Potato</li>
             <li>Radish</li>
          </ol>
       </body>
    	
    </html>
    

    The start Attribute

    You can use start attribute for <ol> tag to specify the starting point of numbering you need. Following are the possible options −

    <ol type = "1" start = "4">    - Numerals starts with 4.
    <ol type = "I" start = "4">    - Numerals starts with IV.
    <ol type = "i" start = "4">    - Numerals starts with iv.
    <ol type = "a" start = "4">    - Letters starts with d.
    <ol type = "A" start = "4">    - Letters starts with D.
    

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Ordered List</title>
       </head>
    	
       <body>
          <ol type = "i" start = "4">
             <li>Beetroot</li>
             <li>Ginger</li>
             <li>Potato</li>
             <li>Radish</li>
          </ol>
       </body>
    	
    </html>
    

    HTML Definition Lists

    HTML and XHTML supports a list style which is called definition lists where entries are listed like in a dictionary or encyclopedia. The definition list is the ideal way to present a glossary, list of terms, or other name/value list.

    Definition List makes use of following three tags.

    • <dl> − Defines the start of the list
    • <dt> − A term
    • <dd> − Term definition
    • </dl> − Defines the end of the list

    Example

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Definition List</title>
       </head>
    	
       <body>
          <dl>
             <dt><b>HTML</b></dt>
             <dd>This stands for Hyper Text Markup Language</dd>
             <dt><b>HTTP</b></dt>
             <dd>This stands for Hyper Text Transfer Protocol</dd>
          </dl>
       </body>
    	
    </html>
    

    HyperLinks

    A webpage can contain various links that take you directly to other pages and even specific parts of a given page. These links are known as hyperlinks.

    Hyperlinks allow visitors to navigate between Web sites by clicking on words, phrases, and images. Thus you can create hyperlinks using text or images available on a webpage.

    Note − I recommend you to go through a short tutorial on Understanding URL

    Linking Documents

    A link is specified using HTML tag <a>. This tag is called anchor tag and anything between the opening <a> tag and the closing </a> tag becomes part of the link and a user can click that part to reach to the linked document. Following is the simple syntax to use <a> tag.

    <a href = "Document URL" ... attributes-list>Link Text</a> 
    

    Example

    Let's try following example which links http://www.vvvinfotech.com at your page −

    <!DOCTYPE html>
    <html>
       
       <head>
          <title>Hyperlink Example</title>
       </head>
    	
       <body>
          <p>Click following link</p>
          <a href = "https://www.vvvinfotech.com" target = "_self">vvvinfotech</a>
       </body>
    	
    </html>
    

    The target Attribute

    We have used target attribute in our previous example. This attribute is used to specify the location where linked document is opened. Following are the possible options −

    Sr.No Option & Description
    1

    _blank

    Opens the linked document in a new window or tab.

    2

    _self

    Opens the linked document in the same frame.

    3

    _parent

    Opens the linked document in the parent frame.

    4

    _top

    Opens the linked document in the full body of the window.

    5

    targetframe

    Opens the linked document in a named targetframe.

    Example

    Try following example to understand basic difference in few options given for target attribute.

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Hyperlink Example</title>
          <base href = "https://www.vvvinfotech.com/">
       </head>
    	
       <body>
          <p>Click any of the following links</p>
          <a href = "/html/index.htm" target = "_blank">Opens in New</a> |
          <a href = "/html/index.htm" target = "_self">Opens in Self</a> |
          <a href = "/html/index.htm" target = "_parent">Opens in Parent</a> |
          <a href = "/html/index.htm" target = "_top">Opens in Body</a>
       </body>
    
    </html>
    

    Use of Base Path

    When you link HTML documents related to the same website, it is not required to give a complete URL for every link. You can get rid of it if you use <base> tag in your HTML document header. This tag is used to give a base path for all the links. So your browser will concatenate given relative path to this base path and will make a complete URL.

    Example

    Following example makes use of <base> tag to specify base URL and later we can use relative path to all the links instead of giving complete URL for every link.

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Hyperlink Example</title>
          <base href = "https://www.vvvinfotech.com/">
       </head>
    	
       <body>
          <p>Click following link</p>
          <a href = "/html/index.htm" target = "_blank">HTML Tutorial</a>
       </body>
    	
    </html>
    

    This will produce the following result, where you can click on the link generated HTML Tutorial to reach to the HTML tutorial.

    Now given URL <a href = "/html/index.html" is being considered as <ahref = "http://www.vvvinfotech.com/html/index.html"

    Linking to a Page Section

    You can create a link to a particular section of a given webpage by using name attribute. This is a two-step process.

    Note − The name attribute deprecated in HTML5. Do not use this attribute. Use id and title attribute instead.

    First create a link to the place where you want to reach with-in a webpage and name it using <a...> tag as follows −

    <h1>HTML Text Links <a name = "top"></a></h1>
    

    Second step is to create a hyperlink to link the document and place where you want to reach −

    <a href = "/html/html_text_links.htm#top">Go to the Top</a>
    

    This will produce following link, where you can click on the link generated Go to the Top to reach to the top of the HTML Text Link tutorial.

    Go to the Top 
    

    Setting Link Colors

    You can set colors of your links, active links and visited links using link, alink and vlink attributes of <body> tag.

    Example

    Save the following in test.htm and open it in any web browser to see how link, alink and vlink attributes work.

    <!DOCTYPE html>
    <html>
       
       <head>
          <title>Hyperlink Example</title>
          <base href = "https://www.vvvinfotech.com/">
       </head>
    	
       <body alink = "#54A250" link = "#040404" vlink = "#F40633">
          <p>Click following link</p>
          <a href = "/html/index.html" target = "_blank" >HTML Tutorial</a>
       </body>
       
    </html>
    

    Download Links

    You can create text link to make your PDF, or DOC or ZIP files downloadable. This is very simple; you just need to give complete URL of the downloadable file as follows −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Hyperlink Example</title>
       </head>
    	
       <body>
          <a href = "https://www.vvvinfotech.com/profile.php">Download PDF File</a>
       </body>
    	
    </html>
    

    Frames

    HTML frames are used to divide your browser window into multiple sections where each section can load a separate HTML document. A collection of frames in the browser window is known as a frameset. The window is divided into frames in a similar way the tables are organized: into rows and columns.

    Disadvantages of Frames

    There are few drawbacks with using frames, so it's never recommended to use frames in your webpages −

    • Some smaller devices cannot cope with frames often because their screen is not big enough to be divided up.

    • Sometimes your page will be displayed differently on different computers due to different screen resolution.

    • The browser's button might not work as the user hopes.

    • There are still few browsers that do not support frame technology.

    Creating Frames

    To use frames on a page we use <frameset> tag instead of <body> tag. The <frameset> tag defines, how to divide the window into frames. The rows attribute of <frameset> tag defines horizontal frames and cols attribute defines vertical frames. Each frame is indicated by <frame> tag and it defines which HTML document shall open into the frame.

    Note − The <frame> tag deprecated in HTML5. Do not use this element.

    Example

    Following is the example to create three horizontal frames −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Frames</title>
       </head>
    	
       <frameset rows = "10%,80%,10%">
          <frame name = "top" src = "/html/top_frame.htm" />
          <frame name = "main" src = "/html/main_frame.htm" />
          <frame name = "bottom" src = "/html/bottom_frame.htm" />
       
          <noframes>
             <body>Your browser does not support frames.</body>
          </noframes>
          
       </frameset>
       
    </html>
    

    Example

    Let's put the above example as follows, here we replaced rows attribute by cols and changed their width. This will create all the three frames vertically −

    <!DOCTYPE html>
    <html>
       
       <head>
          <title>HTML Frames</title>
       </head>
       
       <frameset cols = "25%,50%,25%">
          <frame name = "left" src = "/html/top_frame.htm" />
          <frame name = "center" src = "/html/main_frame.htm" />
          <frame name = "right" src = "/html/bottom_frame.htm" />
          
          <noframes>
             <body>Your browser does not support frames.</body>
          </noframes>
       </frameset>
       
    </html>
    

    The <frameset> Tag Attributes

    Following are important attributes of the <frameset> tag −

    Sr.No Attribute & Description
    1 cols
    Specifies how many columns are contained in the frameset and the size of each column. You can specify the width of each column in one of the four ways − Absolute values in pixels. For example, to create three vertical frames, use cols = "100, 500, 100". A percentage of the browser window. For example, to create three vertical frames, use cols = "10%, 80%, 10%". Using a wildcard symbol. For example, to create three vertical frames, use cols = "10%, *, 10%". In this case wildcard takes remainder of the window. As relative widths of the browser window. For example, to create three vertical frames, use cols = "3*, 2*, 1*". This is an alternative to percentages. You can use relative widths of the browser window. Here the window is divided into sixths: the first column takes up half of the window, the second takes one third, and the third takes one sixth.

    2 rows
    This attribute works just like the cols attribute and takes the same values, but it is used to specify the rows in the frameset. For example, to create two horizontal frames, use rows = "10%, 90%". You can specify the height of each row in the same way as explained above for columns.
    3 border
    This attribute specifies the width of the border of each frame in pixels. For example, border = "5". A value of zero means no border.
    4 frameborder
    This attribute specifies whether a three-dimensional border should be displayed between frames. This attribute takes value either 1 (yes) or 0 (no). For example frameborder = "0" specifies no border.
    5 framespacing
    This attribute specifies the amount of space between frames in a frameset. This can take any integer value. For example framespacing = "10" means there should be 10 pixels spacing between each frames.

    Browser Support for Frames

    If a user is using any old browser or any browser, which does not support frames then <noframes> element should be displayed to the user.

    So you must place a <body> element inside the <noframes> element because the <frameset> element is supposed to replace the <body> element, but if a browser does not understand <frameset> element then it should understand what is inside the <body> element which is contained in a <noframes> element.

    You can put some nice message for your user having old browsers. For example, Sorry!! your browser does not support frames. as shown in the above example.

    Frame's name and target attributes

    One of the most popular uses of frames is to place navigation bars in one frame and then load main pages into a separate frame.

    Let's see following example where a test.htm file has following code −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Target Frames</title>
       </head>
    	
       <frameset cols = "200, *">
          <frame src = "/html/menu.htm" name = "menu_page" />
          <frame src = "/html/main.htm" name = "main_page" />
          
          <noframes>
             <body>Your browser does not support frames.</body>
          </noframes>
       </frameset>
    	
    </html>
    

    Here, we have created two columns to fill with two frames. The first frame is 200 pixels wide and will contain the navigation menu bar implemented by menu.htm file. The second column fills in remaining space and will contain the main part of the page and it is implemented by main.htm file. For all the three links available in menu bar, we have mentioned target frame as main_page, so whenever you click any of the links in menu bar, available link will open in main page.

    Following is the content of menu.htm file

    <!DOCTYPE html>
    <html>
    
       <body bgcolor = "#4a7d49">
          <a href = "http://www.google.com" target = "main_page">Google</a>
          <br />
          <br />
          
          <a href = "http://www.microsoft.com" target = "main_page">Microsoft</a>
          <br />
          <br />
          
          <a href = "http://news.bbc.co.uk" target = "main_page">BBC News</a>
       </body>
    	
    </html>
    
    <!DOCTYPE html>
    <html>
    
       <body bgcolor = "#b5dcb3">
          <h3>This is main page and content from any link will be displayed here.</h3>
          <p>So now click any link and see the result.</p>
       </body>
    	
    </html>
    

    Now you can try to click links available in the left panel and see the result. The targetattribute can also take one of the following values −

    Sr.No Option & Description
    1 _self
    Loads the page into the current frame.
    2 _blank
    Loads a page into a new browser window. Opening a new window.
    3 _parent
    Loads the page into the parent window, which in the case of a single frameset is the main browser window.
    4 _top
    Loads the page into the browser window, replacing any current frames.
    5 targetframe
    Loads the page into a named targetframe.

    Forms

    A form will take input from the site visitor and then will post it to a back-end application such as CGI, ASP Script or PHP script etc. The back-end application will perform required processing on the passed data based on defined business logic inside the application.

    There are various form elements available like text fields, textarea fields, drop-down menus, radio buttons, checkboxes, etc.

    The HTML <form> tag is used to create an HTML form and it has following syntax −

    <form action = "Script URL" method = "GET|POST">
       form elements like input, textarea etc.
    </form>
    

    Form Attributes

    Apart from common attributes, following is a list of the most frequently used form attributes −

    Sr.No Attribute & Description
    1 action
    Backend script ready to process your passed data.
    2 method
    Method to be used to upload data. The most frequently used are GET and POST methods.
    3 target
    Specify the target window or frame where the result of the script will be displayed. It takes values like _blank, _self, _parent etc.
    4 enctype
    You can use the enctype attribute to specify how the browser encodes the data before it sends it to the server. Possible values are − application/x-www-form-urlencoded − This is the standard method most forms use in simple scenarios. mutlipart/form-data − This is used when you want to upload binary data in the form of files like image, word file etc.

    HTML Form Controls

    There are different types of form controls that you can use to collect data using HTML form −

    • Text Input Controls
    • Checkboxes Controls
    • Radio Box Controls
    • Select Box Controls
    • File Select boxes
    • Hidden Controls
    • Clickable Buttons
    • Submit and Reset Button

    Text Input Controls

    There are three types of text input used on forms −

    • Single-line text input controls − This control is used for items that require only one line of user input, such as search boxes or names. They are created using HTML <input> tag.

    • Password input controls − This is also a single-line text input but it masks the character as soon as a user enters it. They are also created using HTMl <input> tag.

    • Multi-line text input controls − This is used when the user is required to give details that may be longer than a single sentence. Multi-line input controls are created using HTML <textarea> tag.

    Single-line text input controls

    This control is used for items that require only one line of user input, such as search boxes or names. They are created using HTML <input> tag.

    Example

    Here is a basic example of a single-line text input used to take first name and last name −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Text Input Control</title>
       </head>
    	
       <body>
          <form >
             First name: <input type = "text" name = "first_name" />
             <br>
             Last name: <input type = "text" name = "last_name" />
          </form>
       </body>
    	
    </html>
    

    Attributes

    Following is the list of attributes for <input> tag for creating text field.

    Sr.No Attribute & Description
    1 type
    Indicates the type of input control and for text input control it will be set to text.
    2 name
    Used to give a name to the control which is sent to the server to be recognized and get the value.
    3 value
    This can be used to provide an initial value inside the control.
    4 size
    Allows to specify the width of the text-input control in terms of characters.
    5 maxlength
    Allows to specify the maximum number of characters a user can enter into the text box.

    Password input controls

    This is also a single-line text input but it masks the character as soon as a user enters it. They are also created using HTML <input>tag but type attribute is set to password.

    Example

    Here is a basic example of a single-line password input used to take user password −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Password Input Control</title>
       </head>
    	
       <body>
          <form >
             User ID : <input type = "text" name = "user_id" />
             <br>
             Password: <input type = "password" name = "password" />
          </form>
       </body>
    	
    </html>
    

    Attributes

    Following is the list of attributes for <input> tag for creating password field.

    Sr.No Attribute & Description
    1 type
    Indicates the type of input control and for password input control it will be set to password.
    2 name
    Used to give a name to the control which is sent to the server to be recognized and get the value.
    3 value
    This can be used to provide an initial value inside the control.
    4 size
    Allows to specify the width of the text-input control in terms of characters.
    5 maxlength
    Allows to specify the maximum number of characters a user can enter into the text box.

    Multiple-Line Text Input Controls

    This is used when the user is required to give details that may be longer than a single sentence. Multi-line input controls are created using HTML <textarea> tag.

    Example

    Here is a basic example of a multi-line text input used to take item description −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Multiple-Line Input Control</title>
       </head>
    	
       <body>
          <form>
             Description : <br />
             <textarea rows = "5" cols = "50" name = "description">
                Enter description here...
             </textarea>
          </form>
       </body>
    	
    </html>
    

    Attributes

    Following is the list of attributes for <textarea> tag.

    Sr.No Attribute & Description
    1 name
    Used to give a name to the control which is sent to the server to be recognized and get the value.
    2 rows
    Indicates the number of rows of text area box.
    3 cols
    Indicates the number of columns of text area box

    Checkbox Control

    Checkboxes are used when more than one option is required to be selected. They are also created using HTML <input> tag but type attribute is set to checkbox..

    Example

    Here is an example HTML code for a form with two checkboxes −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Checkbox Control</title>
       </head>
    	
       <body>
          <form>
             <input type = "checkbox" name = "maths" value = "on"> Maths
             <input type = "checkbox" name = "physics" value = "on"> Physics
          </form>
       </body>
    	
    </html>
    

    Attributes

    Following is the list of attributes for <checkbox> tag.

    Sr.No Attribute & Description
    1 type
    Indicates the type of input control and for checkbox input control it will be set to checkbox..
    2 name
    Used to give a name to the control which is sent to the server to be recognized and get the value.
    3 value
    The value that will be used if the checkbox is selected.
    4 checked
    Set to checked if you want to select it by default.

    Radio Button Control

    Radio buttons are used when out of many options, just one option is required to be selected. They are also created using HTML <input> tag but type attribute is set to radio.

    Example

    Here is example HTML code for a form with two radio buttons −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Radio Box Control</title>
       </head>
    
       <body>
          <form>
             <input type = "radio" name = "subject" value = "maths"> Maths
             <input type = "radio" name = "subject" value = "physics"> Physics
          </form>
       </body>
    
    </html>
    

    Attributes

    Following is the list of attributes for radio button.

    Sr.No Attribute & Description
    1 type
    Indicates the type of input control and for checkbox input control it will be set to radio.
    2 name
    Used to give a name to the control which is sent to the server to be recognized and get the value.
    3 value
    The value that will be used if the radio box is selected.
    4 checked
    Set to checked if you want to select it by default.

    Select Box Control

    A select box, also called drop down box which provides option to list down various options in the form of drop down list, from where a user can select one or more options.

    Example

    Here is example HTML code for a form with one drop down box

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Select Box Control</title>
       </head>
    	
       <body>
          <form>
             <select name = "dropdown">
                <option value = "Maths" selected>Maths</option>
                <option value = "Physics">Physics</option>
             </select>
          </form>
       </body>
    	
    </html>
    

    Attributes

    Following is the list of important attributes of <select> tag −

    Sr.No Attribute & Description
    1 name
    Used to give a name to the control which is sent to the server to be recognized and get the value.
    2 size
    This can be used to present a scrolling list box.
    3 multiple
    If set to "multiple" then allows a user to select multiple items from the menu.

    Following is the list of important attributes of <option> tag −

    Sr.No Attribute & Description
    1 value
    The value that will be used if an option in the select box box is selected.
    2 selected
    Specifies that this option should be the initially selected value when the page loads.
    3 label
    An alternative way of labeling options.

    File Upload Box

    If you want to allow a user to upload a file to your web site, you will need to use a file upload box, also known as a file select box. This is also created using the <input> element but type attribute is set to file.

    Example

    Here is example HTML code for a form with one file upload box −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>File Upload Box</title>
       </head>
    
       <body>
          <form>
             <input type = "file" name = "fileupload" accept = "image/*" />
          </form>
       </body>
    	
    </html>
    

    Attributes

    Following is the list of important attributes of file upload box −

    Sr.No Attribute & Description
    1 name

    Used to give a name to the control which is sent to the server to be recognized and get the value.

    2 accept

    Specifies the types of files that the server accepts.

    Button Controls

    There are various ways in HTML to create clickable buttons. You can also create a clickable button using <input>tag by setting its type attribute to button. The type attribute can take the following values −

    Sr.No Type & Description
    1 submit
    This creates a button that automatically submits a form.
    2 reset
    This creates a button that automatically resets form controls to their initial values.
    3 button
    This creates a button that is used to trigger a client-side script when the user clicks that button.
    4 image
    This creates a clickable button but we can use an image as background of the button.

    Example

    Here is example HTML code for a form with three types of buttons −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>File Upload Box</title>
       </head>
    	
       <body>
          <form>
             <input type = "submit" name = "submit" value = "Submit" />
             <input type = "reset" name = "reset"  value = "Reset" />
             <input type = "button" name = "ok" value = "OK" />
             <input type = "image" name = "imagebutton" src = "/html/images/logo.png" />
          </form>
       </body>
    	
    </html>
    

    Hidden Form Controls

    Hidden form controls are used to hide data inside the page which later on can be pushed to the server. This control hides inside the code and does not appear on the actual page. For example, following hidden form is being used to keep current page number. When a user will click next page then the value of hidden control will be sent to the web server and there it will decide which page will be displayed next based on the passed current page.

    Example

    Here is example HTML code to show the usage of hidden control −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>File Upload Box</title>
       </head>
    
       <body>
          <form>
             <p>This is page 10</p>
             <input type = "hidden" name = "pagename" value = "10" />
             <input type = "submit" name = "submit" value = "Submit" />
             <input type = "reset" name = "reset"  value = "Reset" />
          </form>
       </body>
    	
    </html>
    

    Marquee

    An HTML marquee is a scrolling piece of text displayed either horizontally across or vertically down your webpage depending on the settings. This is created by using HTML <marquees> tag.

    Note − The <marquee> tag deprecated in HTML5. Do not use this element, instead you can use JavaScript and CSS to create such effects.

    Syntax

    A simple syntax to use HTML <marquee> tag is as follows −

    <marquee attribute_name = "attribute_value"....more attributes>
       One or more lines or text message or image
    </marquee>
    

    The <marquee> Tag Attributes

    Following is the list of important attributes which can be used with <marquee> tag.

    Sr.No Attribute & Description
    1 width
    This specifies the width of the marquee. This can be a value like 10 or 20% etc.
    2 height
    This specifies the height of the marquee. This can be a value like 10 or 20% etc.
    3 direction<
    This specifies the direction in which marquee should scroll. This can be a value like up, down, left or right.
    4 behavior
    This specifies the type of scrolling of the marquee. This can have a value like scroll, slide and alternate.
    5 scrolldelay
    This specifies how long to delay between each jump. This will have a value like 10 etc.
    6 scrollamount
    This specifies the speed of marquee text. This can have a value like 10 etc.
    7 loop
    This specifies how many times to loop. The default value is INFINITE, which means that the marquee loops endlessly.
    8 bgcolor
    This specifies background color in terms of color name or color hex value.
    9 hspace This specifies horizontal space around the marquee. This can be a value like 10 or 20% etc.
    10 vspace This specifies vertical space around the marquee. This can be a value like 10 or 20% etc.

    Below are few examples to demonstrate the usage of marquee tag.

    Examples - 1

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML marquee Tag</title>
       </head>
    	
       <body>
          <marquee>This is basic example of marquee</marquee>
       </body>
    	
    </html>
    

    Examples - 2

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML marquee Tag</title>
       </head>
    	
       <body>
          <marquee width = "50%">This example will take only 50% width</marquee>
       </body>
    	
    </html>
    

    Examples - 3

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML marquee Tag</title>
       </head>
    
       <body>
          <marquee direction = "right">This text will scroll from left to right</marquee>
       </body>
    	
    </html>
    

    Examples - 4

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML marquee Tag</title>
       </head>
    	
       <body>
          <marquee direction = "up">This text will scroll from bottom to up</marquee>
       </body>
    	
    </html>
    

    Layout

    A webpage layout is very important to give better look to your website. It takes considerable time to design a website's layout with great look and feel.

    Now-a-days, all modern websites are using CSS and JavaScript based framework to come up with responsive and dynamic websites but you can create a good layout using simple HTML tables or division tags in combination with other formatting tags. This chapter will give you few examples on how to create a simple but working layout for your webpage using pure HTML and its attributes.

    HTML Layout - Using Tables

    The simplest and most popular way of creating layouts is using HTML <table> tag. These tables are arranged in columns and rows, so you can utilize these rows and columns in whatever way you like.

    Example

    For example, the following HTML layout example is achieved using a table with 3 rows and 2 columns but the header and footer column spans both columns using the colspan attribute −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Layout using Tables</title>
       </head>
    
       <body>
          <table width = "100%" border = "0">
             
             <tr>
                <td colspan = "2" bgcolor = "#b5dcb3">
                   <h1>This is Web Page Main title</h1>
                </td>
             </tr>
             <tr valign = "top">
                <td bgcolor = "#aaa" width = "50">
                   <b>Main Menu</b><br />
                   HTML<br />
                   PHP<br />
                   PERL...
                </td>
                
                <td bgcolor = "#eee" width = "100" height = "200">
                   Technical and Managerial Tutorials
                </td>
             </tr>
             <tr>
                <td colspan = "2" bgcolor = "#b5dcb3">
                   <center>
                      Copyright © 2007 Tutorialspoint.com
                   </center>
                </td>
             </tr>
             
          </table>
       </body>
    
    </html>
    

    Multiple Columns Layout - Using Tables

    You can design your webpage to put your web content in multiple pages. You can keep your content in middle column and you can use left column to use menu and right column can be used to put advertisement or some other stuff. This layout will be very similar to what we have at our website tutorialspoint.com.

    Example

    Here is an example to create three column layout −

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>Three Column HTML Layout</title>
       </head>
    
       <body>
          <table width = "100%" border = "0">
             
             <tr valign = "top">
                <td bgcolor = "#aaa" width = "20%">
                   <b>Main Menu</b><br />
                   HTML<br />
                   PHP<br />
                   PERL...
                </td>
    				
                <td bgcolor = "#b5dcb3" height = "200" width = "60%">
                   Technical and Managerial Tutorials
                </td>
    				
                <td bgcolor = "#aaa" width = "20%">
                   <b>Right Menu</b><br />
                   HTML<br />
                   PHP<br />
                   PERL...
                </td>
             </tr>
             
          <table>
       </body>
    
    </html>
    

    HTML Layouts - Using DIV, SPAN

    The <div> element is a block level element used for grouping HTML elements. While the <div> tag is a block-level element, the HTML <span> element is used for grouping elements at an inline level.

    Although we can achieve pretty nice layouts with HTML tables, but tables weren't really designed as a layout tool. Tables are more suited to presenting tabular data.

    Note − This example makes use of Cascading Style Sheet (CSS), so before understanding this example you need to have a better understanding on how CSS works.

    Example

    Here we will try to achieve same result using <div> tag along with CSS, whatever you have achieved using <table> tag in previous example.

    <!DOCTYPE html>
    <html>
    
       <head>
          <title>HTML Layouts using DIV, SPAN</title>
       </head>
    
       <body>
          <div style = "width:100%">
    		
             <div style = "background-color:#b5dcb3; width:100%">
                <h1>This is Web Page Main title</h1>
             </div>
    			
        <div style = "background-color:#aaa; height:200px; width:100px; float:left;">
                <div><b>Main Menu</b></div>
                HTML<br />
                PHP<br />
                PERL...
             </div>
    			
        <div style = "background-color:#eee; height:200px; width:350px; float:left;" >
                <p>Technical and Managerial Tutorials</p>
             </div>
    		
        <div style = "background-color:#aaa; height:200px; width:100px; float:right;">
                <div><b>Right Menu</b></div>
                HTML<br />
                PHP<br />
                PERL...
             </div>
    			
             <div style = "background-color:#b5dcb3; clear:both">
                <center>
                   Copyright © 2007 Tutorialspoint.com
                </center>
             </div>
    			
          </div>
       </body>
    
    </html>