Standards Compliant Website Project
HTML 4.01 Templates
XHTML 1.0 and 1.1 Templates
HTML 4.01 Symbol Entities Reference
CSS Templates
- SitePoint CSS Reference
- CSS reset (latest, on Eric Meyer website)
- CSS master
- CSS reset
- CSS layout
- CSS typography
- CSS colours
- CSS sIFR
- CSS print
- CSS mobile
- CSS IE (Win all) hacks
- CSS IE7 hacks
The W3C Validation Services
Conditional Comments & Filters
Image Replacement Techniques
Miscellaneous Resources
- Microformats
- mozilla.org Markup Reference
- Newseum | The Interactive Museum of News
- A Guide to CSS Support in Email: 2007 Edition
- HTML Dog
- css-discuss
- P.I.E.
- Dive Into Accessibility
- Know Your Sources (WordPress)
- Install multiple versions of IE on your PC
- Stock.xchng (free stock photography site)
- iStockphoto.com (royalty free images and photos)
“Give layout ” to elements
The source of most of Internet Explorer’s bugs comes from an IE-only property called layout. An element can either have layout or not, which determines how an element is rendered by the browser. Most of IE bugs can be squashed by giving layout to the offending element, which is done simply by assigning one of the following properties to that element:
- position: absolute [IE 6 & 7]
- float: left [IE 6 & 7]
- float: right [IE 6 & 7]
- display: inline-table [IE 6 & 7]
- any width or height value [IE 6 & 7]
- zoom [IE 6 & 7]
- min-width [IE 7]
- max-width [IE 7]
- min-height [IE 7]
- max-height [IE 7]
- overflow [IE 7]
JavaScript
JavaScript –local scripts
JavaScript –frameworks/libraries
- base2.DOM
- Dojo
- DOMAssistant
- Ext JS
- jQuery
- MochiKit
- moo.fx
- MooTools
- Prototype
- qooxdoo
- Rico
- script.aculo.us
- The Yahoo! User Interface Library (YUI)
- SWFObject v2.0 (for embedding Flash content)
- Unobtrusive Flash Objects (UFO) v3.22 (for embedding Flash content)
Selected Content Management Systems & Blogging Engines
Tables and Forms
Sticky Footer
Solution by Steve Hatcher, http://www.cssstickyfooter.com. Works great. NOTE: No top or bottom margins or borders for these elements; if set, vertical scrollbar appears – use padding instead.
HTML:
<div id="wrap">
<div id="main">
<span>content or floated elements here</span>
</div>
</div>
<div id="footer">
<span>siteinfo</span>
</div>
CSS:
html, body, #wrap {height:100%;}
body > #wrap {height:auto;min-height:100%;}
#main {padding-bottom:140px;}/*must be same height as the footer*/
#footer {position:relative;margin-top:-140px;/*negative value of footer height*/
height:140px;clear:both;}
#main {overflow:hidden;}/*try this instead of clearfix, to clear any
floated elements inside the container*/
#main {height:1%;}/*for IE6*/
IE6 Bugs
Double-margin float bug in IE6
Add display:inline if floated elements have horizontal margins:
#element {float:left;margin-left:20x;display:inline;}
Three-pixel text jog bug in IE5-6
.myFloat {float:left;width:200px;}
p {margin-left:200px;}
.myFloat {margin-right:-3px;} /*IE6 only, if not image*/
img.myFloat {margin:0;} /*IE6 only, if image*/
p {height:1%;margin-left:0;} /*IE6 only*/
Duplicate character bug in IE6
Easiest solution is to remove comments from your HTML code (or set 3px negative right margin to the last floated element).
Alpha transparency PNG on IE5.5+/Win
#background {filter:progid:DXImageTransform.Microsoft.AlphaImageLoader
(enabled=true,sizingMethod='crop',src='myimage.png');background:none;}
Conditional code blocks for IE
<!--[if lte IE 6]>
<div class="ie">
</div>
<![endif]-->
Peek-a-boo bug in IE6
Some solutions:
- Remove background color or image on the parent element
- Stop the clearing element from touching the floated element
- Set container width
- Set container
line-height - Set
position:relativeon the floated element and its container
Miscellaneous issues
Collapsing margins
#box {margin:10px;} p {margin:20px;}
The paragraphs’s 20-pixel top and bottom margins collapse with the 10-pixel margin on the div, forming a single 20-pixel vertical margin.
Solution:
Add transparent border or 1px of padding: #box {padding:1px;}
Layouts with negative margins
Simple 2-column liquid layout where the sidebar has a preset width and the content has a liquid width of 100%:
<div id="content">
<p>Main content</p>
</div>
<div id="sidebar">
<p>Sidebar</p>
</div>
#content {width:100%;float:left;margin-right:-200px;}
#sidebar {width:200px;float:left;}
To prevent #sidebar from overlapping the text inside #content, simply add:
#content p {margin-right:210px;}