UNIT -5
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 back 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 = "https://www.tutorialspoint.com/html/top_frame.htm" />
<frame name = "main" src = "https://www.tutorialspoint.com/html/main_frame.htm" />
<frame name = "bottom" src = "https://www.tutorialspoint.com/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 −
<html>
<head>
<title>HTML Frames</title>
</head>
<frameset cols = "25%,50%,25%">
<frame name = "left" src = "https://www.tutorialspoint.com/html/top_frame.htm" />
<frame name = "center" src = "https://www.tutorialspoint.com/html/main_frame.htm" />
<frame name = "right" src = "https://www.tutorialspoint.com/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
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%".
1
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.
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.
2
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.
border
This attribute specifies the width of the border of each frame in
3
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.
framespacing
This attribute specifies the amount of space between frames in a
5 frameset. This can take any integer value. For example
framespacing = "10" means there should be 10 pixels spacing
between each frames.
The <frame> Tag Attributes
Following are the important attributes of <frame> tag −
Sr.No Attribute & Description
src
This attribute is used to give the file name that should be loaded in the
1 frame. Its value can be any URL. For example, src =
"/html/top_frame.htm" will load an HTML file available in html
directory.
name
This attribute allows you to give a name to a frame. It is used to
indicate which frame a document should be loaded into. This is
2
especially important when you want to create links in one frame that
load pages into an another frame, in which case the second frame
needs a name to identify itself as the target of the link.
frameborder
This attribute specifies whether or not the borders of that frame are
3 shown; it overrides the value given in the frameborder attribute on the
<frameset> tag if one is given, and this can take values either 1 (yes)
or 0 (no).
marginwidth
This attribute allows you to specify the width of the space between
4
the left and right of the frame's borders and the frame's content. The
value is given in pixels. For example marginwidth = "10".
marginheight
This attribute allows you to specify the height of the space between
5
the top and bottom of the frame's borders and its contents. The value
is given in pixels. For example marginheight = "10".
noresize
By default, you can resize any frame by clicking and dragging on the
6
borders of a frame. The noresize attribute prevents a user from being
able to resize the frame. For example noresize = "noresize".
scrolling
This attribute controls the appearance of the scrollbars that appear on
7
the frame. This takes values either "yes", "no" or "auto". For example
scrolling = "no" means it should not have scroll bars.
longdesc
This attribute allows you to provide a link to another page containing
8
a long description of the contents of the frame. For example longdesc
= "framedescription.htm"
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 –
<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
<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>
Following is the content of main.htm file –
<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>
When we load test.htm file, it produces following result −
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
_self
1
Loads the page into the current frame.
_blank
2
Loads a page into a new browser window. Opening a new window.
_parent
3 Loads the page into the parent window, which in the case of a single
frameset is the main browser window.
_top
4 Loads the page into the browser window, replacing any current
frames.
targetframe
5
Loads the page into a named targetframe.
HTML FORM
An HTML form is a section of a document which contains controls such as text
fields, password fields, checkboxes, radio buttons, submit button, menus etc.
An HTML form facilitates the user to enter data that is to be sent to the server for
processing such as name, email address, password, phone number, etc. .
Why use HTML Form
HTML forms are required if you want to collect some data from of the site visitor.
For example: If a user want to purchase some items on internet, he/she must fill the form such as
shipping address and credit/debit card details so that item can be sent to the given address.
HTML Form Syntax
<form action="server url" method="get|post">
//input controls e.g. textfield, textarea, radiobutton, button
</form>
HTML Form Tags
Let's see the list of HTML 5 form tags.
Tag Description
<form> It defines an HTML form to enter inputs by the used side.
<input> It defines an input control.
<textarea> It defines a multi-line input control.
<label> It defines a label for an input element.
<fieldset> It groups the related element in a form.
<legend> It defines a caption for a <fieldset> element.
<select> It defines a drop-down list.
<optgroup> It defines a group of related options in a drop-down list.
<option> It defines an option in a drop-down list.
<button> It defines a clickable button.
HTML 5 Form Tags
Let's see the list of HTML 5 form tags.
Tag Description
<datalist> It specifies a list of pre-defined options for input control.
<keygen> It defines a key-pair generator field for forms.
<output> It defines the result of a calculation.
HTML <form> element
The HTML <form> element provide a document section to take input from user.
It provides various interactive controls for submitting information to web server such
as text field, text area, password field, etc.
Note: The <form> element does not itself create a form but it is container to contain all required form
elements, such as <input>, <label>, etc.
Syntax:
<form>
//Form elements
</form>
HTML <input> element
The HTML <input> element is fundamental form element.
It is used to create form fields, to take input from user.
We can apply different input filed to gather different information form user.
Following is the example to show the simple text input.
Example:
<body>
<form>
Enter your name <br>
<input type="text" name="username">
</form>
</body>
Output:
HTML TextField Control
The type="text" attribute of input tag creates textfield control also known as single
line textfield control.
The name attribute is optional, but it is required for the server side component such as
JSP, ASP, PHP etc.
<form>
First Name: <input type="text" name="firstname"/> <br/>
Last Name: <input type="text" name="lastname"/> <br/>
</form>
Output:
Note: If you will omit 'name' attribute then the text filed input will not be submitted to server.
HTML <textarea> tag in form
The <textarea> tag in HTML is used to insert multiple-line text in a form.
The size of <textarea> can be specify either using "rows" or "cols" attribute or by
CSS.
Example:
<!DOCTYPE html>
<html>
<head>
<title>Form in HTML</title>
</head>
<body>
<form>
Enter your address:<br>
<textarea rows="2" cols="20"></textarea>
</form>
</body>
</html>
Output:
Label Tag in Form
It is considered better to have label in form. As it makes the code parser/browser/user friendly.
If you click on the label tag, it will focus on the text control. To do so, you need to have for attribute
in label tag that must be same as id attribute of input tag.
NOTE: It is good to use <label> tag with form, although it is optional but if you will use it, then it
will provide a focus when you tap or click on label tag. It is more worthy with touchscreens.
1. <form>
2. <label for="firstname">First Name: </label> <br/>
3. <input type="text" id="firstname" name="firstname"/> <br/>
4. <label for="lastname">Last Name: </label>
5. <input type="text" id="lastname" name="lastname"/> <br/>
6. </form>
Output:
HTML Password Field Control
The password is not visible to the user in password field control.
1. <form>
2. <label for="password">Password: </label>
3. <input type="password" id="password" name="password"/> <br/>
4. </form>
Output:
HTML 5 Email Field Control
The email field in new in HTML 5. It validates the text for correct email address. You must use @
and . in this field.
1. <form>
2. <label for="email">Email: </label>
3. <input type="email" id="email" name="email"/> <br/>
4. </form>
It will display in browser like below:
Note: If we will not enter the correct email, it will display error like:
Radio Button Control
The radio button is used to select one option from multiple options. It is used for selection of gender,
quiz questions etc.
If you use one name for all the radio buttons, only one radio button can be selected at a time.
Using radio buttons for multiple options, you can only choose a single option at a time.
1. <form>
2. <label for="gender">Gender: </label>
3. <input type="radio" id="gender" name="gender" value="male"/>Male
4. <input type="radio" id="gender" name="gender" value="female"/>Female <br/>
5. </form>
Checkbox Control
The checkbox control is used to check multiple options from given checkboxes.
1. <form>
2. Hobby:<br>
3. <input type="checkbox" id="cricket" name="cricket" value="cricket"/>
4. <label for="cricket">Cricket</label> <br>
5. <input type="checkbox" id="football" name="football" value="football"/>
6. <label for="football">Football</label> <br>
7. <input type="checkbox" id="hockey" name="hockey" value="hockey"/>
8. <label for="hockey">Hockey</label>
9. </form>
Note: These are similar to radio button except it can choose multiple options at a time and radio
button can select one button at a time, and its display.
Output:
Submit button control
HTML <input type="submit"> are used to add a submit button on web page. When user clicks on
submit button, then form get submit to the server.
Syntax:
1. <input type="submit" value="submit">
The type = submit , specifying that it is a submit button
The value attribute can be anything which we write on button on web page.
The name attribute can be omit here.
Example:
1. <form>
2. <label for="name">Enter name</label><br>
3. <input type="text" id="name" name="name"><br>
4. <label for="pass">Enter Password</label><br>
5. <input type="Password" id="pass" name="pass"><br>
6. <input type="submit" value="submit">
7. </form>
Output:
HTML <fieldset> element:
The <fieldset> element in HTML is used to group the related information of a form. This element is
used with <legend> element which provide caption for the grouped elements.
Example:
1. <form>
2. <fieldset>
3. <legend>User Information:</legend>
4. <label for="name">Enter name</label><br>
5. <input type="text" id="name" name="name"><br>
6. <label for="pass">Enter Password</label><br>
7. <input type="Password" id="pass" name="pass"><br>
8. <input type="submit" value="submit">
9. </fieldset>
10. lt;/form>
Output: