Starting Now: iLoveCoding courses are completely FREE. No login or signup required.

Relative vs Absolute Paths - linking continued

See the difference between two kinds of paths. relative and absolute paths

FREELevel: Beginner5:50 mins
Course content
Lessons #1: Tools you need for the HTML/CSS course FREE
1:59 mins
Lessons #2: Overview of the VS Code Text Editor FREE
4:57 mins
Lessons #3: Code your first webpage FREE
3:59 mins
Lessons #4: What is HTML Really? FREE
3:16 mins
Lessons #5: What does HTML look like? FREE
2:46 mins
Lessons #6: HTML Elements FREE
7:20 mins
Lessons #7: HTML Elements - Continued FREE
3:36 mins
Lessons #8: Common HTML Elements (Cheatsheet included) FREE
3:26 mins
Lessons #9: HTML is a forgiving language FREE
3:47 mins
Lessons #10: Basic Markup of HTML FREE
5:18 mins
Lessons #11: The <h1>...<h6>, <i> and <strong> elements FREE
5:18 mins
Lessons #12: Learn to link webpages via the anchor <a> element FREE
4:04 mins
Lessons #13: Relative vs Absolute Paths - linking continued FREE
5:50 mins
Lessons #14: <div> and <span> elements FREE
6:36 mins
Lessons #15: Making lists in HTML via <ul>, <ol> and <li> elements FREE
5:36 mins
Lessons #16: Making nested lists + Homework FREE
4:31 mins
Lessons #17: Adding special characters in your webpage FREE
5:50 mins
Lessons #18: Emmet shortcuts and code comments FREE
3:37 mins
Lessons #19: <meta> elements and what they are about FREE
3:19 mins
Lessons #20: <meta> description and keyword elements for SEO FREE
3:33 mins
Lessons #21: <blockquote> and <pre> elements for special text formatting FREE
5:43 mins
Lessons #22: Adding images with the <img> element FREE
5:11 mins
Lessons #23: Using <video> and <audio> elements FREE
5:56 mins
Lessons #24: Semantic Elements + Homework FREE
4:26 mins
Lessons #25: Intro to CSS - Making the webpages beautiful FREE
4:22 mins
Lessons #26: Intro to CSS continued FREE
4:10 mins
Lessons #27: <style> element & using CSS selectors FREE
5:38 mins
Lessons #28: Organize your CSS is its own file FREE
4:55 mins
Lessons #29: CSS id selector (# hash sign) FREE
4:20 mins
Lessons #30: CSS class selector (. dot sign) FREE
3:52 mins
Lessons #31: Select all elements with asterisk (*) selector FREE
0:58 mins
Lessons #32: Using multiple selectors together (using comma and more) FREE
4:40 mins
Lessons #33: CSS Combinators selectors (~ + > etc.) FREE
7:50 mins
Lessons #34: Pseudo Selectors (:visited: :hover :active :focus) FREE
6:04 mins
Lessons #35: Chrome Developer Tools - Intro FREE
6:43 mins
Lessons #36: Colors in CSS FREE
3:19 mins
Lessons #37: Apply multiple CSS classes + write notes with code comments FREE
2:59 mins
Lessons #38: Fonts: Change & add custom fonts FREE
6:20 mins
Lessons #39: Background CSS Property. Change color, images and more FREE
7:39 mins
Lessons #40: Common CSS Units - (px, em, rem, %) FREE
7:01 mins
Lessons #41: Common CSS Units - (rem) FREE
2:39 mins
Lessons #42: CSS Margin and Padding FREE
9:49 mins
Lessons #43: CSS border property FREE
4:00 mins
Lessons #44: CSS border style FREE
2:05 mins
Lessons #45: Size elements with 'width' and 'height' property FREE
3:21 mins
Lessons #46: Use 'box-sizing' for more control on element sizing FREE
3:43 mins
Lessons #47: 'border-radius' Curve borders and make custom shapes. FREE
7:58 mins
Lessons #48: <div> vs <span> the real difference FREE
4:36 mins
Lessons #49: Using 'display' property of CSS & 'inline-block' FREE
3:19 mins
Lessons #50: 'float' & 'clear' property - Moving elements around. FREE
4:38 mins
Lessons #51: Hide content with `overflow`, `visibility` and `display` property FREE
3:36 mins
Lessons #52: Clearfix: Hack to fix webpage spacing issue FREE
3:51 mins
Lessons #53: Project: Blog Design - Create beautiful looking website FREE
5:20 mins
Lessons #54: Project: Blog Design (Part 2/7) - Layout the HTML FREE
9:09 mins
Lessons #55: Project: Blog Design (Part 3/7) - Styling the header FREE
4:01 mins
Lessons #56: Project: Blog Design (Part 4/7) - Styling main and footer area FREE
4:02 mins
Lessons #57: Project: Blog Design (Part 5/7) - Styling sidebar FREE
3:10 mins
Lessons #58: Project: Blog Design (Part 6/7) - Styling articles FREE
2:17 mins
Lessons #59: Project: Blog Design (Part 7/7) - Additional Pages FREE
5:13 mins
Lessons #60: 'position' - Control element position within your page FREE
8:10 mins
Lessons #61: Project: Coupon (using `absolute` & `relative` position) FREE
5:21 mins
Lessons #62: CSS Flexbox & CSS Grid - More layout methods FREE
3:02 mins
Lessons #63: CSS Priority Order FREE
6:04 mins
Lessons #64: Additional Resources - Codepen + HTML Cheatsheet FREE
5:18 mins
Lessons #65: <table> Making tables in HTML FREE
5:32 mins
Lessons #66: <table> Making tables in HTML continued FREE
2:41 mins
Lessons #67: <iframe> Embedding other webpages in your webpage FREE
4:16 mins
Lessons #68: Creating forms and understanding how they work FREE
11:17 mins
Lessons #69: Creating form - continued FREE
6:41 mins
Lessons #70: Using external CSS libraries in your projects FREE
6:42 mins
Lessons #71: Conclusion and next steps FREE
3:28 mins
πŸ˜‡Important: This course is FREE and always will be πŸ™Œ. Feel free to share it with friends. 🎁

