CSS - Exakt gleiche Höhe und Ausrichtung von Schaltfläche und Eingabetextfeld
Ich muss eine Taste und eine tex-box sitzen neben einander und Sie haben zum ausrichten von up perfekt, als wenn man größer ist als der andere, dann wird es sofort spürbar.
In der Regel ich würde nicht die Mühe, über die kleinen Unterschiede zwischen den Browsern, aber diese beiden Eingangs sitzen in einer sehr prominenten position auf jeder Seite und sind ein wichtiges feature von der Seite, so dass Sie haben, richten Sie perfekt in allen gängigen Browsern und zoom-Stufen.
Hat jemand einen Tipp, wie Sie diese erreichen.
Nur als ein Beispiel, was ich versuche zu erreichen: das neue google-Startseite. Nach dem Start geben Sie die AutoVervollständigen-kicks in und die such-Feld bewegt wird, auf der Oberseite mit einem blauen Knopf perfekt ausgerichtet auf das Feld text. Es funktioniert perfekt, cross-browser, sondern seine Bezeichnung in einer Tabelle. Hat, deuten darauf hin, dass dies möglicherweise der beste Weg, dies zu erreichen?
InformationsquelleAutor der Frage David | 2011-07-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde vorschlagen, versuchen, style-parent-Elements von der
input
/button
pairing (einefieldset
in meinem Beispiel), damit eine gemeinsamefont-size
undfont-family
dann mitem
Messungen für styling Dimensionen/Polsterung/Margen für die untergeordneten Elemente. Idealerweise styling alle Kind-Elemente mit dem selben CSS.Angesichts der folgenden mark-up:
Ich würde vorschlagen, etwas ähnlicheaber angepasst an Ihre speziellen design, die folgende CSS:
JS Fiddle demo.
Nach der Klärung, dass dies zu replizieren bzw. zu reproduzieren den Stil der Google-begleitendes text-input/submit-button:
JS Fiddle demo.
Obgleich das oben funktioniert in Chromium 12.x und Opera 11.5 (Ubuntu 11.04), Firefox scheint zu zeigen, eine zusätzliche oder zwei pixel in der letztgenannten demonstration.
InformationsquelleAutor der Antwort David Thomas
Ich habe ziehen meine Haare für Stunden versucht, dies zu erreichen. Nach viel Forschung und Experimentieren, hier ist das Rezept für die Lösung des OP - Problems in (zumindest aktuelle Versionen) Chrome, Firefox, IE, Opera und Safari:
Ja, das ist alles dort ist zu ihm. Hier ist die minimalistische CSS, die das gewünschte Ergebnis erzeugt:
Benötigen Sie weitere styling, fühlen Sie sich frei, um Farbe, Polsterung und Margen -- alles in Ordnung. Aber egal, was Sie tun, NICHT geben Sie die Höhe explizit. Das ist der einzige deal breaker, weil jeder browser berechnet die Höhe unterschiedlich; einige lassen Sie eine zusätzliche oder zwei pixel über dem wählen und nicht die Schaltfläche, einige verlassen Sie oberhalb der Taste und nicht select, und einige funktionieren als erwartet.
Für die Aufzeichnung, Chrome scheint zu sein, die am konsequentesten in dieser Hinsicht (das ist, wenn Sie tun, geben Sie die Höhe) -- aber dann wieder, who cares.
InformationsquelleAutor der Antwort Bogdan Stăncescu
Ich denke, das ist sehr bulletproof:
http://codepen.io/herrfischer/pen/pbkyoJ
Auf beide Elemente nur verwenden:
Und "normalisieren.css" - das ist alles. Sieht gut aus auf iPhone, zu:
InformationsquelleAutor der Antwort Henning Fischer
Ich habe viele Quellen im WEB, wie Sie es tun das beste, cross-browser, theme-unabhängig. Ich hoffe, ich habe die Lösung, immerhin ist es nicht 100% (es muss gekürzt werden, die durch vertikale CSS-padding). Mein problem war zu haben label und text-Eingabe mit der selben Breite und kompakte.
Gewünschten Ergebnis:

Die Lösung fand ich durch mehrere Experimente beschrieben, die von meinem blog: http://vasvadev.blogspot.cz/2013/02/css-exact-same-height-and-alignment-of.html
Lösung
CSS:
HTML:
Meine experimentelle code wird gemeinsam von JSFIDDLE: css-exact-same-height-and-alignment-of.html
InformationsquelleAutor der Antwort Vaclav Svara
Wenn Sie versuchen, zu erreichen, pixel-perfekte Dimensionen in einem cross-browser-Weise, die sehr erste, was Sie tun sollten, ist zu erwägen, die Implementierung eines CSS-reset. Ich bevorzuge HTML5 Boilerplateaber es gibt andere, die Sie finden können aus googeln.
Den CSS-reset ist wirklich grundlegend in die Normalisierung der cross-browser-Unterschiede (vor allem beim Umgang mit Formularen).
InformationsquelleAutor der Antwort Moses
IE: Sie können den Stil, die Dinge anders durch die Verwendung von conditional stylesheets:
So, würden Sie schreiben:
InformationsquelleAutor der Antwort madflow
Ich versuche, dies zu lösen, für Tage und jede Lösung ist nicht ganzes und nicht in anderen Browsern.
Ich finde, dass dieser code die Arbeit machen:
Habe ich aktualisiert Fiddle - https://jsfiddle.net/p9maozk2/
InformationsquelleAutor der Antwort Dampas
Verwenden Sie ein hintergrund-div mit einem Bild für die Eingabe. Das ist viel leichter konsistent zu halten. Auch die absolute Positionierung ist gut für diese Art von situation.
edit: ich schrieb diese Antwort vor 5 Jahren, es gibt bessere Möglichkeiten, nun.
InformationsquelleAutor der Antwort Ilia Choly
Ihre andere option ist die Verwendung Bootstrap. Ich lösen dieses Problem durch die Zuweisung der Klasse "input-Gruppe" der div , umschließt den Eingang und die Taste/en.
InformationsquelleAutor der Antwort Nadia Hristova