Add display:inline-block to your brtop rule.
.brtop {
margin-top:5px;
display:inline-block;
}
/* html5doctor.com Reset v1.6.1 - http://cssreset.com */
html,
body,
div,
span,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
abbr,
address,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
samp,
small,
strong,
sub,
sup,
var,
b,
i,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section,
summary,
time,
mark,
audio,
video {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent
}
body {
line-height: 1
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
display: block
}
nav ul {
list-style: none
}
blockquote,
q {
quotes: none
}
blockquote:before,
blockquote:after,
q:before,
q:after {
content: none
}
a {
margin: 0;
padding: 0;
font-size: 100%;
vertical-align: baseline;
background: transparent
}
ins {
background-color: #ff9;
color: #000;
text-decoration: none
}
mark {
background-color: #ff9;
color: #000;
font-style: italic;
font-weight: bold
}
del {
text-decoration: line-through
}
abbrMargin-top not working with
<form name="messageform">
<fieldset>
<label for="username">Name:</label>
<br/>
<input type="text" name="username" />
<br/>
<label for="email" class="brtop">Email:</label>
<br/>
<input type="text" name="email" />
</fieldset>
<fieldset>
<label>Message:</label>
<br/>
<textarea name="message" cols="20" rows="4"></textarea>
</fieldset>
</form>
Since your label is displaying as an inline element, the top margin won’t have any effect.
Margin properties specify the width of the margin area of a box. The
‘margin’ shorthand property sets the margin for all four sides while
the other margin properties only set their respective side. These
properties apply to all elements, but vertical margins will not have
any effect on non-replaced inline elements.
– W3