display: inline vs display: block


130

อะไรคือความแตกต่างพื้นฐานระหว่าง CSS ต่อไปนี้:

display:inline

และนี่:

display:block

การใช้สิ่งเหล่านี้แยกกันในองค์ประกอบฉันได้รับผลลัพธ์เดียวกัน


คำตอบ:


124

display: blockหมายถึงองค์ประกอบที่แสดงเป็นบล็อกตามที่ย่อหน้าและส่วนหัวมาตลอด บล็อกมีช่องว่างด้านบนและด้านล่างและไม่มีองค์ประกอบ HTML อยู่ข้างๆยกเว้นเมื่อได้รับคำสั่งเป็นอย่างอื่น (โดยการเพิ่มการประกาศลอยไปยังองค์ประกอบอื่นเป็นต้น)

แสดง: อินไลน์หมายความว่าองค์ประกอบจะแสดงแบบอินไลน์ภายในบล็อกปัจจุบันในบรรทัดเดียวกัน เฉพาะเมื่ออยู่ระหว่างสองบล็อกองค์ประกอบจะสร้าง 'บล็อกที่ไม่ระบุตัวตน' แต่จะมีความกว้างน้อยที่สุดเท่าที่จะเป็นไปได้

อ่านเพิ่มเติมเกี่ยวกับตัวเลือกการแสดง: http://www.quirksmode.org/css/display.html


1
มีองค์ประกอบใดที่อยู่ในบรรทัดตามค่าเริ่มต้นหรือไม่? Span?
eshellborn

1
<span> <a> และ <img>
EKanadily

80

บล็อก

ใช้ความกว้างเต็มพร้อมกับบรรทัดใหม่ก่อนและหลัง (display: block;)

inline

ใช้ความกว้างเท่าที่ต้องการเท่านั้นและไม่บังคับขึ้นบรรทัดใหม่ (display: inline;)


40

display: block - เส้นแบ่งก่อนและหลังองค์ประกอบ

display: inline - ไม่มีการแบ่งบรรทัดก่อนหรือหลังองค์ประกอบ



13

display: block;สร้างองค์ประกอบระดับบล็อกในขณะที่display: inline;สร้างองค์ประกอบระดับอินไลน์ เป็นการยากที่จะอธิบายความแตกต่างหากคุณไม่คุ้นเคยกับโมเดลกล่อง css แต่ก็พอจะบอกได้ว่าองค์ประกอบระดับบล็อกจะแบ่งการไหลของเอกสารในขณะที่องค์ประกอบแบบอินไลน์ไม่ทำ

ตัวอย่างบางส่วนขององค์ประกอบระดับบล็อกรวมถึง: div, h1, pและhrแท็ก HTML

ตัวอย่างบางส่วนขององค์ประกอบระดับอินไลน์รวมถึง: a, span, strong, em, bและiแท็ก HTML

โดยส่วนตัวแล้วฉันชอบคิดว่าองค์ประกอบแบบอินไลน์เป็นองค์ประกอบการพิมพ์ สิ่งนี้ไม่ถูกต้องทั้งหมดหรือถูกต้องในทางเทคนิค แต่สำหรับองค์ประกอบอินไลน์ส่วนใหญ่จะทำงานคล้ายกับข้อความมาก

คุณสามารถอ่านผ่านบทความในหัวข้อที่นี่ เมื่อเห็นคนอื่น ๆ หลายคนในกระทู้นี้ได้ยกมามันอาจจะคุ้มค่าที่จะอ่าน


8

แสดง: บล็อกจะใช้เวลาทั้งบรรทัดเช่นโดยไม่มีการแบ่งบรรทัด

การแสดงผล: อินไลน์จะใช้พื้นที่เฉพาะที่ต้องการเท่านั้น

 #block
  {
   display : block;
   background-color:red;
   border:1px solid;
  }

 #inline
 {
  display : inline;
  background-color:red;
  border:1px solid;
 }

คุณสามารถดูตัวอย่างในซอนี้http://jsfiddle.net/RJXZM/1/


1
สุดยอด ... นี่คือสิ่งที่ฉันกำลังมองหา
Vicky


5

จอแสดงผล: บล็อก

ใช้เวลาทั้งแถว (100%) ของหน้าจอซึ่งจะเท่ากับ 100% ของขนาดหน้าจอเสมอ

