A Killer Collection of Global CSS Reset Styles

Published Tuesday, October 23, 2007 @ 8:14 am • 51 Responses

[ Globe Icon ] Using CSS to style semantically meaningful (X)HTML markup is an important key to modern web design practices. In a perfect world, every browser would interpret and apply all CSS rules in exactly the same way. However, in the imperfect world in which we live, quite the opposite frequently happens to be the case: many CSS styles are displayed differently in virtually every browser.

Many, if not all, major modern browsers (e.g., Firefox, Opera, Internet Explorer, Netscape, et al) implement their own generalized CSS rules, which often conflict with designer-applied styles. Other browsers fail to implement properly various CSS rules, making a mess of pages that happen to display perfectly in other browsers. Even worse, some browsers completely ignore specific aspects of CSS altogether, entirely ignoring widely accepted CSS attributes and properties.

Needless to say, the unpredictable manner in which browsers implement CSS requires us to seek realistic browser equalization strategies. Without relying on JavaScript to synthetically embellish default browser functionality, we focus our browser neutralization efforts entirely on CSS itself. By using an appropriately defined set of CSS “reset” rules, it is possible to override default browser styles and effectively neutralize behavior, allowing us to build our CSS on a uniform foundation.

Using a well-crafted set of global CSS reset styles enables designers to make assumptions about the defualt behavior of browsers. These presentational assumptions greatly simplify the process of creating a “universally” consistent CSS design using only one set of CSS rules. Such process simplification results in great savings of time and money. Many of the industry’s top designers have been using CSS reset styles for years, reaping the rewards and sharing the results.

In this article, I have rounded up a hand-selected collection of freely available global CSS reset styles. I have used each of these resets on various occasions with great success, and have even managed to scrape together a customized hybrid that cannibalizes key aspects of various others. For each reset, I provide as much information as possible concerning the source of the reset, key effects, and other essential information. Also, as I do not know the orignal author for some of these resets, please drop a comment if you happen to know. And so, without further ado, I present a killer collection of global CSS reset styles..

Minimalistic Reset — Version 1

As basic as it gets, this global reset employs a wildcard selector to reset the padding and margins on all elements to zero. In my experience snooping around the source code of other designers, this is the most commonly used CSS reset. I see it everywhere..

* {
	padding: 0;
	margin: 0;
	}

Minimalistic Reset — Version 2

This reset is identical to the previous one, but also takes into account all default border treatments, which are effectively neutralized to zero as well..

* {
	padding: 0;
	margin: 0;
	border: 0;
	}

Minimalistic Reset — Version 3

This last version of the “minimalistic” reset is similar to the previous two, but also kills the default outline style..

* {
	outline: 0;
	padding: 0;
	margin: 0;
	border: 0;
	}

Condensed Universal Reset

This is my current favorite CSS reset. It handles all the essentials, and ensures relatively universal default browser-style uniformity.

* {
	vertical-align: baseline;
	font-weight: inherit;
	font-family: inherit;
	font-style: inherit;
	font-size: 100%;
	border: 0 none;
	outline: 0;
	padding: 0;
	margin: 0;
	}

Poor Man’s Reset

I have no idea what to call some of these CSS reset rules. I named this one as I did because it seems to focus on a minimal collection of default browser styles. The CSS resets padding and margins on only the html and body elements; ensures that all font-sizes are reset; and removes the border from image links. These are all important aspects of any CSS design, and this reset takes care of all of them. If you happen to know the source of this ruleset, please drop us a comment. Otherwise, check it out..

html, body {
	padding: 0;
	margin: 0;
	}
html {
	font-size: 1em;
	}
body {
	font-size: 100%;
	}
a img, :link img, :visited img {
	border: 0;
	}

Siolon’s Global Reset

Chris Poteet along with “various influences” created this remarkable technique for resetting default browser styles. Chris recommends placing the reset at the top of your style sheet for optimal cascading results. This method omits reset styles involving inline and block display elements. Also, remember to explicitly set margin and padding styles after implementing the reset. Note the unique margin-left 40px; declaration for lists and blockquotes, and the margin 20px 0; for headings, forms, and other elements:

