SitePoint Sponsor

User Tag List

Results 1 to 24 of 24
  1. #1
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)

    Test your CSS skills quiz #8

    Hi,

    The Search for the Holy Grail :
    I had some spare time so I devised another quick quiz that shouldn't tax you too much . This time I want you to create the famous "holy grail" 3 column layout.

    The left and right columns are 250px wide and touch the viewports side edge on both sides. The middle column merely fills the space between these 2 columns as required. Then of course we have the obligatory 100% wide footer that spans all 3 columns at the bottom and must stay below all columns irrespective of the content in each column. (That means absolute positioning is out of the question).

    Here is an image of what I want.

    Here is the image with a few simple instructions added.

    One of the problems you may encounter is that the footer will jump up over one of the columns at some screen widths. Therefore you must test at reasonable widths to ensure that the following doesn't happen:

    bad layout


    There is nothing special about this layout and I am not looking for 100% high or equalising column layouts and therefore you may be wondering that this is going to be very easy

    However as usual, there is a catch and the catch is that you have to use the html that I provide. You cannot alter the html at all and the layout must be created by manipulating the css alone. You cannot add extra classes or id's to the html content and must use what is already there.

    Here is the html provided and I have even been generous in providing you with some css to get started. You don't have to use this css and you can change it or add to it as you like but it does happen to reflect some of the css I used which may help you. You can add as much css as you like although the answer is relatively short anyway.

    Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Holy Grail Quiz</title>
    <style type="text/css">
    * {margin:0;padding:0}
    p{margin-bottom:5px;}
    #left{
        float:left;
        width:250px;
        background:#ffffcc;
    }
    #middle{
    }
    #right{
        width:250px;
        float:right;
        background:#ffcccc;
    }
    #footer{    
    }
    
    
    </style>
    </head>
    <body>
    <p id="left">This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is
        the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This
        is the left content: last word.</p>
    
    <p id="middle">This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center
        content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content
        : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : last word. </p>
    
    <p id="right">This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This
        is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content
        : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : last word:</p>
    
    <p id="footer">This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the
        footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : </p>
    </body>
    </html>
    Remember though that the html content cannot be changed. However you must allow that extra content could be added to any column and the layout must still work.

    Some of you will know the answer to this straight away so please PM me your answer and do not post in the thread and spoil it for others. There are no prizes but I will announce the first correct entries that I receive to give you lost of Kudos. The test sounds very simple but will require a little bit of lateral thinking and there may indeed be a number of solutions.

    You cannot alter the html and you can only use valid css2.1 to achieve the result (no javascript or browser tricks just valid css2.1).

    The resulting layout should work in ie6+ and firefox 1.5+ and Opera 9+ which may give you a clue that we are not looking for advanced css this time.

    General Rules:
    No frames or iframes
    No javascript or scripting of any kind
    No image alteration
    No expression,conditional comments, behaviours etc.
    Use Valid CSS 2.1
    Use Valid xhtml
    Must work in Firefox and Opera
    No outright hacks (* html or html>body however things that are normal in all browsers such as position:relative are fine)
    No finding loopholes - I'm sure you all know what I mean lol

    As usual there are no prizes other than the self-satisfaction of completing this. If you have a the answer then post a message here but PM me the solution so that other people can still have a go. I will post the winners and their solutions later.

    As with the other tests these aren't meant to be suggestions for layout but more an exercise in using css to achieve something different and having fun at the same time.

    Have fun .

    Paul

    PS. : In case you missed the other tests you can find them here:
    test 1:
    test 2:
    test 3:
    test 4:
    test 5:
    test 6:
    test 7:

  2. #2
    Non-Member deathshadow's Avatar
    Join Date
    Jul 2006
    Location
    Dublin, NH
    Posts
    901
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    No outright hacks (* html or html>body however things that are normal in all browsers such as position:relative are fine)
    That line confused me greatly... made me think you wanted it to work in IE, which without hacks it can't...

    Which is why my gut reaction was 'for **** sake, just use a table' since non-table layouts + IE without hacks = fail hard.

    Solution that works in Opera/FF sent.

    Oh wait, you say must work IE6+ above that.... Whiskey tango foxtrot.... Bah, whatever. Forget it then, not worth the effort.

  3. #3
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)
    Yes it must work in IE6+ but your solution is already very close and works fine in firefox/opera.

    Just a few tweaks and you have got it again

  4. #4
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)
    We have a winner already: Well done All4nerds

    Ben's entry fulfils all the criteria I've set and therefore has just pipped deathshadow this time who was very close also.

    Well done to both:

    I will of course leave this open for a number of days to let others stretch their minds.

    I should point out again that these tests are not supposed to be valid layout techniques but are just for fun and also for you to understand and maybe exploit browser differences so that in future you can avoid them

  5. #5
    Non-Member deathshadow's Avatar
    Join Date
    Jul 2006
    Location
    Dublin, NH
    Posts
    901
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Paul O'B View Post
    I should point out again that these tests are not supposed to be valid layout techniques but are just for fun and also for you to understand and maybe exploit browser differences so that in future you can avoid them
    Or learn something new - I didn't know one of the CSS properties could be used that way... or that it would be 'ignored' by non-IE browsers. I'd have given 10 to 1 of that messing UP Opera/FF/Safari, not being ignored outright.

  6. #6
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)
    Thank to ronw for his submission which works fine in firefox/opera but fails in IE.

    This layout seems to be stumping a few of you as I have received some PM's saying they can't work it out

    I'll leave this open for a few days before I post all the solutions.

  7. #7
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)
    I have a correct entry from Tyssen - Well done

    Anyone else got it yet?

  8. #8
    SitePoint Wizard ryanhellyer's Avatar
    Join Date
    Oct 2006
    Location
    New Zealand
    Posts
    2,323
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    LMAO, that's too hard for me. I kept thinking it was easy but my attempts came to nothing Can't wait for the solution though

  9. #9
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)
    I kept thinking it was easy
    lol - thanks for trying though

  10. #10
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)
    I have a correct entry from Simon (zcorpan) - well done

    I'll post the solutions late on Wednesday to give a few more people a chance to finish.

    Thanks to all for taking part so far

  11. #11
    padawan silver trophybronze trophy markbrown4's Avatar
    Join Date
    Jul 2006
    Location
    Victoria, Australia
    Posts
    4,108
    Mentioned
    28 Post(s)
    Tagged
    2 Thread(s)
    With a quick nudge from Paul I got this working too

  12. #12
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)
    Well done Mark

    I'll post the solution to this later today.

  13. #13
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)
    DaveFromScratch - close but no cigar

  14. #14
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)
    Ok - Its time for the solutions

    All the correct entries above used techniques from these 2 solutions posted below so I will only show these 2 as they cover all the ground.

    #1 http://www.pmob.co.uk/temp/quiz8-4.htm
    #2 http://www.pmob.co.uk/temp/quiz8-3.htm

    In order to help you understand what's going on here I will run through each demo in turn.

    Css from #1:

    Code:
    * {margin:0;padding:0}
    p{margin-bottom:5px;}
    body { padding:0 250px; }
    #left{
        float:left; 
        display:inline;
     width:250px;
     margin-left:-250px;
     background:#ffffcc;
    }
    #middle{
        float:left; 
        width:100&#37;;
    }
    #right{
     width:250px;
     margin-right:-250px;
     float:right; 
        display:inline;
     background:#ffcccc;
    }
    #footer{    
        background:red; 
        clear:both; 
        margin:0 -250px; 
        position:relative;
    }
    First thing you notice is that there is very little code required for this

    In this example the space for the left and right columns is made by increasing the body's side padding to match the column widths.
    Code:
    body { padding:0 250px; }
    The next thing we need to do is to shift the float into the body padding section and this we do with a negative margin of 250px.

    Code:
    #left{
    float:left; 
    display:inline;
    width:250px;
    margin-left:-250px;
    background:#ffffcc;
    }
    This drags the float fully into the gap made by the body padding. The display:inline is to fix the double margin bug that ie applies to floats that are adjacent to a containers edge (this is documented in the faq on floats so go and read up on it there).

    Also when using negative margins in IE it is best to add position:relative otherwise the negative part is often hidden under the background.

    The next step is to float the middle section so that it lines up next to the float and this is accomplished as follows.

    Code:
    #middle{
        float:left; 
        width:100%;
    }
    Simple enough and self explanatory but remembering that as the body has 250px side padding on the right as well then we still have a space for our third column.

    We now float the third column to the right and again use a negative margin to drag it into the space created by the body and thus allow the float to rise up level with the middle content at the same time.

    Code:
    #right{
     width:250px;
     margin-right:-250px;
     float:right; 
     display:inline;
     background:#ffcccc;
    }
    Its exactly the same technique we used for the left column so needs no further explanation.

    Lastly we place the footer underneath.

    Code:
    #footer{    
        background:red; 
        clear:both; 
        margin:0 -250px; 
        position:relative;
    }
    We simply use clear :both on the footer to make it clear the floats but that only lets the footer sit in the middle of the page. Therefore we apply negative margins to the left and right sides to drag the flooter to be 100% wide and finish the layout off nicely

    CSS from #2:

    Code:
    * {margin:0;padding:0}
    body{padding:1px;}
    p{margin-bottom:5px;}
    #left{
        float:left;
        width:250px;
        background:#ffffcc;
        margin-right:-250px;
        position:relative;
        left:-1px;top:-1px;
    }
    #middle{
     float:left;
     margin:0 254px;
     display:inline;
     position:relative;
     top:-1px;
    }
    #right{
        width:250px;
        float:right;
        margin-left:-250px;
        background:#ffcccc;
        position:relative;
        left:1px;top:-1px;
    }
    #footer{    
        border-top:1px solid #000;
        clear:both;
        background:red;
        position:relative;
        margin:0 -1px;
    }
    In this example the space for the left and right columns is produced not by using padding on the body but by applying margins to the middle element instead.

    Code:
    #middle{
    float:left;
    margin:0 254px;
    display:inline;
    position:relative;
    top:-1px;
    }
    Ignore the relative position tweaks for the moment as they are merely a fix to stabilise IE.

    The element is floated without a width but has 250px margins on either side. This basically gives you a centred float but won't allow for any content to be alongside because the margins at the side will stop that.

    To make our left and right floats slide into that margin then we use another negative margin technique but this time we apply it to the opposite side to the direction in which the element is floated. So for a float:left we apply a negative right margin equal to its width and vice versa for a float:right

    Code:
    #left{
        float:left;
        width:250px;
        background:#ffffcc;
        margin-right:-250px;
        position:relative;
        left:-1px;top:-1px;
    }
    
    #right{
        width:250px;
        float:right;
        margin-left:-250px;
        background:#ffcccc;
        position:relative;
        left:1px;top:-1px;
    }
    What this in effect does is make the floats width appear to be 0px wide. An elements width is the sum of its width + padding + border +margin and in this case that equals : 250 + 0 + 0 + -250 = 0

    Therefore we have a floated element that appears to be 0px wide in theory but because the overflow is visible then it looks on screen as though it is 250px wide as normal. However now that it is only 0px wide then it can slide all the was up next to the middle section because it will have no effect on the overall width of that section.

    You can think of the negative margin on the reverse side of the float as a means to let other content encroach on that float by the amount of the negative margin you have applied.

    In our left and right floats we have allowed the middle section to act as if the floats weren't there but in order to stop any overlap we have added the margins to the middle section as described earlier.

    This may be a difficult concept to understand and the best way to learn is to go and play around with the code until you understand what is happening. It is a useful technique but should be used carefully and sparingly as it uses undocumented behaviour to some extent although according to my reasoning it seems to follow the theory quite well.

    The last thing we do is place the footer and this is just accomplished with clear:both. I mentioned earlier about the odd 1px relative positioning that was applied to some elements and this was to fix an overlapping bug in IE which was fixed by adding 1px padding to the body.

    This of course left a 1px gap which I didn't want to I shifted everything back by 1px using relative positioning so as not to really change anything at all.

    So to recap:
    • position:relative is useful for keeping the content visible when negative margins are used.
    • display:inline is used to cure the double margin bug in IE without harming other browsers.
    • a negative margin on the same side as the direction the float will move the float completely in that direction (e.g. float:left;margin-left:-250px)
    • a negative margin on the opposite side of a float will not move the float at all but allow content to encroach on the float by the amount of the margin applied. (e.g. float:left;margin-right:-250px)
    Should you use these techniques in your layout?

    That's quite a hard question to answer and usually I would say there is no need because the above layout can be accomplished by more normal means. However there will be occasions when it comes in handy and understanding the way things work is usually 99% of the way in solving the problem.

    You should note that older mozilla does not like negative margin techniques on floats where the float is taken completely out of its container. Although it will work it will lose any influence on the design because (I guess) mozilla assumes that if its 0px wide then it is 0px high also and ignores it. newer versions are fine.

    If you look at my 3 col demo you will see i use a similar technique for the columns but I also ensure there is a 1px overlap to cater for these older browsers.

    That's about it Any questions post below and I will try to answer them.

    I hope you enjoyed this quiz. Look out for the next one in a couple of weeks time.

  15. #15
    _ silver trophy ses5909's Avatar
    Join Date
    Jul 2003
    Location
    NoVa
    Posts
    5,466
    Mentioned
    1 Post(s)
    Tagged
    1 Thread(s)
    I'll do the next challenge. I need to improve my css skills. Neat idea.
    Sara

  16. #16
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)
    Quote Originally Posted by ben
    I don’t know why Paul started with P Tags?
    That was just to make it harder

    If I had done this <div id="middle"><p>content</p></div>

    That would have allowed easier techniques to be used such as placing the negative margin on the div and then placing a positive margin on the static p to keep it clear.

    I just wanted to make it more awkward for you

  17. #17
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)
    Quote Originally Posted by ben
    Although the second example’s center makes clever use of margins, it fails in the column width department ?
    How do you mean exactly? It looks ok to me. I'm not worried about the odd pixel for this demonstration.

  18. #18
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)
    Hi Ben,

    I assume you are talking about the middle column and yes I am aware that its only the text that fills the space and the column is only as wide as the content.

    However I wasn't worried about that aspect for this demo which is why I showed this as the second solution. The first solution is more solid if a little boring

  19. #19
    Non-Member
    Join Date
    Oct 2007
    Location
    United Kingdom
    Posts
    622
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Oh Paul, I think Ive run out of CSS Tests now

    Well Ive actually learnt a lot by doing them!

    Does this pass...
    (Its very fluid and works in all browsers ive tested it in, including IE6)
    HTML Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Holy Grail Quiz</title>
    <style type="text/css">
    * {margin:0;padding:0}
    p{margin-bottom:5px; padding: 1%;}
    #left{
        float:left;
        width: 27.9%;
        background:#ffffcc;
    }
    #middle{
        float:left;
        width: 37.9%;
    }
    #right{
        width: 27.9%;
        float: left;
        background:#ffcccc;
    }
    #footer{   
    clear: both;
    background-color: red;
    }
    
    
    </style>
    </head>
    <body>
    <p id="left">This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is
        the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This is the left content: This is the left content This
        is the left content: last word.</p>
    
    <p id="middle">This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center
        content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content
        : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : This is the center content : last word. </p>
    
    <p id="right">This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This
        is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content
        : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : This is the right content : this is the right content : last word:</p>
    
    <p id="footer">This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the
        footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : This is the footer : This is the footer This is the footer : </p>
    </body>
    </html>
    Looking forward to your next CSS Challenge

  20. #20
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)
    Hi Ro0bear,

    You have a little more work to do as you have misread the instructions

    The left and right columns are 250px wide and touch the viewports side edge on both sides. The middle column merely fills the space between these 2 columns as required.
    The left and right columns must be 250px and not a percentage.

    Have another go

    Looking forward to your next CSS Challenge
    I've got one lined up for next week.

  21. #21
    Guru in training bronze trophy SoulScratch's Avatar
    Join Date
    Apr 2006
    Location
    Maryland
    Posts
    1,838
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Looking forward to your next CSS Challenge
    Ditto. Will it be during the week or weekend? ( I would favor the latter )
    Cross browser css bugs

    Dan Schulz you will be missed

  22. #22
    The CSS Clinic is open silver trophybronze trophy
    Paul O'B's Avatar
    Join Date
    Jan 2003
    Location
    Hampshire UK
    Posts
    40,343
    Mentioned
    179 Post(s)
    Tagged
    6 Thread(s)
    Quote Originally Posted by SoulScratch View Post
    Ditto. Will it be during the week or weekend? ( I would favor the latter )
    I'll try and get it together for Sunday morning.

  23. #23
    Guru in training bronze trophy SoulScratch's Avatar
    Join Date
    Apr 2006
    Location
    Maryland
    Posts
    1,838
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Awesome - that'd be great.
    Cross browser css bugs

    Dan Schulz you will be missed

  24. #24
    Non-Member
    Join Date
    Oct 2007
    Location
    United Kingdom
    Posts
    622
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Paul O'B View Post
    The left and right columns must be 250px and not a percentage.
    Ah, I thought is was a little too easy... I will try and think of a different solution to those allready submitted then.

    Quote Originally Posted by Paul O'B View Post
    I've got one lined up for next week.
    oooo goody goody


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •