HTML Solo Learn
HTML Solo Learn
What is HTML?
Welcome to HTML!
HTML stands for HyperText Markup Language.
Unlike a scripting or programming language that uses scripts to perform functions, a markup language
uses tags to identify content.
Here is an example of an HTML tag:
<p> I'm a paragraph </p>
The ability to code using HTML is essential for any web professional. Acquiring this skill should be
the starting point for anyone who is learning how to create content for the web.
HTML: Structure
CSS: Presentation
JavaScript: Behavior
The structure of an HTML document has been compared with that of a sandwich. As a sandwich
has two slices of bread, the HTML document has opening and closing HTML tags.
<html> </html>
The <head> Tag
Immediately following the opening HTML tag, you'll find the head of the document, which is
identified by opening and closing head tags.
The head of an HTML file contains all of the non-visual elements that help make the page work.
<html> <head>…</head></html>
Headings, paragraphs, lists, quotes, images, and links are just a few of the elements that can be
contained within the body tag.
<html>
<head>
</head>
<body>
</body>
</html>
There are some very nice HTML editors available; you can choose the one that works for you. For
now let's write our examples in Notepad.
The HTML File
Add the basic HTML structure to the text editor with "This is a line of text" in the body section.
<html>
<head>
</head>
<body>
This is a line of text.
</body>
</html>
To place a title on the tab describing the web page, add a <title> element to your head section:
<html>
<head>
<title>first page</title>
</head>
<body>
</body>
</html>
Paragraphs
The <p> Element
To create a paragraph, simply type in the <p> element with its opening and closing tags:
<html>
<head>
<title>first page</title>
</head>
<body>
</body>
</html>
Use the <br /> tag to add a single line of text without starting a new paragraph:
<html>
<head>
<title>first page</title>
</head>
<body>
<p>This is a paragraph.</p>
</body>
</html>
Text formatting
In HTML, there is a list of elements that specify text style.
<html>
<head>
<title>first page</title>
</head>
<body>
</body>
</html>
HTML Headings
HTML includes six levels of headings, which are ranked according to importance.
<html>
<head>
<title>first page</title>
</head>
<body>
</body>
</html>
Horizontal Lines
<html>
<head>
<title>first page</title>
</head>
<body>
<hr />
</body>
</html>
The browser does not display comments, but they help document the HTML and add
descriptions, reminders, and other notes.
Example:
<html>
<head>
<title>first page</title>
</head>
<body>
<hr />
</body>
</html>
There is an exclamation point (!) in the opening tag, but not in the closing tag.
HTML Elements
An HTML element is written using a start tag and an end tag, and with the content in between.
HTML documents consist of nested HTML elements. In the example below, the body element
includes the <p> tags, the <br /> tag and the content, "This is a paragraph".
<html>
<head>
<title>first page</title>
</head>
<body>
</body>
</html>
Some HTML elements (like the <br /> tag) do not have end tags.
Some elements are quite small. Since you can't put contents within a break tag, and you don't
have an opening and closing break tag, it’s a separate, single element.
HTML Attributes
Attributes provide additional information about an element or a tag, while also modifying them.
Most attributes have a value; the value modifies the attribute.
<p align="center">
This text is aligned to center
</p>
In this example, the value of "center" indicates that the content within the p element should be
aligned to the center
Attributes are always specified in the start tag, and they appear in name="value" pairs.
Attribute Measurements
In the example below, we have a paragraph that is aligned to the center, and a line that is aligned to the
right.
<html>
<head>
<title>Attributes</title>
</head>
<body>
</body>
</html>
You may be wondering what happens if you try to apply contradictory attributes within the same
element.
<p align="center">
This is a text.
</p>
IMAGES
The <img> Tag
The <img> tag is used to insert an image. It contains only attributes, and does not have a closing
tag.
The image's URL (address) can be defined using the src attribute.
You need to put in the image location for the src attribute that is between the quotation marks.
For example, if you have a photo named "tree.jpg" in the same folder as the HTML file, your code
should look like this:
<html>
<head>
<title>first page</title>
</head>
<body>
</body>
</html>
In case the image cannot be displayed, the alt attribute specifies an alternate text that describes
the image in words. The alt attribute is required.
Image Resizing
To define the image size, use the width and height attributes.
The value can be specified in pixels or as a percentage:
<html>
<head>
<title>first page</title>
</head>
<body>
<img src="tree.jpg" height="150px" width="150px" alt="" />
<!-- or -->
</body>
</html>
Loading images takes time. Using large images can slow down your page, so use them with care.
Image Border
By default, an image has no borders. Use the border attribute within the image tag to create a
border around the image.
By default, Internet Explorer 9, and its earlier versions, display a border around an image unless a
border attribute is defined.
Links are also an integral part of every web page. You can add links to text or images that will
enable the user to click on them in order to be directed to another file or webpage.
In HTML, links are defined using the <a> tag.
To link an image to another document, simply nest the <img> tag inside <a> tags.
Learn Playing
</a>
An ordered list starts with the <ol> tag, and each list item is defined by the <li> tag.
Here is an example of an ordered list:
<html>
<head>
<title>first page</title>
</head>
<body>
<ol>
<li>Red</li>
<li>Blue</li>
<li>Green</li>
</ol>
</body>
</html>
<html>
<head>
<title>first page</title>
</head>
<body>
<ul>
<li>Red</li>
<li>Blue</li>
<li>Green</li>
</ul>
</body>
</html>
Tables
Creating a Table
Table data tags <td> act as data containers within the table.
They can contain all sorts of HTML elements, such as text, images, lists, other tables, and so on.
<table border="2">
<tr>
<td>Red</td>
<td>Blue</td>
<td>Green</td>
</tr>
<tr>
<td><br /></td>
</tr>
</table>
Colspan Color
<table border="2">
<tr>
<td>Red</td>
<td>Blue</td>
<td>Green</td>
</tr>
<tr>
<td>Yellow</td>
<td colspan="2">Orange</td>
</tr>
</table>
You can see that the cell containing "Orange" spans two cells.
To make a cell span more than one row, use the rowspan attribute.
To change your table's position, use the align attribute inside your table tag:
<table align="center">
Now let's specify a background color of red for a table cell. To do that, just use the bgcolor
attribute.
<table border="2">
<tr>
<td bgcolor="red">Red</td>
<td>Blue</td>
<td>Green</td>
</tr>
<tr>
<td>Yellow</td>
<td colspan="2">Orange</td>
</tr>
</table>
Result:
Types of Elements
The <div> element is a block-level element that is often used as a container for other HTML
elements.
When used together with some CSS styling, the <div> element can be used to style blocks of
content:
<html>
<body>
<h1>Headline</h1>
</div>
</body>
</html>
Similarly, the <span> element is an inline element that is often used as a container for some text.
When used together with CSS, the <span> element can be used to style parts of the text:
<html>
<body>
<h2>Some
<span style="color:red">Important</span>
Message</h2>
</body>
</html>
Summary
The <div> element defines a block-level section in a document.
The <span> element defines an inline section in a document.
In the case of styling elements, CSS is more effective than HTML. Try our free "Learn CSS"
course to learn more about CSS and styles.
Types of Elements
Other elements can be used either as block level elements or inline elements. This includes the
following elements:
APPLET - embedded Java applet
IFRAME - Inline frame
INS - inserted text
MAP - image map
OBJECT - embedded object
SCRIPT - script within an HTML document
You can insert inline elements inside block elements. For example, you can have multiple <span>
elements inside a <div> element.
Inline elements cannot contain any block level elements.
FORMS
The <form> Element
Use the action attribute to point to a webpage that will load after the user submits the form.
<form action="http://www.sololearn.com">
</form>
The method attribute specifies the HTTP method (GET or POST) to be used when forms are
submitted (see below for description):
<form action="url" method="GET">
When you use GET, the form data will be visible in the page address.
Use POST if the form is updating data, or includes sensitive information (passwords).
POST offers better security because the submitted data is not visible in the page address.
To take in user input, you need the corresponding form elements, such as text fields. The <input>
element has many variations, depending on the type attribute. It can be a text, password, radio,
URL, submit, etc.
</form>
Result:
Form Elements
If we change the input type to radio, it allows the user select only one of a number of choices:
Result:
The type "checkbox" allows the user to select more than one option:
Result:
Result:
After the form is submitted, the data should be processed on the server using a programming
language, such as PHP.
Contact Form
Next, we'll create a Contact Form for your blog. The form will include Name, Email, and Message
fields. We'll also add a Submit button.
<h1><span>Contact Me</span></h1>
<form>
<textarea name="message"></textarea>
</form>
HTML Colors!
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
As you can see, there are 16 values there, 0 through F. Zero represents the lowest value, and F
represents the highest.
Colors are displayed in combinations of red, green, and blue light (RGB).
Hex values are written using the hashtag symbol (#), followed by either three or six hex
characters.
As shown in the picture below, the circles overlap, forming new colors:
RGB color values are supported in all browsers.
Color Values
All of the possible red, green, and blue combinations potentially number over 16 million.
This example would produce a dark blue background with a white headline:
<html>
<head>
<title>first page</title>
</head>
<body bgcolor="#000099">
<h1>
</h1>
</body>
</html>
Result:
The color attribute specifies the color of the text inside a <font> element.
FRAMES
The <frame> Tag
The <frame> tag defines one specific window (frame) within a <frameset>. Each <frame> in a
<frameset> can have different attributes, such as border, scrolling, the ability to resize, etc.
The <frameset> element specifies the number of columns or rows in the frameset, as well as
what percentage or number of pixels of space each of them occupies.
<frameset cols="100, 25%, *"></frameset>
<frameset rows="100, 25%, *"></frameset>
Use the <noresize> attribute to specify that a user cannot resize a <frame> element:
<frame noresize="noresize">
Blog Project
To finalize our blog, we'll use a frame to embed a YouTube video. We'll also create a Follow Me
section that includes links at the end of the page.
...
<div class="section">
<h1><span>My Media</span></h1>
</div>
...
TASK:
1. Finalize your blog page.
2. Share your code creation with the community, get feedback, and receive upvo
INTRODUCTION TO HTML5
HTML5
When writing HTML5 documents, one of the first new features that you'll notice is the doc type
declaration:
<!DOCTYPE HTML>
New in HTML5
Forms
- The Web Forms 2.0 specification allows for creation of more powerful forms and more
compelling user experiences.
- Date pickers, color pickers, and numeric stepper controls have been added.
- Input field types now include email, search, and URL.
- PUT and DELETE form methods are now supported.
In HTML, elements typically belonged in either the block level or inline content model. HTML5
introduces seven main content models.
- Metadata
- Embedded
- Interactive
- Heading
- Phrasing
- Flow
- Sectioning
The HTML5 content models are designed to make the markup structure more meaningful for
both the browser and the web designer.
Content Models
Metadata: Content that sets up the presentation or behavior of the rest of the content. These
elements are found in the head of the document.
Elements: <base>, <link>, <meta>, <noscript>, <script>, <style>, <title>
Phrasing: This model has a number of inline level elements in common with HTML4.
Elements: <img>, <span>, <strong>, <label>, <br />, <small>, <sub>, and more.
The same element can belong to more than one content model
Content Models
Flow content: Contains the majority of HTML5 elements that would be included in the normal flow
of the document.
Sectioning content: Defines the scope of headings, content, navigation, and footers.
Elements: <article>, <aside>, <nav>, <section>
The various content models overlap in certain areas, depending on how they are being used.
Page Structure in HTML5
You may not need some of these elements, depending on your page structure.
The <header> element is appropriate for use inside the body tag.
<!DOCTYPE html>
<html>
<head></head>
<body>
<header>
</header>
</body>
</html>
Note that the <header> is completely different from the <head> tag
The footer element is also widely used. Generally we refer to a section located at the very bottom
of the web page as the footer.
<footer>…</footer>
This tag represents a section of a page that links to other pages or to certain sections within the
page. This would be a section with navigation links.
<nav>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">Services</a></li>
</ul>
</nav>
Not all of the links in a document should be inside a <nav> element. The <nav> element is
intended only for major blocks of navigation links. Typically, the <footer> element often has a list
of links that don't need to be in a <nav> element.
Article Is a self-contained, independent piece of content that can be used and distributed
separately from the rest of the page or site. This could be a forum post, a magazine or
newspaper article, a blog entry, a comment, an interactive widget or gadget, or any other
independent piece of content.
The <article> element replaces the <div> element that was widely used in HTML4, along with an
id or class.
<article>
</article>
When an <article> element is nested, the inner element represents an article related to the outer
element. For example, blog post comments can be <article> elements nested in the <article>
representing the blog post.
<article>
<h1>Welcome</h1>
<section>
<h1>Heading</h1>
<p>content or image</p>
</section>
</article>
Try It Yourself
If it makes sense to separately syndicate the content of a <section> element, use an <article>
element instead.
<aside> is secondary or tangential content which could be considered separate from but
indirectly related to the main content.
This type of content is often represented in sidebars.
When an <aside> tag is used within an <article> tag, the content of the <aside> should be
specifically related to that article.
<article>
<p> This website will be the best place for choosing gifts </p>
<aside>
</aside>
</article>
Try It Yourself
When an <aside> tag is used outside of an <article> tag, its content should be related to the
surrounding content.
Before HTML5, there was no standard for playing audio files on a web page.
The HTML5 <audio> element specifies a standard for embedding audio in a web page.
There are two different ways to specify the audio source file's URL. The first uses the source
attribute:
</audio>
Try It Yourself
The second way uses the <source> element inside the <audio> element:
<audio controls>
</audio>
Try It Yourself
Multiple <source> elements can be linked to different audio files. The browser will use the first
recognized format.
Audio on the Web
<audio controls>
</audio>
Try It Yourself
Result:
The text between the <audio> and </audio> tags will display in browsers that do not support the
<audio> element.
Attributes of <audio>
controls
Specifies that audio controls should be displayed (such as a play/pause button, etc.)
autoplay
When this attribute is defined, audio starts playing as soon as it is ready, without asking for the
visitor's permission.
Try It Yourself
loop
This attribute is used to have the audio replay every time it is finished.
Try It Yourself
Currently, there are three supported file formats for the <audio> element: MP3, WAV, and OGG.
Videos in HTML
<video controls>
</video>
Try It Yourself
Another aspect that the audio and video elements have in common is that the major browsers do
not all support the same file types. If the browser does not support the first video type, it will try
the next one.
Attributes of <video>
Another aspect shared by both the audio and the video elements is that each has controls,
autoplay and loop attributes.
</video>
Try It Yourself
Currently, there are three supported video formats for the <video> element: MP4, WebM, and
OGG.
Progress Bar
The <progress> element provides the ability to create progress bars on the web.
The progress element can be used within headings, paragraphs, or anywhere else in the body.
Example:
Try It Yourself
Result:
Use the <progress> tag in conjunction with JavaScript to dynamically display a task's progress.
With HTML5 web storage, websites can store data on a user's local computer.
Before HTML5, we had to use JavaScript cookies to achieve this functionality.
The syntax for web storage for both local and session storage is very simple and similar.
The data is stored as key/value pairs.
Storing a Value:
localStorage.setItem("key1", "value1");
Getting a Value:
//this will print the value
alert(localStorage.getItem("key1"));
Removing a Value:
localStorage.removeItem("key1");
The same syntax applies to the session storage, with one difference: Instead of localStorage,
sessionStorage is used.
What is the Geolocation API?
In HTML5, the Geolocation API is used to obtain the user's geographical location.
Since this can compromise user privacy, the option is not available unless the user approves it.
Geolocation is much more accurate for devices with GPS, like smartphones and the like.
The Geolocation API’s main method is getCurrentPosition, which retrieves the current
geographic location of the user's device.
navigator.geolocation.getCurrentPosition();
Parameters:
showLocation (mandatory): Defines the callback method that retrieves location information.
ErrorHandler(optional): Defines the callback method that is invoked when an error occurs in
processing the asynchronous call.
Options (optional): Defines a set of options for retrieving the location information.
You need to be familiar with basic JavaScript in order to understand and use the API.
Presenting Data
1. The geodetic way to describe position refers directly to latitude and longitude.
2. The civic representation of location data is presented in a format that is more easily read and
understood by the average person.
The drag and drop feature lets you "grab" an object and drag it to a different location.
To make an element draggable, just set the draggable attribute to true:
<img draggable="true" />
Example:
<!DOCTYPE HTML>
<html>
<head>
<script>
function allowDrop(ev) {
ev.preventDefault();
}
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>
</body>
</html>
What to Drag
When the element is dragged, the ondragstart attribute calls a function, drag(event), which
specifies what data is to be dragged.
The dataTransfer.setData() method sets the data type and the value of the dragged data:
function drag(ev) {
ev.dataTransfer.setData("text", ev.target.id);
}
In our example, the data type is "text" and the value is the ID of the draggable element ("image").
Where to Drop
The ondragover event specifies where the dragged data can be dropped. By default, data and
elements cannot be dropped in other elements. To allow a drop, we must prevent the default
handling of the element.
This is done by calling the event.preventDefault() method for the ondragover event.
Do the Drop
When the dragged data is dropped, a drop event occurs.
In the example above, the ondrop attribute calls a function, drop(event):
function drop(ev) {
ev.preventDefault();
var data = ev.dataTransfer.getData("text");
ev.target.appendChild(document.getElementById(data));
}
The preventDefault() method prevents the browser's default handling of the data (default is open
as link on drop).
The dragged data can be accessed with the dataTransfer.getData() method. This method will
return any data that was set to the same type in the setData() method.
The dragged data is the ID of the dragged element ("image").
At the end, the dragged element is appended into the drop element, using the appendChild()
function.
Basic knowledge of JavaScript is required to understand and use the API.
SVG
Drawing Shapes
SVG stands for Scalable Vector Graphics, and is used to draw shapes with HTML-style markup.
It offers several methods for drawing paths, boxes, circles, text, and graphic images.
An SVG image can be added to HTML code with just a basic image tag that includes a source
attribute pointing to the image:
<img src="image.svg" alt="" height="300" />
Drawing a Circle
To draw shapes with SVG, you first need to create an SVG element tag with two attributes: width
and height.
<svg width="1000" height="1000"></svg>
</svg>
Try It Yourself
- cx pushes the center of the circle further to the right of the screen
- cy pushes the center of the circle further down from the top of the screen
- r defines the radius
- fill determines the color of our circle
- stroke adds an outline to the circle
Result:
</svg>
Try It Yourself
style="stroke:#000000; stroke-linecap:round;
stroke-width:20" />
</svg>
Try It Yourself
(x1, y1) define the start coordinates(x2, y2) define the end coordinates.
</svg>
Try It Yourself
The width and height attributes of the <rect> element define the height and the width of the
rectangle.
Ellipse
The <ellipse> is similar to the <circle>, with one exception:
You can independently change the horizontal and vertical axes of its radius, using the rx and ry
attributes.
Try It Yourself
Result:
Polygon
The <polygon> element is used to create a graphic with at least three sides. The polygon element
is unique because it automatically closes off the shape for you.
</svg>
Try It Yourself
Result:
Polygon comes from Greek. "Poly" means "many" and "gon" means "angle."