* {  
	vertical-align: baseline;  
	font-family: inherit;  
	font-style: inherit;  
	font-size: 100%;  
	border: none;  
	padding: 0;  
	margin: 0;  
	}  
body {  
	padding: 5px;  
	}  
h1, h2, h3, h4, h5, h6, p, pre, blockquote, form, ul, ol, dl {  
	margin: 20px 0;  
	}  
li, dd, blockquote {  
	margin-left: 40px;  
	}  
table {  
	border-collapse: collapse;  
	border-spacing: 0;  
	}

Shaun Inman’s Global Reset

Although I am not sure if Shaun actually wrote this particular CSS ruleset (although it is likely he did), it happens to be the CSS reset used to neutralize styles for his current, Helvetica/monochrome site. Although I have taken the liberty of restructuring the presentation of this reset for the sake of clarity (I have made no functional changes), this is some pretty tight CSS, implementing a choice set of rules to reset many critical default browser CSS styles.

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, 
form, fieldset, input, p, blockquote, table, th, td, embed, object {
	padding: 0;
	margin: 0; 
	}
table {
	border-collapse: collapse;
	border-spacing: 0;
	}
fieldset, img, abbr {
	border: 0;
	}
address, caption, cite, code, dfn, em, 
h1, h2, h3, h4, h5, h6, strong, th, var {
	font-weight: normal;
	font-style: normal;
	}
ul {
	list-style: none;
	}
caption, th {
	text-align: left;
	}
h1, h2, h3, h4, h5, h6 {
	font-size: 1.0em;
	}
q:before, q:after {
	content: '';
	}
a, ins {
	text-decoration: none;
	}

Yahoo CSS Reset

The folks at Yahoo! have also developed their own browser reset styles. As with other reset styles, the Yahoo! Reset CSS eliminates inconsistently applied browser styling for many key (X)HTML elements.

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td { 
	padding: 0;
	margin: 0;
	}
table {
	border-collapse: collapse;
	border-spacing: 0;
	}
fieldset,img { 
	border: 0;
	}
address,caption,cite,code,dfn,em,strong,th,var {
	font-weight: normal;
	font-style: normal;
	}
ol,ul {
	list-style: none;
	}
caption,th {
	text-align: left;
	}
h1,h2,h3,h4,h5,h6 {
	font-weight: normal;
	font-size: 100%;
	}
q:before,q:after {
	content:'';
	}
abbr,acronym { border: 0;
	}

Eric Meyer’s CSS Reset

As discussed in the original article, CSS guru Erik Meyer set forth to create a universal set of reset styles. This is heavy-duty stuff, effectively neutralizing virtually every significant aspect of default, browser-applied CSS rules. This reset ruleset is far-reaching, resetting many different CSS properties. Keep this in mind during subsequent CSS development. If you experience unexpected, unexplainable behavior happening with your styles, begin by investigating and eliminating suspected aspects of this code (or any newly added reset styles) as the possible culprit — you’ll thank yourself later.. ;) In the meantime, I have taken the liberty of reformatting the presentation of Eric’s code. Rest assured, the rules have merely been rearranged. Functionally, the code is identical. Update: Eric’s site now features an official Meyer CSS Reset page, serving as a permanent location for the most current version of the reset code.

html, body, div, span, applet, object, iframe, table, caption, tbody, tfoot, thead, tr, th, td, 
del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, 
h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, 
dl, dt, dd, ol, ul, li, fieldset, form, label, legend {
	vertical-align: baseline;
	font-family: inherit;
	font-weight: inherit;
	font-style: inherit;
	font-size: 100%;
	outline: 0;
	padding: 0;
	margin: 0;
	border: 0;
	}
/* remember to define focus styles! */
:focus {
	outline: 0;
	}
body {
	background: white;
	line-height: 1;
	color: black;
	}
ol, ul {
	list-style: none;
	}
