ฉันจะควบคุมความกว้างของแท็กฉลากได้อย่างไร


144

แท็กฉลากไม่มีคุณสมบัติ 'ความกว้าง' ดังนั้นฉันจะควบคุมความกว้างของแท็กฉลากได้อย่างไร


8
Label เป็นองค์ประกอบแบบอินไลน์มันไม่สามารถมีค่าความกว้างได้ เพื่อที่จะทำเช่นนี้คุณจะต้องใส่หรือdisplay:block float:left
รัสเซลเดียส

คำตอบ:


188

ใช้ CSS แน่นอน ...

label { display: block; width: 100px; }

widthแอตทริบิวต์ที่ถูกเลิกและ CSS ควรจะใช้ในการควบคุมเหล่านี้ชนิดของรูปแบบ presentational


7
แต่นั่นนำไปสู่การหยุดพักในโค้ดซึ่งอาจเป็นสิ่งที่ OP ไม่ต้องการตั้งแต่แรก
Konrad Rudolph

49
@ Konrad จากนั้น OP สามารถใช้floatหรือdisplay: inline-block
Josh Stodola

2
ใช่นั่นคือสิ่งที่ฉันต้องการที่จะได้รับ :-) นี่คือประเด็นหลักที่นี่เนื่องจากเป็นส่วนที่ยาก การตั้งค่าเพียงwidthเล็กน้อยจะไม่ใช้ประโยชน์มากนัก
Konrad Rudolph

@JoshStodola โอ้ shiiiiit ..... บล็อกแบบอินไลน์ไม่เคยทำงานให้ฉันฉันลอง float และ bham! ฉันสงสัยว่าทำไมบล็อกแบบอินไลน์ไม่ได้ผลสำหรับฉัน
Dheeraj

@lostchild inline-block ไม่สนใจช่องว่างนั่นอาจเป็นสาเหตุว่าทำไมคุณถึงมีปัญหากับมัน
Alex Podworny

91

การใช้ inline-block นั้นดีกว่าเพราะมันไม่ได้บังคับให้องค์ประกอบที่เหลืออยู่และ / หรือตัวควบคุมที่จะวาดในบรรทัดใหม่

label {
  width:200px;
  display: inline-block;
}

29

องค์ประกอบแบบอินไลน์ (เช่น SPAN, LABEL และอื่น ๆ ) จะแสดงขึ้นเพื่อให้เบราว์เซอร์มีการคำนวณความสูงและความกว้างตามเนื้อหา หากคุณต้องการควบคุมความสูงและความกว้างคุณต้องเปลี่ยนบล็อคองค์ประกอบเหล่านั้น

display: block;ทำให้องค์ประกอบที่แสดงเป็นบล็อกทึบ (เช่นแท็ก DIV) ซึ่งหมายความว่ามีการแบ่งบรรทัดหลังจากองค์ประกอบ (มันไม่ได้อยู่ในบรรทัด) แม้ว่าคุณสามารถใช้display: inline-blockเพื่อแก้ไขปัญหาการแตกบรรทัด แต่โซลูชันนี้ไม่ทำงานใน IE6 เนื่องจาก IE6 ไม่รู้จักการบล็อกแบบอินไลน์ หากคุณต้องการให้สามารถใช้งานข้ามเบราว์เซอร์ได้ให้ดูที่บทความนี้: http://webjazz.blogspot.com/2008/01/getting-inline-block-working-across.html


4

การให้ความกว้างกับป้ายกำกับไม่ใช่วิธีที่เหมาะสม คุณควรใช้โครงสร้าง div หนึ่งหรือโครงสร้างตารางเพื่อจัดการสิ่งนี้ แต่ถ้าคุณไม่ต้องการเปลี่ยนรหัสทั้งหมดคุณสามารถใช้รหัสต่อไปนี้ได้

label {
  width:200px;
  float: left;
}

"ให้ความกว้างกับป้ายกำกับในวิธีที่ไม่เหมาะสม" ในการควบคุมความกว้างขององค์ประกอบป้ายกำกับหรือไม่ คุณแน่ใจไหม?
Oriol

ใช่ .. เพราะเมื่อเราต้องการสร้างโครงร่างหรือโครงสร้างที่เฉพาะเจาะจงคุณสมบัติของ div และตารางจึงถูกนำมาใช้ ฉลากไม่ได้มีไว้สำหรับให้ความกว้างหรือความสูง .. ดังนั้นถ้าเราใช้บางอย่างที่ไม่ได้ตั้งใจจะทำ .. มันจะเริ่มสร้างปัญหาในบางลักษณะ ฉันหวังว่าฉันจะทำให้รู้สึกตอนนี้
Yaxita Shah



0

คุณสามารถให้ชื่อคลาสกับป้ายกำกับทั้งหมดเพื่อให้ทุกคนมีความกว้างเท่ากัน:

 .class-name {  width:200px;}

ตัวอย่าง

.labelname{  width:200px;}

หรือคุณสามารถให้ส่วนที่เหลือของฉลากง่าย ๆ

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