Ich habe einen Textbereich, der in einem Div enthalten ist, da ich einen Abfragehinweis habe und die Deckkraft verwenden wollte, ohne den Rand zu ändern. Es gibt eine sichtbare vertikale Bildlaufleiste, die nur angezeigt werden soll, wenn ich in das Textfeld tippe und sie über den Container hinausgeht. Ich habe versucht, überzulaufen: auto; funktioniert aber nicht.
Textfeld:
<label>
<div id="name">
<textarea name="message" type="text" id="message"
title="Enter Message Here"
rows=9 cols=60 maxlength="2000"></textarea>
</div>
</label>
Stile:
#name {
border: 1px solid #c810ca;
width: 270px;
height:159px;
overflow: hidden;
position: relative;
}
#message {
height: 400px;
width: 235px;
overflow: hidden;
position: absolute;
}
Antworten:
overflow: auto
(oderoverflow-y: auto
) ist der richtige Weg.Das Problem ist, dass Ihr Textbereich größer als Ihr Div ist. Das div schneidet am Ende das Textfeld ab. Auch wenn es so aussieht, als ob es mit dem Scrollen beginnen sollte, wenn der Text größer ist als
159px
es, wird es nicht mit dem Scrollen beginnen, bis der Text größer ist als400px
die Höhe des Textfelds.Versuchen Sie Folgendes : http://jsfiddle.net/G9rfq/1/
Ich habe overflow: auto für das Textfeld festgelegt und das Textfeld auf die gleiche Größe wie das div eingestellt.
Ich glaube auch nicht, dass es gültig ist, ein
div
Inside A zu habenlabel
, der Browser wird es rendern, aber es könnte dazu führen, dass etwas Funky passiert. Auch deindiv
ist nicht geschlossen.quelle
overflow: auto;
oderoverflow: hidden;
sollte es tun, denke ich.quelle
position: relative;
die#name div
Fügen Sie diese Klasse in die CSS-Klasse ein
und benutze die Klasse in div. wie hier.
Ich habe ein Bild angehängt, Sie sehen die Ausgabe des obigen Codes
quelle