/* tables still need cellspacing="0" in the markup */
table {
	border-collapse: separate;
	border-spacing: 0;
	}
caption, th, td {
	font-weight: normal;
	text-align: left;
	}
/* remove possible quote marks (") from <q> & <blockquote> */
blockquote:before, blockquote:after, q:before, q:after {
	content: "";
	}
blockquote, q {
	quotes: "" "";
	}

Condensed Meyer Reset

Although I am uncertain as to the original source of this particular CSS reset, it appears as if it is a condensed, slightly modified version of the Meyer reset. Many of the same declarations are made, and many of the same styles receive neutralizing treatments. Many attributes are not mentioned, however, resulting in more streamlined, less invasive reset collection. Note the duplicate declarations for the heading attributes (e.g., h1 - h6), which seems to prevent font-weight and font-size normalization from affecting paragraphs, divisions, and the other non-heading attributes addressed in the first declaration.

body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, 
pre, form, fieldset, input, textarea, p, blockquote, th, td { 
	padding: 0;
	margin: 0;
	}
fieldset, img { 
	border: 0;
	}
table {
	border-collapse: collapse;
	border-spacing: 0;
	}
ol, ul {
	list-style: none;
	}
address, caption, cite, code, dfn, em, strong, th, var {
	font-weight: normal;
	font-style: normal;
	}
caption, th {
	text-align: left;
	}
h1, h2, h3, h4, h5, h6 {
	font-weight: normal;
	font-size: 100%;
	}
q:before, q:after {
	content: '';
	}
abbr, acronym { 
	border: 0;
	}

Tantek’s CSS Reset

Dubbed “undohtml.css”, Tantek’s CSS Reset is a solid choice for removing many of the most obtrusive default browser styles. This reset removes underlines from links and borders from linked images, eliminates padding and margins for the most common block-level elements, and sets the font size to 1em for headings, code, and paragraphs. As an added bonus, Tantek’s reset also “de-italicizes” the infamous address element! Nice :)

Here is the commented version as provided via Tantek’s site:

/* undohtml.css */
/* (CC) 2004 Tantek Celik. Some Rights Reserved.                  */
/* http://creativecommons.org/licenses/by/2.0                     */
/* This style sheet is licensed under a Creative Commons License. */
/* Purpose: undo some of the default styling of common (X)HTML browsers */

/* link underlines tend to make hypertext less readable, 
   because underlines obscure the shapes of the lower halves of words */
:link,:visited { text-decoration:none }

/* no list-markers by default, since lists are used more often for semantics */
ul,ol { list-style:none }

/* avoid browser default inconsistent heading font-sizes */
/* and pre/code too */
h1,h2,h3,h4,h5,h6,pre,code { font-size:1em; }

/* remove the inconsistent (among browsers) default ul,ol padding or margin  */
/* the default spacing on headings does not match nor align with 
   normal interline spacing at all, so let's get rid of it. */
/* zero out the spacing around pre, form, body, html, p, blockquote as well */
/* form elements are oddly inconsistent, and not quite CSS emulatable. */
/*  nonetheless strip their margin and padding as well */
ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,body,html,p,blockquote,fieldset,input
{ margin:0; padding:0 }

/* whoever thought blue linked image borders were a good idea? */
a img,:link img,:visited img { border:none }

/* de-italicize address */
address { font-style:normal }

/* more varnish stripping as necessary... */

Here is the Tantek reset, reformatted and with explanatory comments removed:

/* undohtml.css */
/* (CC) 2004 Tantek Celik. Some Rights Reserved.                  */
/* http://creativecommons.org/licenses/by/2.0                     */
/* This style sheet is licensed under a Creative Commons License. */

:link, :visited {
	text-decoration: none;
	}
ul, ol {
	list-style: none;
	}
h1, h2, h3, h4, h5, h6, pre, code, p {
	font-size: 1em;
	}
ul, ol, dl, li, dt, dd, h1, h2, h3, h4, h5, h6, pre, 
form, body, html, p, blockquote, fieldset, input {
	padding: 0;
	margin: 0;
	}
