Das User-Agent-Stylesheet für Chrome gibt allen Ecken eines <select>
Elements einen Rahmenradius von 5 Pixel . Ich habe versucht, dies zu beseitigen, indem ich einen Radius von 0 Pixel über mein externes Stylesheet sowie inline auf das Element selbst angewendet habe. Ich habe beides ausprobiert border-radius:0px
und -webkit-border-radius:0px;
das noch spezifischere ausprobiert border-top-left-radius:0px
(zusammen mit dem -webkit-Äquivalent).
Keiner arbeitet.
Wenn ich das Element in den Entwicklertools des Webkits untersuche, listet der berechnete Stil den Radius immer noch als 5 Pixel auf. Wenn ich jedoch auf den Erweiterungspfeil daneben klicke, um die Details anzuzeigen, wird Folgendes angezeigt: element.style - 0px. Und darunter zeigt es die externe CSS-Spezifikation, die ich von 0px gegeben habe, zusammen mit der User-Agent-Stylesheet-Spezifikation von 5px. Und diese beiden letzteren sind durchgestrichen, wie sie sein sollten.
Irgendwelche Ideen?
Antworten:
Dies funktioniert bei mir (formatiert das erste Erscheinungsbild, nicht die Dropdown-Liste):
http://jsfiddle.net/fMuPt/
quelle
border: 0
eine Gliederung verwenden und hinzufügen wie:outline: 1px inset black; outline-offset:-1px
background-color: #yourbg
undborder-style: none
erstellen Sie ein Div direkt vor dem Dropdown-Menü mitposition: absolute
undborder-bottom: 1px solid #youpick
unddisplay: inline
. Pfeile erhalten, UX unversehrt, besser zu reparieren.Nur meine Lösung mit Dropdown-Bild
(inline svg)
Ich benutze Bootstrap, deshalb habe ich verwendet.
select.form-control
Sie können
select{
oderselect.your-custom-class{
stattdessen verwenden.quelle
width: auto;
der hinzugefügte SVG-Pfeil beim Festlegen den Inhalt der Auswahl überlagert. Dies erfordert eine zusätzliche Polsterung auf der rechten Seite von 16px. Diese Auffüllung ist jedoch in allen Browsern sichtbar und beeinträchtigt das Design in anderen Browsern. Ich habe noch keine Lösung dafür ...Wenn Sie quadratische Ränder und dennoch den kleinen Expanderpfeil möchten, empfehle ich Folgendes:
quelle
outline
für überschreiben:focus
. Wenn Sie diese Antwort verwenden möchten, sollten Sie Ihrenselect:focus
Stil ändern, um visuell anzuzeigen, dass dasselect
Element:focus
beim Klicken aktiv oder bearbeitet wird.Einige gute Lösungen hier, aber diese benötigt kein SVG, bewahrt den Rand über
outline
und setzt ihn bündig auf die Schaltfläche.quelle
Während die oberste Antwort den Rand entfernt, entfernt sie auch den Pfeil, was es für den Benutzer äußerst schwierig, wenn nicht unmöglich macht, das Element als Auswahl zu identifizieren.
Meine Lösung bestand darin, einfach ein weißes Div (mit Randradius: 0px) hinter die Auswahl zu kleben. Stellen Sie seine Position auf absolut, seine Höhe auf die Höhe der Auswahl, und Sie sollten bereit sein zu gehen!
quelle
Lösung mit benutzerdefiniertem rechten Dropdown-Pfeil, verwendet nur CSS (keine Bilder)
quelle
background-position: calc(100% - 4px) center, 100% center;
Dadurch wird der Pfeil in die Mitte der Auswahl und ganz nach rechts verschoben. Vielen Dank für den tollen Start!Eine Möglichkeit, es einfach zu halten und das Durcheinander mit den Pfeilen und anderen derartigen Funktionen zu vermeiden, besteht darin, es in einem Div mit der gleichen Hintergrundfarbe wie das Auswahl-Tag unterzubringen.
quelle
Das Eliminieren der Pfeile sollte vermieden werden. Eine Lösung, bei der die Dropdown-Pfeile erhalten bleiben, besteht darin, zuerst Stile aus dem Dropdown-Menü zu entfernen:
Erstellen Sie dann div direkt vor dem Dropdown in Ihrem HTML:
Und gestalte das Div so:
Inline-Anzeige verhindert, dass das div in eine neue Zeile wechselt. Position absolute entfernt sie aus dem Seitenfluss. Das Endergebnis ist eine schöne, saubere Unterstreichung, die Sie nach Belieben stylen können, und Ihr Dropdown-Menü verhält sich immer noch so, wie es der Benutzer erwarten würde.
quelle
Inset Box-Shadow macht den Trick.
Demo
quelle
Aus irgendeinem Grund wird es tatsächlich von der Farbe des Randes beeinflusst ??? Wenn Sie die Standardfarbe verwenden, bleiben die Ecken abgerundet, aber wenn Sie die Farbe auch nur geringfügig ändern, verschwindet die Rundung.
https://jsfiddle.net/hLg70o70/2/
quelle
Nun, ich habe die Lösung. hoffe es kann dir helfen :)
quelle
Das Folgende ist der Weg, es zu tun;
quelle
Ich habe die Lösung von jordan314 verwendet, aber dann habe ich zur Auswahl die Klasse "border-light" hinzugefügt. Wenn in CSS die Standardklasse für Randlicht definiert ist, können Sie diese direkt verwenden. Es definiert nur den Rand als weiß). Ich habe den Rand in Quadrat geändert / den Radius entfernt und den Pfeil beibehalten.
Folgendes habe ich getan:
Wenn Sie nicht über das vordefinierte Rahmenlicht verfügen, fügen Sie einfach Ihr CSS hinzu:
quelle
Firefox: 18
quelle
Stellen Sie das CSS als ein
Versuchen Sie, ob es funktioniert.
quelle