Tricky Textarea Pulltab

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

In Desktop-Safari, Chrome, Firefox und Opera-unter-Presto (nicht IE, nicht mobil) haben <textarea>s eine kleine Größenänderungs-Nugget in der unteren rechten Ecke. Textareas sind zum Schreiben da, also wenn Benutzer mehr Platz brauchen, um sich beim Schreiben wohler zu fühlen, können sie ihn haben. Das Klicken und Ziehen dieses Größenänderers verändert buchstäblich das Box-Modell dieser Textarea und schiebt bei Bedarf andere Dinge weg. Wir können diese kleine Fähigkeit nutzen, um einen Trick zu machen!

Fairerweise muss ich sagen, dass ich das nicht erfunden habe. Ich habe es vor ungefähr einem Jahr gesehen, aber ich kann mich beim besten Willen nicht erinnern, wo. Als ich Davids Walschs schnellen Beitrag über wie man es stylen kann sah, erinnerte mich das daran, also machte ich mich daran, die Idee nachzubilden.


Die bescheidene Textarea

Nehmen wir an, Sie legen diese <textarea> in ein grünes <div>.

Dann ziehen Sie diese <textarea> höher. Das <div> wird größer.

Nun sagen wir, wir haben das absolut positioniert

am Ende eines anderen Bereichs.

Wenn Sie nun den Textarea-Größenänderer nach unten ziehen, um ihn größer zu machen, wächst das Div tatsächlich nach oben.

Wenn wir dann die Textarea klein machen und den Größenänderer stylen, sieht er überhaupt nicht mehr wie eine Textarea aus (nur Webkit).

textarea {
  width: 12px;
  height: 12px;
}
textarea::-webkit-resizer {
  background: yellow;
}

Ein kleines Stück hängt unten heraus. Ich bin mir nicht sicher, was es damit auf sich hat, aber Sie können es mit overflow: hidden; auf einem der Wrapper ausblenden.

Wir werden den Größenänderer weiter stylen (ich denke, wir können ihn jetzt „Tab“ nennen) indem wir

  • ihn zentrieren – .tab { text-align: center; }
  • die Innereien der Textarea ausblenden – textarea { background: none; border: 0; }
  • sicherstellen, dass der Tab nur nach unten gezogen werden kann – textarea { resize: vertical; }
  • die Höhe des neu freigelegten Bereichs begrenzen – .tab, textarea { max-height: 100px; }</li>

Jetzt, wenn Sie den „Tab“ herunterziehen, wird nur mehr Grün freigelegt

Wenn wir nun tatsächlichen Inhalt in diesen grünen Bereich legen und ihn gerade weit genug nach unten positionieren, dass er standardmäßig verborgen ist, können wir an diesem kleinen Tab ziehen und den Inhalt freilegen. Ziemlich raffiniert.

Demo

Farben und dergleichen wurden geändert, um sie besser sichtbar zu machen.

Check out this Pen!

Ich weiß nicht, ob das besonders nützlich ist. Ich weiß, dass es nicht sehr mobilfreundlich ist. Ich weiß, dass es nicht sehr cross-browser-cool ist. Was es ist, ist ein verifizierter kleiner CSS-Trick.