a img, :link img, :visited img {
	border: none;
	}
address {
	font-style: normal;
	}

The Tripoli Reset

The Tripoli Reset by David Hellsing is part of a complete CSS standard for (X)HTML rendering. By neutralizing browser-default CSS styles, Tripoli “forms a stable, cross-browser rendering foundation for your web projects.” After resetting CSS styles, Tripoli’s generic.css rules may be used to “rebuild” the browser defaults for content typography. Some of the more prominent reset features include:

  • white-space in all code tags
  • disabling of the <hr> element
  • all text reset such that 1em equals 10px
  • targeted disabling of deprecated elements: <marquee>, <blink> and <nobr>
  • inclusion of deprecated elements: <listing>, <xmp> and <plaintext>
  • disabling of the <font> tag and other deprecated elements
  • ..plus much more!

Here is the commented version of the Tripoli Reset as provided at David’s site:

/*
    Tripoli is a generic CSS standard for HTML rendering. 
    Copyright (C) 2007  David Hellsing

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

* { margin: 0; padding: 0; text-decoration: none; font-size: 1em; outline: none; }
code, kbd, samp, pre, tt, var, textarea, input, select, isindex, listing, xmp, plaintext { font: inherit; font-size: 1em; white-space: normal; }
dfn, i, cite, var, address, em { font-style: normal; }
th, b, strong, h1, h2, h3, h4, h5, h6 { font-weight: normal; }
a, img, a img, iframe, form, fieldset, abbr, acronym, object, applet, table { border: none; }
table { border-collapse: collapse; border-spacing: 0; }
caption, th, td, center { text-align: left; vertical-align: top; }
body { line-height: 1; background: white; color: black; }
q { quotes: "" ""; }
ul, ol, dir, menu { list-style: none; }
sub, sup { vertical-align: baseline; }
a { color: inherit; }
hr { display: none; } /* we don't need a visual hr in layout */
font { color: inherit !important; font: inherit !important; color: inherit !important; } /* disables some nasty font attributes in standard browsers */
marquee { overflow: inherit !important; -moz-binding: none; }
blink { text-decoration: none; }
nobr { white-space: normal; }

/*

CHANGELOG

23/8-07

Added deprecated tags <listing>, <xmp> and <plaintext> in the code block

Resorted to normal white-space in all code tags

Disabled the deprecated <marquee>, <blink> and <nobr> tag in some browsers

*/

Here is the Tripoli Reset, reformatted and with explanatory comments removed:

/*
    Tripoli is a generic CSS standard for HTML rendering. 
    Copyright (C) 2007  David Hellsing

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

* {
	text-decoration: none;
	font-size: 1em;
	outline: none;
	padding: 0;
	margin: 0;
	}
code, kbd, samp, pre, tt, var, textarea, 
input, select, isindex, listing, xmp, plaintext {
	white-space: normal;
	font-size: 1em;
	font: inherit;
	}
dfn, i, cite, var, address, em { 
	font-style: normal; 
	}
th, b, strong, h1, h2, h3, h4, h5, h6 { 
	font-weight: normal; 
	}
a, img, a img, iframe, form, fieldset, 
abbr, acronym, object, applet, table {
	border: none; 
	}
table {
	border-collapse: collapse;
	border-spacing: 0;
	}
caption, th, td, center { 
	vertical-align: top;
	text-align: left;
	}
body { 
	background: white; 
	line-height: 1; 
	color: black; 
	}
q { 
	quotes: "" ""; 
	}
ul, ol, dir, menu { 
	list-style: none; 
	}
sub, sup { 
	vertical-align: baseline; 
	}
a { 
	color: inherit; 
	}
hr { 
	display: none; 
	}
font { 
	color: inherit !important; 
	font: inherit !important; 
	color: inherit !important; /* editor's note: necessary? */ 
	}
marquee {
	overflow: inherit !important;
	-moz-binding: none;
	}
blink { 
	text-decoration: none; 
	}
