Entfernen von 3 Pixel in iOS/WebKit textarea
Ich versuche zu schaffen, eine textarea
, die genauso aussieht wie eine div
.
Aber auf iOS gibt es 3 Pixel kommen von irgendwo, die ich nicht entfernen können.
Hier ist mein code:
<!doctype html>
<title>Textarea test</title>
<style>
textarea, div
{
background: yellow;
font: 13px arial;
border: 0;
padding: 0;
border-radius: 0;
margin: 0;
-webkit-appearance: none;
}
</style>
<div>test</div>
<hr>
<textarea>test</textarea>
Gerendert wird wie so (ich hab gezoomt):
Wie der screenshot zeigt, gibt es 3 Pixel vor den text, den ich loswerden will. Soweit ich sehen kann es ist nicht die margin/padding oder border.
In diesem Fall auf meinem iPhone und iPad, beide mit iOS 4.3. Und klar zu sein; die 3 zusätzlichen Pixel nicht zeigen, bis auf Safari/Firefox/Chrome auf meinem desktop. Oder mein Bruder Windows Phone, für diese Angelegenheit.
BEARBEITEN 2011-08-10:
Ich habe gerade getestet, auf einem <input type=text>
und die gleichen "Polsterung" etwas erscheint, außer, dass es 1 pixel statt 3.
- Haben Sie versucht, padding-left=0, padding-..=0, etc? Ist das ein iOS/WebKit-problem oder nicht, passiert das auch mit anderen Plattformen?
- Ja, der Abstand ist 0 (siehe code). Ich habe keine anderen mobilen Geräten zu testen, aber auf meinem desktop, es gibt keine extra Abstand auf Safari, Firefox oder Chrome.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Okay... Sorry... Here we go... Die offiziell inoffizielle Antwort ist...
Können Sie nicht loswerden.
Anscheinend ist dies ein "bug" mit mobile safari auf Eingaben. Siehe:
Können Sie jedoch die Kenntnis der Gedankenstrich dies
Es ist nicht eine hübsche Lösung, aber es tut, was Sie brauchen.
Bearbeiten
Vergaß zu erwähnen, getestet mit dem iOS-Simulator. Sie könnten versuchen, auf Ihrem Telefon selbst.
Einem anderen Punkt: Das setzt auch Voraus, dass man mit css allein für den mobile safari, speziell für das iPhone. Eine ältere Weg dies zu tun ist:
Bearbeiten Wieder
Ich bin viel zu viel Spaß mit diesem... Sie können auch separate stylesheets mit diesen Erklärungen:
Bearbeiten, Weil offenbar jemand kaufte ein Android 😉
Persönlich, ich don ' T haben wirklich ein problem mit text-Einträgen einige interne Einzug. Es löscht es aus dem Bereich der Kante und macht es besser lesbar. Ich bin allerdings der Meinung, dass ein browser soll die Unterstützung der spec. Also hier ist ein update für die Unterscheidung zwischen android und iPhone. Spaß haben!
text-indent: -3px;
option. Und dienen, dass nur iOS.<style>
tags mit der Plattform-spezifische css gerendert wird dort eher als Last einem externen stylesheet mit mehr header-Informationen als der Inhalt. An einem bestimmten Punkt wird es mehr über das, was Sie mit Leben können – wenn Sie unbedingt sein muss, dass-3px
auf dietextarea
, dann tun Sie es, aber wenn es nicht entscheidend, warum sollten Sie den zusätzlichen Aufwand für ein nicht-Problem?text-indent
gilt nur für die erste Zeile des Textes. Dies funktioniert gut in einem<input>
, aber in einem<textarea>
mit mehreren Zeilen text nur die erste Zeile wird nach Links verschoben. In dieser situation sollten Sie so etwas wiemargin-left: -3px
.Hier eine einfache JavaScript-Lösung (basierend auf stslavik Ansatz), das spart einige Zeilen code und tests für-iPad und iPod als auch.
Wenn Sie jQuery verwenden:
Wenn Sie möchten, verwenden Sie ein standard-JS:
margin-left: -3px
statttext-indent
, aber gleiche Idee, danke.Man kann dies umgehen, verwenden Sie ein div, das Sie als bearbeitbar.
HTML
Javascript:
jQuery
text-intend
funktioniert nicht, wenn mehrere Linien (wie Jonathan bereits erwähnt in einem Kommentar auf die akzeptierte Antwort).So, das funktionierte für mich auf dem iPhone 6:
Basierend auf den bisherigen Antworten, es scheint, wie der beste Weg zur Bewältigung dieses wird durch das hinzufügen einer
margin-left: -3px
auf das textarea-element. Dies können wir mit einigen CSS-Bekämpfung besonders iOS-Safari, die nicht Durcheinander zu bringen, die auf Android -Also eine Reine css-Lösung baut auf den bereits genannten. Aber die
text-indent
nur so viel tut für mich, wie derplaceholder
ist nicht erfolgt. Wenn Sie hinzufügen, in einer extra Zeile, es hilft ein reset der extra Einzug für iOS-Geräte. Wird wahrscheinlich haben, um einige der anderen wizardy zu ermöglichen, für andere touch-Geräte von breiten über 480px obwohl.kann nicht testen Sie es jetzt, aber versuchen
und/oder
und/oder
BEARBEITEN - anderes versuchen:
Referenz-einschließlich Informationen zur Kompatibilität finden Sie unter https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariCSSRef/Introduction.html#//apple_ref/doc/uid/TP30001267-SW1