Elementmarkierung unschön
Paul
- browser
0 Cheatah0 Gunnar Bittersmann0 Paul0 zaphod19841 Paul
0 Paul
Morgen!
Der Firefox (3.6.3) markiert mir im nachfolgenden Beispiel den Knopf nachdem ich draufklicke mit einem senkrechten Strich in der Mitte. Warum und wie kann ich das abstellen?
------------------------------------------------------------
<html><head><title>Test</title>
<style>
.klappButton {
width:17px; height:17px;
background-image:url(ausklappen.jpg); background-repeat:no-repeat; background-position:center center;
background-color:#FFFFFF;
cursor:pointer;
}
</style>
<script type="text/javascript">
function klapp(button) {
button.style.backgroundImage = "url(einklappen.jpg)";
}
</script>
</head><body>
<button type="button" class="klappButton" onclick="klapp(this);" >
</body></html>
------------------------------------------------------------
Paul
Hi,
Der Firefox (3.6.3) markiert mir im nachfolgenden Beispiel den Knopf nachdem ich draufklicke mit einem senkrechten Strich in der Mitte. Warum und wie kann ich das abstellen?
Schritt 1: Validiere den Code.
Cheatah
@@Paul:
nuqneH
<button type="button" class="klappButton" onclick="klapp(this);" >
Invalides HTML; das </button>
-End-Tag fehlt.
Dein 'button'-Element hat keinen Inhalt. Gib ihm mal welchen:
<button type="button" class="klappButton" onclick="klapp(this);">klapp</button>
Dann siehst du, dass aus der Linie ein Rechteck wird. Fokussierte Buttons erhalten (wie fokussierte Links auch) 'outline', damit man auch bei Navigation mit anderen Eingabegeräten als der Maus (Tastatur bspw.) sieht, welches Element gerade den Fokus hat.
Darauf sollte man nicht verzicheten.
Qapla'
Invalides HTML; das
</button>
-End-Tag fehlt.
Das stimmt.
Dein 'button'-Element hat keinen Inhalt.
Stimmt auch. Allerdings bekommt der Button bei mir per css ein backgroundImage. Dann muss ich dieses Image wohl nicht als background sondern als Inhalt des Button setzen. Damit wird das ändern des Bildes aber etwas umständlicher. Vorher hab ich per js einfach den background gewechselt wenn man draufklickt. Jetzt muss ich wohl das child-Element des Buttons ändern.(?)
Paul
Mahlzeit Paul,
Dein 'button'-Element hat keinen Inhalt.
Stimmt auch. Allerdings bekommt der Button bei mir per css ein backgroundImage. Dann muss ich dieses Image wohl nicht als background sondern als Inhalt des Button setzen.
Nein, solltest Du nicht. Bilder, die allein der Verzierung dienen, sollten immer Hintergrundbilder sein.
Schreib doch stattdessen das in den Inhalt des Buttons, was seiner Bedeutung am nächsten kommt (z.B. "Speichern" o.ä.) und blende diesen Text per CSS aus ... so sehen sehende Leute mit CSS-sprechenden Browsern hübsche Knöpfe und nicht-sehende Leute oder solche mit Browsern, die aus welchen Gründen auch immer kein CSS interpretieren, können mit den Knöpfen trotzdem etwas anfangen.
Außerdem würde sich so Dein vermutetes Problem ...
Damit wird das ändern des Bildes aber etwas umständlicher. Vorher hab ich per js einfach den background gewechselt wenn man draufklickt. Jetzt muss ich wohl das child-Element des Buttons ändern.(?)
... in Wohlgefallen auflösen.
MfG,
EKKi
@@EKKi:
nuqneH
Nein, solltest Du nicht. Bilder, die allein der Verzierung dienen, sollten immer Hintergrundbilder sein.
Wenn das Bild die Funktion des Buttons beschreibt, dient es wohl kaum allein der Verzierung.
Ein 'img'-Element wäre schon angebracht. Mit sinnvollem @alt-Text.
Qapla'
Dann siehst du, dass aus der Linie ein Rechteck wird. Fokussierte Buttons erhalten (wie fokussierte Links auch) 'outline', damit man auch bei Navigation mit anderen Eingabegeräten als der Maus (Tastatur bspw.) sieht, welches Element gerade den Fokus hat.
Darauf sollte man nicht verzicheten.
Wenn man es dennoch los werden will kann man für den Feuerfuchs
outline:0
angeben, dadurch haben Elemente mit dem Focus die gepunktete Linie nicht mehr.
Ob das schön ist oder nicht, sinnvoll oder nicht, darüber lässt sich natürlich streiten.
Moin,
wie Du schon sagst ist das nicht besonders benutzerfreundlich. Werd ich also nicht machen aber trotzdem Danke für den Hinweis.
Das Problem ist, dass der Button eine Größe von 17x17 px hat. Damit ist er für den FF zu klein zum ordentlichen markieren und so zeichnet der FF nur eine Linie auf den Knopf wenn dieser den focus hat.
Vergrößert man den Button auf z.B. 20x20 px dann kommt der FF langsam damit klar und fängt an die Markierung auch in die Breite zu ziehen.
Paul