nobr { 
	white-space: normal; 
	}

Note: Thanks to eliosh for bringing the Tripoli Reset to our attention!

Surely, this list will be updated with additional reset styles as they are discovered. Any suggestions?


Dialogue

51 Responses Jump to comment form

1Chris Hansen

October 23, 2007 at 8:59 am

Wow! - Great article! - Thanks for collecting all these examples in one place and explaining them all. - I’ve saved this article to my del.icio.us collection.

2Louis

October 23, 2007 at 10:09 am

Sure it’s a good idea to gather many css reset rules in a post, but some analysis would’ve been great. Help us find the light, or at least, let’s start a conversation on this subject.

I would like to underline that the first rule which uses the * wild card, make the browser apply the rule to all elements in the page, slowing down the loading. It’s something to keep in mind when building heavy websites.

3Perishable

October 23, 2007 at 9:16 pm

Chris, thanks for the positive feedback — I wrote this article for that very purpose: so people could bookmark it as a reference and refer to it whenever some tuf CSS neutralization is in order ;)

Louis, thanks for the constructive criticism — your feedback provides ideas and helps to improve the site. I agree that more discussion about CSS reset styles is needed. I will keep this in mind and perhaps break down a few CSS resets in future posts. Also, interesting point about the wildcard selector — it would be interesting to determine the extent to which loading times are increased, if it is even measurable..

4H5N1

October 28, 2007 at 11:24 am

I often used a modified version of Erik Meyer’s CSS and sometime the condensed one.
I also knew YUI reset CSS.
Whit this post you gave me an accellent inspiration and I’ve condensed a mix of useful (to me) reset styles. From now I will use my new CSS-reset style.

5Perishable

October 28, 2007 at 3:13 pm

Thanks for the feedback, H5N1!
I am glad you found the reset styles useful — it sounds like you have put them to good use ;)
— Cheers!

6Tom Brickman

November 9, 2007 at 3:04 am

Fantastic guide. This is certainly the end to all my heading-tag margin and padding woes.

Does this solve the problem of the silly invisible minimum height of 20px on tags in IE6?

7Perishable

November 11, 2007 at 3:50 pm

Hi Tom, thanks for the comment. I am not sure about the minimum height question. Could you provide a reference?

8H5N1

November 11, 2007 at 5:10 pm

Sorry Tom, but a bug is a bug! :)
No way to solve it in this case.
The bug depends on haw Microsoft intended the BOX model: a box, for IE 6, cannot have a height that is lower that the content font-size.
I mean, the 20px minimum height bug is because normal font-size in IE is 20px :)
So the minimum height of a box is the minimum height space required to write a line in. :)

9Tom Brickman

November 12, 2007 at 4:05 am

Interesting! Thanks for the reply.

And I suppose there isn’t any CSS reset which will deal with this font-size? E.g. font size zero?

10H5N1

November 12, 2007 at 4:13 am

Hey Tom, you got it!!! :)

font-size : 0;
line-height : 0;

will solve it, but i cannot suggest to put this in a reset-style module :)

11Simon James

February 26, 2008 at 12:57 pm

Perishable, thanks for posting this. I certainly will bookmark this and use it as reference - I frequently need that CSS neutralization! Nice one.

12Perishable

February 26, 2008 at 4:57 pm

Thanks Simon — glad to be of service!

13Marlyse Comte

March 2, 2008 at 10:48 am

Jeff, thank’s for dropping by and leaving the link to this great collection! Haha, yes, the minimalistic reset is one I know really well :-)

14Dwayne Charrington

March 3, 2008 at 12:36 am

This was a great post. I am a professional Web Designer here in Brisbane, Australia and I have also wondered also which is the better reset method.

For the sake of cleanliness I also use the * to reset all styles. This does have a drawback of speed and I don’t recommend it for large scale projects that are constantly being loaded because that’s a lot of lost time.

- Dwayne Charrington.
http://www.dwaynecharrington.com

15Perishable

March 3, 2008 at 8:32 am

