Never been to TextSnippets before?

Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)

About this user

Scott

« Newer Snippets
Older Snippets »
5 total  XML / RSS feed 

tank.css

http://webhost.bridgew.edu/etribou/layouts/Tank!/index.html

@charset "iso-8859-1";

/*******************************************************************************
*  tank.css : 2005.09.01
* -----------------------------------------------------------------------------
*  
*******************************************************************************/

@import "http://webhost.bridgew.edu/etribou/layouts/rMenu/rMenu.css";
@import "http://webhost.bridgew.edu/etribou/layouts/utility_css/dropmenu.css";

/* begin with generic selectors so that they can be overridden if needed
 * by classes deeper in the stylesheet
 */
.clear
{
        clear: both;
        padding-bottom: 1px;      /* for Gecko-based browsers */
        margin-bottom: -1px;   /* for Gecko-based browsers */
}
* html .clear
{
        padding: 0;
        margin: 0;
}
.hide
{
        display: none !important;
}
.inside
{
        /* glitch in IE caused by vertical padding in this class, so 0 padding is
         * set here and those blocks that need the vertical padding must be 
         * applied to the parent element. the purpose of this class is to provide
         * horizontal padding without using hacks to get around IE's broken box 
         * model. so it's okay to apply vertical padding to the parent element, 
         * just not horizontal padding.
         */
        padding: 0 14px;
}

/* The core Tank! layout structure begins here. No surprises here. Basic
 * negative margins (skidoo) layout structure with the added benefit of
 * forcing #pageWrapper to go the full height of the viewport even if the
 * content isn't tall enough to otherwise foce that height.
 *
 * Theme-related stuff (colors, fonts, etc...) are in the tank_theme.css
 * stylesheet, although 'default' values could be included within this
 * stylesheet.
 */
html, body
{
        height: 100%; /* need to set the height on these two elements to 100%,
                           otherwise child elements such as #pageWrapper, when
                           its height is set to 100%, will only go as height as
                           the needed to contain the content within the 
                           element */
}
body
{
        margin: 0;
        padding: 0;        /* no padding here, we put it as margin values on 
                           #pageWrapper. padding/margin values here will break
                           the min-width emulation for IE */
} 
#pageWrapper
{
        border: solid 1px #000;
        border-width: 0 1px;
        margin: 0 20px 0 140px; /* this value defines the margins surrounding the
                                   layout and how much of the body element's 
                                   background color will show through. since we're
                                   using a 100% height hack, vertical margins don't
                                   belong here */
        min-width: 700px;
        width: auto;
        min-height: 100%;
        _height: 100%;  /* if we didn't use the hack, and just set height to 100%
                           then some browsers will stop the #pageWrapper block
                           at 100% the height of the window. any content that
                           doesn't fit within that space will overflow but the
                           background colors of the columns will not carry. Ugly. */
}
* html #pageWrapper
{
        word-wrap: break-word;  /* invalid CSS but keeps IE from breaking 
                                   horribly under narrow viewports */
}
#masthead
{
        padding: 10px;
        border-bottom: solid 1px #000;
}
#masthead h1, #masthead h2
{
        margin: 0;
        padding: 0;
}
#outerColumnContainer
{
        border-right: solid 16em #fff;
        z-index: 1;
}
#innerColumnContainer
{
        border-right: solid 1px #000;
        margin: 0 -1px 0 0;     /* -1px to make room for the 1px border. this is not
                                   part of the negative margins hack used to create
                                   multiple columns. */
        width: 100%;
        z-index: 2;
}
#contentColumn, #rightColumn
{
        float: left;
        overflow: visible;
        /* \*/ position: relative;      /* drop-down menus go transparent if this is 
                                           left in for IE/Mac to see. Very odd. */
}
#rightColumn
{
        margin: 0 -16em 0 1px;
        width: 16em;
}
#contentColumn
{
        margin-right: -1px;
        width: 100%;
}
* html #contentColumn
{                       /* * html #rightColumn */
        overflow: hidden;       /* this is because IE 6 and earlier do not handle overflow
                                   properly. visible overflow forces the overflowing block
                                   to grow to contain the oversized child element. this can
                                   break the layout. so we hide content. */
}
#rightColumn h3
{
        position: relative;
        z-index: 999;
}
* html #rightColumn h3
{
        display: inline-block;
}
#footer
{
        border-top: solid 1px #000;
        text-align: center;
}
#footer p
{
        /* #footer is also assigned the .inside class so padding is being 
         * applied already. we don't need the paragraph gutterspace on top 
         * of it. since the footer is only one paragraph, we can just kill 
         * all gutterspace on all p elements in #footer. but if you plan on 
         * having more than one p element, go ahead and kill this rule and 
         * remove the .inside class assignment from #footer in the HTML
         */
        padding: 0;
        margin: 0;
}

