"Universal" links in HTML? [duplicate] - html

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Include one HTML file in another HTML file
On each of the pages on my website I have a footer that contains about 12 links. Every time I want to change a link, I have to do it on every single page. Is it possible to make it so I can somehow change the link in one place and it changes on every page? Thanks.

This exact problem is the beauty of serverside scripting, where you can define a header file that each page pulls from when it is retrieved, allowing you to change a single file and have the changes propagate your entire website.
This is what it could look like in PHP:
header.php - Link
all_other_pages.php - <?php include header.php; ?> ...

the better approach is use the mvc architecture for that . and you can do it by creating the separate php file and include them
like for header header.php for wrapper wrapper.php and for footer footer.php and to show a pagge just include or require them
like index.php
<?php
require"header.php"; // for the header of the page
require"wrapper.php";
require"footer.php"; // for the footer of the page
you can also make function of header() and footer() so you can also include many more function in a file and it reduce the amount of file also you only need to include the one file with function
index.php
<?php
require"function.php";
header(); // for the header of the page
require"wrapper.php";
footer(); // for the footer of the page
in above approach the code of header and futtor will be universal for all website what you need to change is the chande the code in wrapper.php

You don't need to do server side programming to fix this (though you can do), you can do it perfectly fine in the browser with a little javascript.
For example:
at the bottom of each page:
<div class="page-footer"/>
<script src="footer.js"></script>
in footer.js something along the lines:
$(".page-footer").append("<ul><li><a href='about.html'>About</a></li></ul>");

If you can use a server side include or other server side programming then yes, otherwise it isn't posible with straight HTML. You could include the footer in an IFRAME such that each page loads the same footer page, but this is far from an ideal solution.

Related

How to apply elements in common in several HTML pages

I have a page which has a top and a bottom is common for all pages.
I'd had copied the top and bottom and paste them to all new pages created on the site and an idea came to me that this is not a good practice.
Then I thought of the following problem: if I add edit, add, or remove something in the top or bottom, I will have to make this change for all pages on the site.
Is there any way to create a template with these elements in common, in this case top and bottom, and then all pages that are created will be based on this template?
Hence, if I need to edit something, I just edit it in the template that reflects on all pages.
example:
If you are not using any framework, the easiest way that I can think of to achieve this would be to use PHP, but you will need a server application like XAMPP, LAMPP to run your application locally.
Simply, create 2 files, header.php and footer.php, these files will have the top and bottom parts of your HTML codes. And the other files will will have names like, index.php, about.php etc.
In the index.php put this code whereever you want the top part of your code to be rendered (in your case, the first line of index.php),
<?php include header.php; ?>
and for the bottom part (which will be at the very end of the index.php),
<?php include footer.php; ?>

How to load different parts of a web-page from different html files

I am making a local website where I have a number of pages with a lot of common code for header, navigation bar and footer.
I was wondering if there was a way I could use to store the header, footer and other such codes as independent html files, and then simply link them in the code for the new page.
You can use server-side includes for using an HTML file into another one. For that, you'll have to make a few changes in your server configuration as well. I'll show you an example of Apache.
Change configuration as mentioned in https://www.linuxtopia.org/HowToGuides/apache_ssi.html
Include the below code in your html file and replace "included.html" with your section html filename
<!--#include file="included.html" -->
Check more on : https://en.wikipedia.org/wiki/Server_Side_Includes

HTML headers and footers: edit multiple files from one place

I am currently coding up my own website (basically a personal blog) w/ HTML5 and CSS3. However, the growing number of .html files (blog posts and other stuff) quickly raised a problem: say if I want to change something in my page header / footer (which I want to keep the same across the entire site), I would have to edit every .html file to get this done. Is there anyway that this process can be simplified to a one-time action? Mostly, I write html files in Brackets. Thanks in advance!
Why not save the files as .php, create another file for the header and footer, and include the header and footer ( <?php include 'header.php'; ?> ) files from each of the main files?

Default HTML Page?

Alright, I don't know how exactly I'm going to phrase this, so bear with me here. Is there a way to set a default HTML page? Like is there a line of code that I can use on new html files to load a local .html file for almost a template?
Use any sever-side programming language to include header and footer parts of your default webpage.
Example on PHP:
<?php
echo file_get_contents("header.html")
?>
Your page contents
<?php
echo file_get_contents("footer.html")
?>
You can set default html page in your webserver. But that's just if someone hits http://server/ with no page name it tells what page to use like http://server/index.html versus http://server/default.apx, etc. Has nothing to do with templates.
If you want to be able to include html files inside other html files, you probably need a serverside language like ASP, PHP, JSP. HTML itself doesn't have that capability, although some webservers might offer a custom tag that is translated on server-side for includes.
The default web page on a server must have the name index.html, index.htm or sometimes default.htm. It is possible to change the server to accept other file names as default files, but those are the most commonly used ones. What is the index.html page?
If you're asking how to make your web browser open a default page when you open it, this is usually called the "Home Page" and any file or page that you can visit in your browser you can assign as the home page.
If you're trying to create a template for a web page, there are many ways to do it. The PHP example listed above is one way. You can also do it with JavaScript. Write your HTML in document.write() calls inside a file named navigation.js and then place this script where you want that code displayed:
<script type="text/javascript" src="navigation.js"> </script>
However, this is not unobtrusive and could cause problems. Another way to do it is with Server Side Includes. Write a file named navigation.ssi and then add the following SSI line to your HTML where you want the included file to display:
<!--#include virtual="/ssi/navigation.ssi" -->
You can also do it with ASP and other methods. I explain in more detail in my article How Do I Include One HTML File in Another?

HTML - constant headers/auto updating headers?

Is it possible in HTML to create a constant header? e.g. a header that you only write in one file and goes out to all the sub webpages on the website instead of having to update like 200 webpages if you want to change the header?
Not with purely html no,
However with a little php you could.
Create a Header.php and put your header code in there.
each of your .html files becomes a .php
so you can then do
<?php include('Header.php'); ?>
Now any time you change Header.php every page gets the change.
Note: If your running this locally you will need a local "server" to run php, I personally use WampServer