I like to use the wildcard operator for simple adjustments involving the essentials: padding, margin, and border. Occasionally I will add additional styles, but will generally switch to a more comprehensive reset if more specific styles are needed. Great to hear from you, Dwayne — thanks for sharing!

16Gordon

March 5, 2008 at 1:33 pm

Shaun’s code is certainly comprehensive and certainly improves on a lot of others I have seen.

17Perishable

March 5, 2008 at 3:38 pm

Yes, Shaun’s design work clearly demonstrates his grasp of CSS. It may be overkill on smaller sites, but for large projects, it’s definitely an effective way to build on a “clean” foundation.

18Xstamper

March 10, 2008 at 3:57 pm

Great article of actual value. The outline reset is very important in my humble opinion. Thanks.

19Perishable

March 10, 2008 at 5:03 pm

Very kind of you! I too find the outline reset to be extremely useful. Regardless of which CSS reset styles I decide to use, I (almost) always include an outline reset. Here is one of my favorites:

* {
     padding: 0;
     outline: 0;
     margin: 0;
     border: 0;
}

20eliosh

March 11, 2008 at 4:56 am

Give a view also to Tripoli CSS Framework and it’s reset styles…

21Perishable

March 12, 2008 at 1:30 pm

Thanks for the tip, eliosh — I will be adding the Tripoli CSS Framework to the CSS Reset article next week. Cheers!

22Perishable

March 23, 2008 at 9:56 pm

..and done! The article is updated to include both the Tripoli Reset and Tantek’s Reset. I have also added a link to the recently established, permanent home for the ever-improving Meyer reset. Thanks again for the tip, eliosh — it is much appreciated! :)

23Adam Hyman

April 3, 2008 at 4:19 pm

I’m just learning CSS and this is a bit over my level, but its nice to look at, so I can see some more advanced stuff.

I think looking at it, and working my way through the code enhances my understanding…. which helps me code, even if I’m coding at a lower level.

24Perishable

April 23, 2008 at 7:33 am

@Adam: yes, by all means keep learning! CSS is powerful stuff that can transform a website from “oh well” to “oh boy!” ;) Thanks for the comment!

25John

May 14, 2008 at 1:04 am

Tripoli Reset is a good solution for crossbrowser HTML mark-up.

26Ant Tyler

June 20, 2008 at 5:29 am

Interesting stuff, I like contrast and detail within the comparisons. particularly like the tripoli and Meyer approaches.
Ant

27Perishable

June 22, 2008 at 7:36 am

Thanks for the feedback, Ant! Btw, I edited your comment to include several instances of missing “c” characters, including the “.co” in your commentator link. Not sure what was up, but you may want to check your keyboard for faulty/missing keys.
Cheers,
Jeff

28Dan

July 1, 2008 at 3:13 pm

I have an idea for a CSS reset that I’m pretty sure hasn’t been tried yet. Anytime I’ve used the CSS reset code, I end up specifying all the rules myself anyway explicitly — so when I remove the reset the page display doesn’t change.

I was thinking, what if there was a CSS reset that made everything so ugly and obviously messed up that you had to explicitly set everything to make the page look the way you want it.

The idea with this is that you actually remove the “screwed up” CSS reset before deploying, and if you did it right, then the page should display the same with or without the reset file.

29Perishable

July 2, 2008 at 9:46 am

@Dan: not sure if you are joking here or not, but the idea is a great example of “out-of-the-box”, (so to speak) creative-type thinking. One reason why I would not use such a method — especially on complex/preexisting sites — is that, if I happened to miss some hideous selector or element before final presentation, the client and/or users would eventually discover what to them would look like a horrible mistake. This could work against your reputation, depending on the ghastliness of the overlooked item. Another reason that comes to mind after having used resets for quite a few sites, is that many of the items that are reset actually stay that way, requiring no further attention. It would thus be a bit of a waste of time to have to to (re)fix selectors unnecessarily. Just a thought.

30Sashi

July 28, 2008 at 10:11 pm

