Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » Auszeichnungssprachen » CSS: Bild via content: einbinden und ausrichten Antworten
CSS: Bild via content: einbinden und ausrichten

Ori
Fachidiot


Beiträge: 116


Ich möchte <button>s in verschiedene Klassen einteilen und sie mit einem 16x16-Symbol ausstatten. Erst hatte ich das Bild via background eingebunden und ausgerichtet (klappt natürlich).
Doch da die Buttons ausgefallener werden sollen und ich dafür Hintergrundbilder brauche, möchte ich sie per content-Angabe in button:before einbinden:
1: 
2: 
3: 
4: 
5: 
6: 
7: 
8:
button { border: 1px solid #666; padding: 1px 10px 2px 2px; }

button.add { border-color: #393; }
button.add:before { content: url("add.png"); }
button.add:hover { background-color: #bdb; }

button:hover { padding: 2px 11px 3px 3px; border: 0 none; }

1:
<button class="add">Hinzufügen</button>


Im Wesentlichen soll das Aussehen hinterher dem von
1:
<button><img alt="" src="add.png" style="vertical-align:bottom" />Hinzufügen</button>

entsprechen, jedoch wird das Bild nicht in der richtigen Höhe angezeigt.

Hat jemand eine Idee, wie das Bild hinzubiegen ist? (Es hat wohl damit zu tun, dass unter dem Bild ein seltsamer Abstand ist, den ich nicht herausoperieren konnte... der lässt sich mit einer border-Angabe sichtbar machen.)

Ein (nicht) funktionierendes Beispiel gibt es auch.

Diese Nachricht wurde geändert von: Ori
  Profil   E-Mail   Website   Editieren   Zitieren

Ori
Fachidiot


Beiträge: 116


Herumspielen hat eine gute Lösung für beide Browser in der <img>-Variante gebracht (vertical-align: bottom).
Durch weiteres Basteln ist auch eine Lösung für die content-Variante entstanden: Opera ignoriert bei der Ausrichtung font-size. In beiden Browsern schiebt line-height nach oben, im Firefox schiebt font-size nach unten. Da beide bei unterschiedlichen Verschiebungen starten, konnte ich es hinfummeln:
1:
button:before { margin-right: 4px; vertical-align: bottom; line-height: 8px; font-size: 10px; }


Ich habe auch noch die Angabe overflow: visible an entsprechenden Stellen hinzugefügt, damit der IE etwas weniger Platz verschwendet.


Also: Problem gelöst, auch wenn die Lösung komisch ist.

Diese Nachricht wurde geändert von: Ori
  Profil   E-Mail   Website   Editieren   Zitieren
 

Antworten
Nach oben