/* twoColumns class for implementing a simple 2-column structure wherever you need it
 * inside the content column. 
 */
div.twoColumns
{
        margin: 14px 0;
        width: 100%;
}
div.twoColumns div.leftColumn, 
div.twoColumns div.rightColumn
{
        float: left;
        width: 50%;
        overflow: visible;      /* fix for IE italics bug */
}
div.twoColumns div.leftColumn
{
        margin-right: -1px;
        border-right: solid 1px #000;
}
div.twoColumns div.rightColumn
{
        margin-right: -2px;
        border-left: solid 1px #000;
}
div.twoColumns div.leftColumn div.inside
{
        padding-left: 0;
}
div.twoColumns div.rightColumn div.inside
{
        padding-right: 0;
}

/* Miscellaneous things layout-related, but not core to the layout itself.
 */
p.fontsize-set, div.colorPicker
{
        _padding-top: 1px;      /* keep IE from putting in too much padding */
        text-align: center;
}
p.fontsize-set img
{
        border-width: 0;
        margin: 0 3px;
}
div.colorPicker a
{
        display: block;
        width: 12px;
        height: 12px;
        margin: 0 5px;
        float: left;
        padding: 0;
        line-height: 0;
        font-size: 0;
        background-color: #dc8; /* default color picker */
}

/* style-switcher will use anchors converted to block elements with no
 * content. set the background-color property to whatever value that particular
 * swatch should be
 */
a#colorPicker-blue
{
        background-color: #abe;
}
a#colorPicker-green
{
        background-color: #aca;
}
a#colorPicker-camille
{
        background-color: #e77;
}
a#colorPicker-gray
{
        background-color: #ccc;
}
a#colorPicker-black
{
        background-color: #000;
}

/******************************************************************************/

tank_base_theme.css

// base

@charset "iso-8859-1";

/*******************************************************************************
*  tank_base_theme.css : 2005.09.01
* -----------------------------------------------------------------------------
*  Base Tank! theme. Applied to the layout by default. Theme modifications
*  applied via a style-switcher or external stylesheet should build upon what
*  is here. 
*******************************************************************************/

@import "http://webhost.bridgew.edu/etribou/layouts/utility_css/visual_consistencies.css";

p
{
        line-height: 140%;
}
body
{
        background-color: #fec;
        color: #000;
        background-image: url("../images/ruthsarian.png");
        background-repeat: no-repeat;
        background-position: 30px 100%;
        background-attachment: fixed;
}
#topMenu ul
{
        width: 12em;    /* make the pop menus a little wider */
}
#pageWrapper, #innerColumnContainer, #masthead, #footer, #topMenu, #topMenu ul, #topMenu a
{
        border-color: #c93;
}
div.twoColumns div.leftColumn, div.twoColumns div.rightColumn
{
        border-color: #ddd;
}
#pageWrapper
{
        background-color: #f9f9f2;
        color: #665;
        font-family: arial, helvetica, sans-serif;
        font-size: 80%;
        background-image: url("../images/ruthsarian.png");
        background-repeat: no-repeat;
        background-position: -110px 100%;
}
#masthead
{
        background-color: #dc8;
        background-image: url("../images/tank.png");
        background-position: 100% 100%;
        background-repeat: no-repeat;
        padding: 10px;
        color: #000;
}
#masthead h1
{
        font-size: 150%;
}
#masthead h2
{
        font-size: 260%;
        color: #862;
}
#outerColumnContainer
{
        background-color: #fff;
        color: #223;
        border-right-color: #fff; /* right column background color */
}

#contentColumn, #rightColumn, #masthead, #footer
{
        padding-top: 10px;
        padding-bottom: 10px;
}
#contentColumn
{
        padding-top: 0;
}
#topMenu
{
        border: solid 0 #c93;
        border-width: 4px 0 0 0;
        padding-right: 40px;
}
#topMenu li a, #topMenu li a:link, #topMenu li a:visited, #topMenu li a:active
{
        background-color: #ffe;
}
#topMenu li a:hover
{
        color: #fff;
        background-color: #c93;       /* keep the same color as the borders */
}
#rightColumn ul.rMenu
{
        margin: 0 5px 10px 5px;
}
#rightColumn ul.rMenu, #rightColumn ul.rMenu li a,  #rightColumn ul.rMenu li ul
{
        border-color: #ed9;
}
#rightColumn ul.rMenu a:link, #rightColumn ul.rMenu a:visited, #rightColumn ul.rMenu a:active
{
        background-color: #ffe;
        color: #336;
}
#rightColumn ul.rMenu a:hover
{
        background-color: #c93;
        color: #fff;
}
#rightColumn h3
{
        margin-bottom: 0;
        padding-bottom: 0;
        color: #b83;
        z-index: 999;
        line-height: 0.75em;
        font-size: 140%;
        /* \*/ position: relative;        /* With this here, IE/Mac will put this on 
                                           top of every other element in the page. so
                                           drop-down menus appear under. ick. so hide
                                           it with this hack. */
}