Fantastic Stuff!!!. Kudos to you guys. Excellent job.

Subscribe to comments on this post


[ Comments are closed for this post. ]

If you have additional information, contact me.

← Previous post • Next post →

« Rocking the BoatNew Version of BlogStats PCC for WordPress 2.3 »

Contact Perishable Press

  • Contact Jeff via form

Search Perishable Press

About Perishable Press

Perishable Press is the virtual playground of Jeff Starr — visionary, founder and lead developer of Monzilla Media, a small web and graphic design company in the lush desert oasis of Moses Lake, Washington. Perishable Press features articles and tutorials on many aspects of digital design..

Read more..

Perishable on Twitter

missing my brain today

Perishable on Tumblr

No Plugin Needed for Feed Delay

Monday, 24 November 2008, 10:01 am

I recently saw a WordPress plugin that was designed to delay the publication of your WordPress feed by any specified time interval. While it is a good idea to carefully proofread your content before posting it, a plugin certainly is not required to do so.

As savvy WordPress users already know, WordPress has a built-in post-preview feature that enables authors to view their unpublished content as a published post. This enables authors to do any amount of proofreading and browser checking until they are satisfied with the results.

To do this, simply write your post as usual, and then click on the “Preview this post” button on the right-hand side of the screen. In older versions of WordPress (less than 2.5, I think), you actually need to save (without publishing!) the post first and then re-open it as if to continue editing. You will then see a “Preview »” link sort of hidden (due to poor CSS design) in the upper-right corner near the edit post field. Right-click on that link to open in new tab and you are good to go.

No extra plugin needed! :)

PHP Echo Shortcut

Sunday, 23 November 2008, 6:29 pm

Quick PHP shortcut to save a few keystrokes:

We can write this:

To replace this:

How to Close your Windows Live ID and Hotmail Account

Sunday, 9 November 2008, 6:06 pm

After deciding to stop using Hotmail, I went ahead and tried to close my newer Hotmail accounts. Unfortunately, the process of closing the accounts was a dreadfully convoluted experience, mostly due to the fact that these newer Hotmail accounts are acutally two accounts in one: one is associated with a Windows Live Hotmail account, and the other associated with a Windows Live ID account.

Whatever. After spending twenty minutes trying to figure out how to close the account(s), I decided I had better share the information for future reference. I mean, for crying out loud, Microsoft has convoluted the process to the point of absurdity. It’s like going on a damn treasure hunt! Don’t believe me? Check it out:

Login to your Hotmail account. In the upper right-hand corner, click on “Options” and then on the “More Options” link in in the drop-down panel. Then, under the “Manage your account” section, click on “View and edit your personal information”. From there, click on “Settings” in the left sidebar. Under “Additional options”, click on “Close account”. But wait, you’re not done yet!

On the “Are you sure you want to close your account” page, read everything and then enter your password for verification. If the Live ID account was not associated with a Hotmail account, you should see a success message. If your account was associated with a Hotmail account, you will see a message that says: “Cannot close your account”. Read the paragraph; in it, you will find a link to close your associated Microsoft Live Hotmail account. Click it.

The next screen gives a final warning that you are about to close your Windows Live Hotmail account (as if you didn’t know by now!). Read everything and then click “Close account” to finally close the damn account. And, believe it or not, that’s all there is to it! ;)

Goodbye, Hotmail

Sunday, 9 November 2008, 5:15 pm

Over the years, I have accumulated a large number of free Hotmail accounts. Several of these accounts were created over seven years ago, long before Microsoft made their first major overhaul to the Hotmail service. The overhaul happened quietly around five years ago (if I remember correctly), and directly affected the way in which all future Hotmail accounts operated.

One of the differences between the (very) old accounts and those established after Microsoft changed everything, is the way in which Thunderbird (and various other open-source email applications) is able to process emails from either type of account. For some reason, all of my old Hotmail accounts are processed perfectly well from within Thunderbird; however, those accounts created within the last several years do not play nice at all.