ตัวอย่างบล็อกการแสดงผล

display: inline-blockใช้ความกว้างเท่าที่จำเป็นโดยอาจมีขนาด 1% ถึง 100% ของขนาดหน้าจอ

แสดงตัวอย่างอินไลน์บล็อก

นั่นคือสาเหตุที่เรามีdiv และ span

สไตล์เริ่มต้น Div คือบล็อกการแสดงผล: ใช้ความกว้างทั้งหมดของหน้าจอ

รูปแบบเริ่มต้นของ span คือ display: inline block: span ไม่เริ่มต้นในบรรทัดใหม่และใช้ความกว้างเท่าที่จำเป็นเท่านั้น


นั่นคือเหตุผลที่เรามี div และ span - อันนี้เจ๋งครับ :-)
ศิวะ

1

เพิ่มสีพื้นหลังให้กับองค์ประกอบและคุณจะเห็นความแตกต่างของอินไลน์กับบล็อกตามที่ผู้โพสต์อื่นอธิบายไว้


1

ดิสเพลย์: บล็อกมันทำงานเหมือนกับแท็ก 'p' เป็นอย่างมากและจะใช้ทั้งแถวและจะไม่มีองค์ประกอบใด ๆ อยู่ข้างๆจนกว่าจะลอย การแสดงผล: แบบอินไลน์มันใช้พื้นที่มากเท่าที่ต้องการและอนุญาตให้องค์ประกอบอื่น ๆ จัดแนวข้างตัวมันเอง

ใช้คุณสมบัติเหล่านี้ในกรณีของแบบฟอร์มและคุณจะเข้าใจดีขึ้น


0

บล็อกหรืออินไลน์บล็อกสามารถมีความกว้างได้ (เช่นความกว้าง: 400px) ในขณะที่องค์ประกอบอินไลน์จะไม่ได้รับผลกระทบจากความกว้าง องค์ประกอบแบบอินไลน์สามารถขยายไปยังบรรทัดถัดไปของข้อความ (ตัวอย่างเช่นhttp://codepen.io/huijing/pen/PNMxXLปรับขนาดหน้าต่างเบราว์เซอร์ของคุณเพื่อดูสิ่งนั้น) ในขณะที่องค์ประกอบบล็อกไม่สามารถทำได้

 .inline {
      background: lemonchiffon;
      div {
        display: inline;
        border: 1px dashed darkgreen;
      }

สิ่งนี้อ่านได้ว่าควรจะเป็นการตอบกลับหนึ่งในอีกแปดคำตอบของคำถามนี้ ฉันบอกไม่ได้ว่าอันไหน
Quentin

เกือบทั้งหมด. เพียงแค่เพิ่มข้อมูล
EKanadily

0

องค์ประกอบบล็อก : องค์ประกอบที่ชอบ div, p ส่วนหัวเป็นระดับบล็อก เริ่มต้นจากบรรทัดใหม่และใช้ความกว้างเต็มขององค์ประกอบหลัก องค์ประกอบแบบอินไลน์ : องค์ประกอบที่ชอบ b, i, span, img อยู่ในระดับอินไลน์ พวกเขาไม่เคยเริ่มจากบรรทัดใหม่และใช้ความกว้างของเนื้อหา


0

โดยค่าเริ่มต้นองค์ประกอบแบบอินไลน์จะไม่บังคับให้ขึ้นบรรทัดใหม่ในโฟลว์เอกสาร ในทางกลับกันองค์ประกอบของบล็อกมักทำให้เกิดการแบ่งบรรทัดคุณสามารถอ้างอิง ลิงค์นี้


ขอบคุณสำหรับคำตอบ. โปรดตรวจสอบคำตอบอื่น ๆ ก่อนในครั้งต่อไปเนื่องจากไม่ได้เพิ่มอะไรใหม่
BluE

ท่านฉันตอบคำถามนี้ตามความรู้ที่ฉันรู้ทำไมฉันจึงเห็นคำตอบอื่นและโพสต์คำตอบของฉันคุณโพสต์ความคิดเห็นนี้ถึงทุกคนที่ตอบคำถามนี้หรือไม่นี่เป็นเรื่องที่น่าอับอายมาก
Rohan Devaki
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.