rMenu.css

Ruthsarian Menus - A CSS-based dropdown menu system

@charset "iso-8859-1";

/*******************************************************************************
*  rMenu.css : 2006.10.17 : [email protected]
* ------------------------------------------------------------------------------
* Ruthsarian Menus - A CSS-based dropdown menu system
*
* 
*
* KNOWN BUGS
*       - Opera 7.23 and earlier have problems with absolutely positioned 
*         elements positioned relative to a parent element. this causes a
*         problem with right-aligned horizontal menus. stay away from those
*         types of menus if you've got any reason to care about Opera 7.23 or
*         earlier versions.
*
* DEV NOTES
*       - setting position: relative; to ul.rMenu triggers a bug in Netscape 7
*         and earlier that makes content jump as menus pop
*       - need to remember that when assigning multiple classes to an element
*         to list them left-to-right from most-specific to least-specific.
*         Otherwise IE/Mac flips out
*    - IE/Mac needs whitespace before <UL> and UL> tags in the markup
*         otherwise very odd things can happen
*       - hasLayout should not be triggered on LI elements under IE7
*       - IE/Mac has a selector bug where rMenu-v* and rMenu-h* rules
*      are applied to rMenu-v and rMenu-h elements. ie rMenu-vRight rules
*      get applied to rMenu-v elements. This is incorrect.
*    - if any parent element of the menu is a float it (or the parent of
*      the menu) needs to be relatively positioned. Otherwise the menu
*      is not rendered on the page.
*
* EXAMPLE HTML
*    <ul class="rMenu-hor rMenu"
*      ><li
*        ><a href="">Menu Itema
*           > 

visual_consistencies.css

visual_consistencies.css : 2005.09.07 : Ruthsarian Layouts

@charset "iso-8859-1";

/*******************************************************************************
*  visual_consistencies.css : 2005.09.07 : Ruthsarian Layouts
* -----------------------------------------------------------------------------
*  Font sizes on heading elements and the margin/padding applied to these
*  same elements will vary from browser to browser. This is an attempt to pull
*  the font sizes and spacing together for a consistent look across all
*  browsers. 
*
*  There are other rules included in this stylesheet (with comments on each)
*  to handle other visual consistency issues. You do not need to use this
*  stylesheet, nor do you need to follow it exactly. You can make changes
*  anywhere you want to make things look the way you want to. Nothing here
*  _should_ break a layout if modified.
*******************************************************************************/

ul, ol, dl, p, h1, h2, h3, h4, h5, h6
{
        /* pixels are used here, rather than ems, because I want a consistent 
         * margin on the different headings. if I use ems, 1em for an h1 element 
         * is much larger than 1em on an h6 element. I don't want this.
         */
        margin-top: 10px;
        margin-bottom: 10px;
        padding-top: 0;
        padding-bottom: 0;
}
ul ul, ul ol, ol ul, ol ol
{
        /* kill margins on sub-lists
         */
        margin-top: 0;
        margin-bottom: 0;
}
h1
{
        font-size: 240%;
}
h2
{
        font-size: 180%;
}
h3
{
        font-size: 140%;
}
h4
{
        font-size: 100%;
}
h5
{
        font-size: 70%;
}
h6
{
        font-size: 50%;
}
a, a:link, a:visited, a:active
{
        text-decoration: underline;
}
a:hover
{
        /* because I like the visual feedback a user gets when they
         * mouse over a link and see the underline of the link
         * disappear.
         */
        text-decoration: none;
}
code, pre
{
        /* Make sure we're all using the same monospaced font for CODE
         * and PRE elements
         */
        font-family: "Courier New", Courier, monospace;
}
label
{
        /* It's all about the visual feedback. In this case, label 
         * elements are usually clickable which then set focus on
         * their target. I want to show that to the user in a manner
         * they are used to and understand.
         */
        cursor: pointer;
}
table
{
        /* Some browsers won't carry the font size down into the 
         * browser like they're suppose to.
         */
        font-size: 100%;
}
td, th
{
        /* I never like or use the default vertical centering "feature"
         * provided by tables. 
         */
        vertical-align: top;
}
body
{
        /* I've seen several comments that setting the base font size to 100.1%
         * fixes some browser bugs. Which bugs? I don't know. I believe it's
         * to fix some rounding-error bugs that some browsers (Mozilla) are
         * prone to. It doesn't hurt anything, so I keep it here.
         */
        font-size: 100.1%;
}