Unlike the older accounts, which are completely synchronized and integrated into Thunderbird, the newer accounts continually throw errors whenever they are checked for new email. These errors are usually associated with good ‘ol Hotmail not accepting any preset passwords, which must be re-entered manually every time email is checked. Needless to say, this behavior is very inconvenient. Meanwhile, the older accounts function flawlessly.

To get the Hotmail accounts to work at all with Thunderbird, two extensions are required, Webmail and its Hotmail-specific add-on. These two extensions enable users to integrate and process their Hotmail accounts along with all of their other email accounts. At first, the Webmail extensions worked perfectly with all Hotmail accounts; then, after a year or so, the newer Hotmail accounts stopped working. After upgrading the Webmail extensions, the newer Hotmail accounts would work, but then another year or so later, the same thing would happen all over again.

Occasionally, I have been able to get the newer Hotmail accounts to work by rolling back the Webmail extensions to previous versions, but this does not always work. Frankly, I suspect that the good ‘ol boys down at the Hotmail factory purposely tweak the system settings such that Hotmail is incompatible with free, open-source email applications like Thunderbird. I don’t know, but one thing is certain, the changes are happening on the Hotmail side of the fence, and they are changing their settings either deliberately or without concern for non-Outlook users.

So, as I find this cycle having come full-circle again, I am once again unable to check emails on newer Hotmail accounts. The bad news is that I am plumb out of previous Webmail extensions to try, and there aren’t any new versions to check out. So, as of today I am officially dumping all of my newer Hotmail accounts. I no longer have the patience or free time to spend fiddling things, trying to second-guess periodic changes on the Hotmail server. I will certainly keep the older accounts for as long as they continue to work, but the newer accounts are just not worth the effort. So, goodbye, Hotmail, I will never open another account with you again.

Transparent Division Recipe

Wednesday, 15 October 2008, 7:59 pm

I am getting so old that I need to make recipes of my design stunts so I don’t have to relearn them from scratch every time. Sad, but so are a lot of things..

In any case, here is the basic procedure for creating the transparent panels used in my current (Quintessential) design:

  1. Open main design template
  2. Verify proper widths via existing images
  3. Create guides according to desired width(s)
  4. Create a rounded-corner vector shape of 10-pixel radius
  5. Rasterize vector shape
  6. Set outer-glow layer style (normal, 33, 3, 7)
  7. Create new empty layer and merge with panel layer
  8. Magic-wand select panel area at 1%, no anti-aliasing
  9. Add layer mask to reveal all
  10. Ctrl+Gradient tool from panel top to desired fade
  11. Duplicate layer as new document
  12. Crop and match desired size

From there, it should be self-explanatory. If not, perhaps it’s time to pursue an alternate line of employment..

Read more on Tumblr..

Subscribe to Comments Recent Dialogue

  • Best Trends Blog: Keep up the great work ;)...
  • Drew17: I don't know about anyone else here but my favorite song is learning to fly. Although I do admit the middle of the song is just no...
  • Jeff Starr: @Erik Vold: That's great! I tried getting the regular expression to match against attribute values containing additional terms (e.g.,...
  • jorge orejel: hola quiero instalar varios subdirectorios con wordpress ejemplo: www.payastitlan.com.mx/ www.payastitlan.com.mx/pestanin/ www...
  • Alexander: Thanks for the heads up! I actually tested it and it worked fine, I also followed your advice and removed the condition and everythi...
  • Jeff Starr: @H5N1: Great to see you again! :) Sorry to hear about the ISA server issues.. it seems like we have had ...
  • Jeff Starr: @Alexander: Firstly, depending on the number of categories you have, implementing htaccess redirects for each of them should result i...
  • Jeff Starr: @Fred: By all means, remove any lines that cause your server to crash. Unfortunately, when it comes to blacklisting, it is practicall...
  • Jeff Starr: @kevin: My pleasure! Thanks for dropping by :)...
  • Vika: Скажите как вам удается писать такие интересные тексты?...

Read more recent comments..

Attention: Do NOT follow this link!