Using Template System for CSS Designed Web Page

Using Template System for CSS Designed Web Page


In the last post on Creating
Simple Template Based Website
we designed a simple Template System,
if you remember its layout was designed using a Table. While tables can be used
to design page layout, it’s not the standard way and has got many problems
associated, instead Cascading Style Sheets or CSS should be used. If at all
I’m going to give an introduction to CSS now, I’d say it is a way
of styling pages and page elements. Even if you don’t know about CSS (and
I’m not discussing much about it here) you’ll understand this post
and how CSS can be used for designing page layout.


So let’s begin!


Below is the CSS coded version of the web page that we deigned in the previous
post:



<html>

<head>

<title>CSS Coded Web Page</title>

<style>

#page{

    width: 90%;

    height: 90%;

    border: 1px solid #000;

}

#header{

    height: 90px;

    border-bottom: 1px solid #000;

    background: #cccccc;

}

#content{

    width: 100%;

    height: 90%;

}

#body{

    float: left;

}

#sidebar{

    float: right;

    width: 25%;

    height: 100%;

    border-left: 1px solid #000;

}

#footer{

    width: 100%;

    text-align: center;

    border-top: 1px solid #000;

    

}

</style>

</head>



<body>

<div id="page">

    <div id="header">

        <h1>My Website</h1>

    </div>

    

    <div id="content">

        <div id="body">

            <p>Blah</p>

        </div>

        

        <div id="sidebar">

        <ul>

            <li><a href="#">Link1</a></li>

            <li><a href="#">Link1</a></li>

        </ul>

        </div>

    </div>

    

    <div id="footer"> 

        <p>Copyright &copy; 2008 </p>

    </div>

</div>

</body>

</html>



It creates a page with the same layout as the one designed with table, it looks
something like the image below:


Using Template System for CSS Designed Web Page



Let’s discuss something about the code. #page, #header, #content etc.
defined are CSS codes defined inside <style></style> HTML tags.
Those are known as IDs (#header ones) in CSS. We’ve given special properties
like border, width, height etc. to those IDs. The IDs will be used to define
and divide parts of the page to have different height, width etc. now coming
to the HTML part, we are dividing parts of the page with the <div> tag
giving each of them different IDs as defined in CSS. This way we can define
or divide various parts of a page with different areas, positions and properties
such that we get the layout as required.


Having CSS hard-coded into pages though, is not a good idea especially when
HTML provides an easy way to include a separately created CSS file into pages
with the following code:


<link rel="stylesheet" href=”style.css” />


Now most of the things being clear, we create the different files namely header.php,
footer.php, sidebar.php and style.css fior the above designed web page. [Refer
to Using
'require' to Create a Simple Template System for Websites
for more
information.]


header.php:
    


    <div id="header">

        <h1>My Website</h1>


    </div>


sidebar.php:


     <div id="sidebar">


        <ul>

            <li><a href="#">Link1</a></li>


            <li><a href="#">Link1</a></li>


        </ul>

     </div>


footer.php:


    <div id="footer"> 

        <p>Copyright &copy; 2008 </p>


    </div>

</div>

</body>

</html>


style.css:


#page{

    width: 90%;

    height: 90%;

    border: 1px solid #000;

}

#header{

    height: 90px;

    border-bottom: 1px solid #000;

    background: #cccccc;

}

#content{

    width: 100%;

    height: 90%;

}

#body{

    float: left;

}

#sidebar{

    float: right;

    width: 25%;

    height: 100%;

    border-left: 1px solid #000;

}

#footer{

    width: 100%;

    text-align: center;

    border-top: 1px solid #000;

    

}


So from the above files we can create as many pages as we’d like using
the following form:



<html>

<head>

<title>CSS Coded Web Page</title>

<link rel="stylesheet" href="style.css" />

</head>



<body>

<div id="page">

    <?php require('header.php'); ?>

    

    <div id="content">

        <div id="body">

            <p>Blah</p>

        </div>

        

        <?php require('sidebar.php'); ?>

    </div>

    

<?php require('footer.php');


All the pages would have consistent looks.


Previous Articles:


Check out this stream