/******************************************************************************/

Ruthsarian Layouts - Tank!

// http://webhost.bridgew.edu/etribou/layouts/Tank!/index.html

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">

<html lang="en">
        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
                <style type="text/css" media="screen">
                
                style>
                /theme/blue.css" media="screen">
                "alternate stylesheet" title="green : color" href="css/theme/green.css" media="screen">
                "alternate stylesheet" title="camille : color" href="css/theme/camille.css" media="screen">
                "alternate stylesheet" title="gray : color" href="css/theme/gray.css" media="screen">
                "alternate stylesheet" title="black : color" href="css/theme/black.css" media="screen">
                
                
                Tank! : Ruthsarian Layouts
        
        "en">
                
"pageWrapper">
"masthead">

Ruthsarian Layouts

Tank!


"hide">
"outerColumnContainer">
"innerColumnContainer">
"contentColumn">
"inside">
"twoColumns">
"leftColumn">
"inside">

Introduction

Tank! is CSS-based web page layout. The goal for this layout was to incorporate several tricks/features that help further demonstrate the versatility of CSS. These include drop-down menus, theme switching, changing font size, source ordering, transparent images, multiple columns, and hopefully some nice style.

A Work In Progress

I'm releasing this layout a little early. It's still a work in progress. IE 5.0 (for Mac OS 9 and earlier) has some severe bugs that cause the text to not appear correctly; however IE 5.2 works just fine. Netscape 7.0 has a problem with the drop-down menus where they are displayed in the flow of the document, forcing the rest of the page's content down while the drop-menu is displayed. There is no Netscape 4 specific stylesheet at the moment. NS4 users will simply see a plain page. Oh, and if you figure out my not-completely-documented dropdown system and try to apply it to the vertical menu, you may run into some problems, so I wouldn't try it right now.

Feel free to send an e-mail to ruthsarian at gmail dot com if you find other bugs that you'd like to report.

No Zip (Yet)

I'm not yet providing an archive of the layout with all the necessary CSS and JavaScript and all the paths worked out, etc.. in a single ZIP ready to go. This is because I don't consider this layout to be ready enough. If you want to take this layout for a test drive, you'll have to figure out how to pull out the CSS, HTML and JavaScript needed. This isn't hard at all, but if you don't know how then you probably aren't ready to use a layout that may still be a bit... touchy.

Short on documentation

I'll try to add more documentation to this page as I have time. Right now I'm focusing in on the more important pieces of information about this layout, rather than worry about a full write-up on all the intricacies.

"rightColumn">
"inside">

Gargoyles - Season 2, Vol. 1

"http://www.amazon.com/gp/product/B000ATQYVA/">Gargoyles - Season 2, Volume 1 was released on December 6, 2005. The DVD contains the first half (26 half-hour episodes) of the second seasion of "http://tv.disney.go.com/jetix/gargoyles/">Gargoyles. Special features include commentary on the 4-part "City of Stone", a featurette on the making of with new interviews of several cast members, and introductions of each episode by creator "http://www.s8.org/gargoyles/askgreg/">Greg Weisman.

Support / Donations

Every so often I hear from someone who offers to make a donation or asks about ways to support my work. My position, as outlined in the content of the "http://webhost.bridgew.edu/etribou/layouts/skidoo_too/gargoyles/index.html">Skidoo Too: Gargoyles layout, remains the same: I don't want money. I'm not trying to make money, I just want to share with others my own bits of work with CSS. I think the knowledge I gain from my own work is its own reward (regardless of how corny that sounds).

However, if you would like to support a cause near and dear to me, I would ask that you pick up a copy of "http://www.amazon.com/gp/product/B000ATQYVA/">Gargoyles - Season 2, Volume 1. Gargoyles is a great show, well written, and entertaining to both kids and adults. I would like to see the show continued in some manner, but to do that we need to first get "http://www.disney.com">Disney's attention. That can be done through increasing salse of the latest "http://www.amazon.com/gp/product/B000ATQYVA/">Gargoyles DVD. If it sells well enough to make a blip on the radar of Disney's executives, if they think they can make money with it, Disney might just start producing new content (episodes) of the show. That would be something I would really like to see.

