Hallo,
ich versuche einen maximal ergonomischen, schönen Button zu bauen, mit Hover-Effekt, und dabei so viel Code wie möglich von der HTML-Datei fernzuhalten. Ich wünsche mir komplett via CSS gehen zu können, hab aber im Moment noch einen merkwürdigen Pixel Abstand den ich nicht recht nachvollziehen kann (Firefox 12). Außerdem ist bis jetzt nur ein zweiter grafischer Zustand fürs geklickt seien ("active") drin:
index.html:
style.css:
bg_button_a.bmp (19x64):
bg_buttonspan.bmp (509x64):
Das Ergebnis:
Wie man sieht ist da ein Versatz drin. Tatsächlich scheint der linke Teil nach unten gerutscht zu sein, außerhalb des eigentlichen Bereiches des Buttons, da der Bereich wo der Button auf Klick reagiert bereits in dem weißen horizontalen Ein-Pixel-Abstand oben links beginnt.
(Der "Klick-Punkt" liegt im oben-linkesten schwarzen Pixel des Maus-Cursors, unter Windows zumindest, afaik.)
Ich vermute der Abstand kommt durch das display: block, was aber notwendig ist da die Darstellung sonst wesentlich übler ausfällt.
Weiß da jemand Rat? Danke im Vorraus!
MfG, Zyl
P.S.: Eine gute Lösung um die Auswahl-Outline wegzubekommen würde ich außerdem auch willkommen heißen.
ich versuche einen maximal ergonomischen, schönen Button zu bauen, mit Hover-Effekt, und dabei so viel Code wie möglich von der HTML-Datei fernzuhalten. Ich wünsche mir komplett via CSS gehen zu können, hab aber im Moment noch einen merkwürdigen Pixel Abstand den ich nicht recht nachvollziehen kann (Firefox 12). Außerdem ist bis jetzt nur ein zweiter grafischer Zustand fürs geklickt seien ("active") drin:
index.html:
HTML:
<!DOCTYPE html>
<html>
<head>
<title>Button-Test</title>
<link type="text/css" rel="stylesheet" href="style.css">
</head>
<body>
Der Button:<br>
<br>
<button type="button" class="mybutton" title="Click to log in to the server."><span>Log in</span></button>
</body>
</html>
style.css:
Code:
* {
margin:0px;
padding:0px;
}
button.mybutton {
font: normal 12px arial, sans-serif;
height: 32px;
padding: 0 16px 0 0;
text-decoration: none;
background: transparent url('bg_button_a.bmp') no-repeat top right;
border: 0;
}
button.mybutton span {
display: block;
line-height: 22px;
padding: 5px 0 5px 18px;
background: transparent url('bg_button_span.bmp') no-repeat top left;
}
button.mybutton:active {
background-position: bottom right;
}
button.mybutton:active span {
background-position: bottom left;
padding: 6px 0 4px 18px; /* push text down 1px */
}
bg_button_a.bmp (19x64):

bg_buttonspan.bmp (509x64):

Das Ergebnis:

Wie man sieht ist da ein Versatz drin. Tatsächlich scheint der linke Teil nach unten gerutscht zu sein, außerhalb des eigentlichen Bereiches des Buttons, da der Bereich wo der Button auf Klick reagiert bereits in dem weißen horizontalen Ein-Pixel-Abstand oben links beginnt.
(Der "Klick-Punkt" liegt im oben-linkesten schwarzen Pixel des Maus-Cursors, unter Windows zumindest, afaik.)
Ich vermute der Abstand kommt durch das display: block, was aber notwendig ist da die Darstellung sonst wesentlich übler ausfällt.
Weiß da jemand Rat? Danke im Vorraus!
MfG, Zyl
P.S.: Eine gute Lösung um die Auswahl-Outline wegzubekommen würde ich außerdem auch willkommen heißen.