ฉันจะกำหนดขนาดของกล่องข้อความ HTML ได้อย่างไร


คำตอบ:


119

เพียงใช้:

textarea {
    width: 200px;
}

หรือ

input[type="text"] {
    width: 200px;
}

ขึ้นอยู่กับความหมายของ 'textbox'


5
หมายเหตุ: การทำเพียงแค่inputจะปรับขนาดinputการควบคุมอื่น ๆเช่นปุ่ม
โฮเมอร์

3
textbox คือ<input type="textbox" />และ textarea <textarea></textarea>มีความแตกต่าง
Michael Garrison

คุณจะทำอย่างไรใน%?
coder

2
@MichaelGarrison คุณหมายถึงtype="text"? ไม่พบคำtype="textbox"นิยามใด ๆ : w3.org/TR/html5/forms.html#states-of-the-type-attribute
Stefan L

ใช่type="text"นั่นคือสิ่งที่ฉันหมายถึงฉันคิดว่าฉันเพิ่งเขียนว่ารีบ
Michael Garrison

36

มาร์กอัปของคุณ:

<input type="text" class="resizedTextbox" />

CSS:

.resizedTextbox {width: 100px; height: 20px}

เก็บไว้ในใจว่าขนาดกล่องข้อความเป็น "เหยื่อ" ของกล่องแบบ W3C สิ่งที่ฉันหมายถึงเหยื่อคือความสูงและความกว้างของกล่องข้อความคือผลรวมของคุณสมบัติความสูง / ความกว้างที่กำหนดไว้ด้านบนนอกเหนือจากความสูง / ความกว้างของช่องว่างภายในและความกว้างของเส้นขอบ ด้วยเหตุนี้กล่องข้อความของคุณจะมีขนาดแตกต่างกันเล็กน้อยในเบราว์เซอร์ที่แตกต่างกันขึ้นอยู่กับการเว้นระยะห่างเริ่มต้นในเบราว์เซอร์ที่แตกต่างกัน แม้ว่าเบราว์เซอร์ที่แตกต่างกันมักจะกำหนดช่องว่างในช่องข้อความที่แตกต่างกัน แต่สไตล์ชีตการรีเซ็ตส่วนใหญ่มักจะไม่รวม<input />แท็กไว้ในแผ่นงานการรีเซ็ตดังนั้นจึงเป็นสิ่งที่ควรคำนึงถึง

คุณสามารถสร้างมาตรฐานได้โดยกำหนดช่องว่างภายในของคุณเอง นี่คือ CSS ของคุณที่มีช่องว่างภายในที่ระบุดังนั้นกล่องข้อความจึงมีลักษณะเหมือนกันในทุกเบราว์เซอร์:

.resizedTextbox {width: 100px; height: 20px; padding: 1px}

ฉันเพิ่มช่องว่างภายใน 1 พิกเซลเนื่องจากเบราว์เซอร์บางตัวมักจะทำให้กล่องข้อความดูหนาเกินไปหากช่องว่างนั้นเป็น 0px คุณอาจต้องการเพิ่มช่องว่างภายในขึ้นอยู่กับการออกแบบของคุณ แต่ขอแนะนำอย่างยิ่งให้คุณกำหนดช่องว่างภายในด้วยตัวคุณเองมิฉะนั้นคุณจะปล่อยให้เบราว์เซอร์ต่างๆตัดสินใจด้วยตัวเอง เพื่อความสอดคล้องกันมากขึ้นในเบราว์เซอร์คุณควรกำหนดเส้นขอบด้วยตัวเอง



6

รหัสกล่องข้อความของคุณ:

<input type="text" class="textboxclass" />

รหัส CSS ของคุณ:

input[type="text"] {
height: 10px;
width: 80px;
}

หรือ

.textboxclass {
height: 10px;
width: 80px;
}

ดังนั้นก่อนอื่นคุณต้องเลือกองค์ประกอบของคุณด้วยแอตทริบิวต์ (ดูตัวอย่างแรก) หรือคลาส (ดูตัวอย่างสุดท้าย) หลังจากนั้นคุณกำหนดค่าความสูงและความกว้างให้กับองค์ประกอบของคุณ


1
ขอบคุณสำหรับคำแนะนำ. ฉันได้แก้ไขสิ่งนี้แล้ว ฉันจะพยายามถามคำถามที่ดีกว่านี้
Lightsaber

4

สิ่งนี้ใช้ได้กับฉันใน IE 10 และ FF 23

<input type="text" size="100" />

ไม่สิ่งนี้จะใช้ไม่ได้ตลอดเวลาเช่น Chrome ปัจจุบันหรือที่เรียกว่าเบราว์เซอร์ยอดนิยมในช่วงปี 2015
Tom Stickel

3
FYI ทุกคนที่อ่านสิ่งนี้ในอนาคตใช้งานได้ดีใน Chrome 58 ประมาณกลางปี ​​2017
Rick

2

ถ้าคุณไม่ต้องการใช้เมธอดคลาสคุณสามารถใช้เมธอดพาเรนต์ - ลูกเพื่อทำการเปลี่ยนแปลงในกล่องข้อความ

สำหรับเช่น ฉันสร้างแบบฟอร์มในรูปแบบ div

รหัส HTML:

<div class="form">
<textarea name="message" rows="10" cols="30" >Describe your project in detail.</textarea>
</div>

ตอนนี้โค้ด CSS จะเป็นดังนี้:

.form textarea{
    height: 220px;
    width: 342px; 

แก้ไขปัญหา.


2

ระวัง! แอตทริบิวต์ width ถูกตัดโดยแอตทริบิวต์ความกว้างสูงสุด ก็เลยใช้ ....

    <form method="post" style="width:1200px">
    <h4 style="width:1200px">URI <input type="text" name="srcURI" id="srcURI" value="@m.SrcURI" style="width:600px;max-width:600px"/></h4>

1

ลอง:

input[type="text"]{
padding:10px 0;}

นี่เป็นวิธีที่ยังคงเป็นอิสระจากสิ่งที่กำหนดขนาดข้อความสำหรับกล่องข้อความ คุณกำลังเพิ่มความสูงโดยใช้ช่องว่างภายในแทน


1

ลองใช้รหัสนี้:

input[type="text"]{
 padding:10px 0;}

วิธีนี้จะยังคงเป็นอิสระจากสิ่งที่กำหนดขนาดตัวอักษรสำหรับกล่องข้อความ คุณกำลังเพิ่มความสูงโดยใช้ช่องว่างภายในแทน



1

คุณสามารถสร้างความกว้างของอินพุตเทียบกับความกว้างของคอนเทนเนอร์ได้

.container {
   width: 360px;
}

.container input {
   width: 100%;
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.