HTML Cheatsheet

CSS Cheatsheet

HTML CSS Cheatsheet thumb

Video Lesson Transcript

Relative Path

Now let's say you have a very big website with a lot of pages. So let's suppose that there is an About, and a Portfolio page, there is a sub portfolio, and there are projects.

There is so much going on, what should you do? You should organize your pages inside folders.

You are going to create a folder called projects. Let's say you want to display projects of yours to different people right?

So inside "projects" I am just going to create a folder, and you have multiple pages for these projects. So let's name a file "clienta.html" for client A information, "clientb.html" for a different client, and so forth.

Code for clienta.html:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>
      Client A
    </title>
  </head>
  <body>
    <h1>Client A</h1>
    <a href="index.html">Go to home</a>
  </body>
</html>

Code for clienta.html:

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>
      Client B
    </title>
  </head>
  <body>
    <h1>Client B</h1>
    <a href="index.html">Go to home</a>
  </body>
</html>

You have these two pages, but we want to link to these pages, let's say from the home page. So I am going to go to the home page, and what do we do to link it to pages which are inside a folder?

<!DOCTYPE html>
<html lang="en">
  <head>  
    <title>
      Client B  
    </title>  
  </head>  
  <body>  
    <h1>Hi My name is Aziz</h1>  
    <a target="_blank" href="https://www.google.com">Click me please</a> 

    <a href="about.html">Go to about</a>  
    <a href="clienta.html">Go to Client A</a>  
    <a href="clientb.html">Go to Client B</a>  
  </body>  
</html>  

So for the text of the link we can simply put in "Client A" and "Client B", and for the href we can put clienta.html, and clientb.html.

Let's see what happens when I refresh:

Using a relative anchor link

When I click over here, it says "Your file was not found".

Error using relative path

And the reason for that is because when you are linking files or pages, you want to mention the location of that particular file, relative to the page you are on.

Now what does that mean? That means that this page index.html and all the other files, are inside this first-page folder.

All the files inside the 'first-page' folder

Right now if you want to link from the index.html to the projects folder and inside it the clienta.html file. You want to mention that from this index.html page go to the projects folder, "/" (slash) inside the clienta.html. Like such:

 
    <a href="about.html">Go to about</a>
    <a href="projects/clienta.html">Go to Client A</a>
    <a href="projects/clientb.html">Go to Client B</a>
  </body>
</html>

Just do the same thing for "Client B", and now let's see if it works.

result after clicking a correct relative link

And you see "Client A" shows up.

Going back from a sub-folder

Now the next thing that I want to tell you, is if from clienta.html which is a sub page, you want to go "up" a level and go back to index.html. How do you do that?

    <h1>Client B</h1>  
    <a href="index.html">Go to home</a>  
  </body>  
</html>  

This link is not going to work, because it actually says to go to index.html. So from this page which is clientb.html, relative from this, you want to go up one folder, to the first-page folder and inside it, the index.html is there.

So if you want to go up one folder, you always do ../ (dot, dot, and slash).

    <h1>Client B</h1>  
    <a href="../index.html">Go to home</a>  
  </body>  
</html>  

That tells you ok, wherever you are from, in our case clientb.html, go not in this folder, but up one folder.

showing the structure of the project pages

So as you can see folder structure, that's our application.

So if I save, and I do the same thing in Client A as well because it's in a sub-folder.

    <h1>Client A</h1>
    <a href="../index.html">Go to home</a>
  </body>
</html>

And now if I click over here it's actually going to go up one folder to the right location of index.html. So that's how you link via the <a> element.

The difference between Relative and Absolute path

The URLs which are relative to a particular location, are called relative paths.

The links which are directly going to a particular location like this particular URL: <a target="_blank" href="https://www.google.com">Click me please</a> is not relative.

These are called absolute paths, because they have the absolute location to an URL.

So let's say if you want to link to iLoveCoding, and to a sub-page like this: <a target="_blank" href="https://ilovecoding.com/pages/about.html">Click me please</a>

This is an absolute path because this has the absolute location where you want to go, it's not a relative location.

 
    <a href="about.html">Go to about</a>  
    <a href="projects/clienta.html">Go to Client A</a>  
    <a href="projects/clientb.html">Go to Client B</a>   

The above are relative locations. Now the browser is smart enough to distinguish between absolute and relative paths. Paths that start with http, or https are absolute paths, everything else is treated as a relative path.

All right. so that's pretty much it for this video, I am going to talk to you in the next.

Become a confident software developer with mentor support!
Get Started
Already have an account? Please Login