form p {
	position: relative;
}

label {
	clear: both;
}

p input[type=checkbox], p input[type=radio]
{
	padding: 0;
	margin: 2px 6px 0 0;
	vertical-align: middle;
}

p:not(#foo) > input[type=checkbox], p:not(#foo) > input[type=radio] {
	position: absolute;
	float: left;
	left: 0;
	opacity: 0;
}

p:not(#foo) > input[type=checkbox] + label:before, p:not(#foo) > input[type=radio] + label:before
{
	width: 16px;
	height: 18px;
	vertical-align: middle;
	margin-right: 6px;
	content: "";
	background: url(../../spr.png) 0px 0px no-repeat;
	display: inline-block;
}

/* Checked styles */
p:not(#foo) > input[type=checkbox] + label:before                 { background-position: 0px    0px; }
p:not(#foo) > input[type=checkbox] + label:hover::before          { background-position: 0px  -20px; }
p:not(#foo) > input[type=checkbox] + label:active::before         { background-position: 0px  -40px; }
p:not(#foo) > input[type=checkbox]:checked + label:before         { background-position: 0px  -80px; }
p:not(#foo) > input[type=checkbox]:checked + label:hover::before  { background-position: 0px -100px; }
p:not(#foo) > input[type=checkbox]:checked + label:active::before { background-position: 0px -120px; }

p:not(#foo) > input[type=radio] + label:before                    { background-position: 0px -160px; }
p:not(#foo) > input[type=radio] + label:hover::before             { background-position: 0px -180px; }
p:not(#foo) > input[type=radio] + label:active::before            { background-position: 0px -200px; }
p:not(#foo) > input[type=radio]:checked + label:before            { background-position: 0px -240px; }
p:not(#foo) > input[type=radio]:checked + label:hover::before     { background-position: 0px -260px; }
p:not(#foo) > input[type=radio]:checked + label:active::before    { background-position: 0px -280px; }
