Absolute URLs provide the full path of the resource. This is usually the case if the resource is from an external domain or some other place. However, providing a fixed location to a resource will cause breakage, especially if you move things around, like say deploy your files on a production server.
For example, you work on localhost on development, and deploy to example.com. You have an index.html that loads a stylesheet named styles.css. Your absolute URL would look like this:
<link href="http://localhost/styles.css" type="text/css" />
But this only works on your local server. But when you deploy, your page will be looking for localhost - but you are in the production server already. It will break.
Relative URLs provide the path of a resource relative to the page that loaded it. It gives you more flexibility, especially when moving the page around.