So I ask that you pick up a copy of the DVD if you get the chance. I think you'll enjoy it if you take the time to watch the show. This is not just a kids' show and adults will absolutely enjoy it as much as (if not more than) children. But, if you've got no interest, the least you can do is give it to a family member or friend who might be interested, or have children. It makes a great holidy gift!

"clear">

Everything To The Right

Key design issue is that the typical vertical menu you see in many web pages is included here. What isn't typical is that this menu is moved to the right side of this layout. The horizontal menu at the top of the page is also right-aligned.

Why is this?

This goes back to an old lesson in a Photoshop 3 book I read a long time ago. It recommended you move the toolbar over to the right side of your window. The reason being that it keeps the scroll bars closer to your toolbar, creating less distance for the mouse to travel and, thus, less movement for your hand. It helps relieve a small amount of work (and stress) on the hand. It's also easier to navigate, in general, for right-handed people, which make up the majority of the people in the world. And it's something new and different so I wanted to give it a try.

That large margin/gutter/gap on the left of the layout is there to help reenforce the eyes to the right side of the page. The empty space also is a nice spot to catch when reading left to right and moving down a line. I also think it's visually interesting, but you can go ahead and delete it if you don't like it. It doesn't serve any critical function except to free up an otherwise busy layout.

Utility Stylesheets

Several stylesheets used in this layout are part of my "http://webhost.bridgew.edu/etribou/layouts/utility_css/">utility stylesheets collection. The point of these stylesheets is that they provide specific functionality that I use in several layouts. Rather than keeping several different copies of (basically) the same stylesheet, I've put them into one place. That way if a bug pops up in the drop-down menu stylesheet, I can fix one stylesheet and all my layouts that use it will be immediately updated.

JavaScript

The goal is to rely on CSS as much as possible and to keep the layout functional even without JavaScript enabled. Despite this constant goal with all "/etribou/layouts/">Ruthsarian layouts, there is a fair amount of "/etribou/layouts/javascript/ruthsarian_utilities.js">JavaScript used in this layout. A lot of it is there to provide a helping hand to some browsers that either don't support full CSS or have a broken implementation of some CSS features.

For example, IE does not support the :hover

pseudoclass on
elements other than anchor tags. As a result, the drop-down menus don't work. JavaScript
is used to apply an extra CSS class to list items while the mouse is over the element
to emulate the
:hover
pseudoclass. Position and appearence of the drop-down
menus is handled by CSS. If/When IE supports the
:hover
pseudoclass, this
bit of JavaScript can be removed and the drop-down will function completely without
JavaScript. Drop-down menus will work fine with FireFox
and several other new generation browsers without that JavaScript.



Other implementations of JavaScript in the layout bring functionality most likely already
available through a browser menu option into the page itself. One example of this is
the style switcher. Several browsers already support the switching or application of alternate
stylesheets (if defined) to a web page. The style switcher provides a different interface to
this feature. The same with the font size changing system. Almost all browsers offer a feature
to increase the base font size of the browser. This font size system just brings that interface
into the web page.



The point is this: you can remove all JavaScript from this layout and it will still
function. The only thing you lose is some ease-of-use accessories for the user and/or
minor compatibility issues that, by themselves, will not break the layout.



Quick Bits



Cookies are used to store the prefered font size and style so it remains through each
page visit.



If the page has short content the footer will
fill in the space between the bottom of the layout and the bottom of the
browser window.



Style switcher and font size setter HTML are created via JavaScript
document.write()
.
This way users who do not have JavaScript enabled will not see the interface for this JavaScript
dependant features.



The name Tank! comes from the song by the same name recorded by the Seatbelts. It is the
theme song to the anime series Cowboy Bebop. I was listening to that song when I decided
to finally name this layout. If you haven't, I highly recommend picking up Cowboy Bebop,
both the DVDs and the soundtracks (of which there are many).










Stylesheets




Theme Styles




JavaScript


    > >ruthsarian_utilities.js >


References


    > >css-discuss.org > >CSS Filters >
  • Piefecta Demo Layout > >Douglas Livingstone's 3-Column Layout > >456 Berea Street > >Explore Color >


Menu Example


    >
  • >Layouts
      > >Tank! > >Gargoyles > >Skidoo Too >
    • >Skidoo
        > >Fixed Width > >Fluid Fixed Width > >Detached Masthead > >Border Into Masthead > >Background Images > >Gutterless > > >
      • >Experiments
          > >Plaine > >Nausicaä > >Bob > > > > > >Labs >
        • >Blog
            > >Web of Information > >Cold Fusion > >Informational > > > > >



















to html layouts Ruthsarian by dividespace on Oct 27, 2006
« Newer Snippets
Older Snippets »
5 total  XML / RSS feed