ฉันได้อ่านบางที่<img>
องค์ประกอบนั้นทำงานเหมือนทั้งสอง ถ้าถูกต้องมีใครช่วยอธิบายด้วยตัวอย่างได้ไหม
ฉันได้อ่านบางที่<img>
องค์ประกอบนั้นทำงานเหมือนทั้งสอง ถ้าถูกต้องมีใครช่วยอธิบายด้วยตัวอย่างได้ไหม
คำตอบ:
มันเป็นความจริงพวกมันทั้งคู่ - หรือมากกว่านั้นคือพวกมันเป็นองค์ประกอบ "บล็อกอินไลน์" ซึ่งหมายความว่าพวกเขาไหลแบบอินไลน์เช่นข้อความ แต่ยังมีความกว้างและความสูงเช่นองค์ประกอบบล็อก
ใน CSS คุณสามารถตั้งค่าองค์ประกอบdisplay: inline-block
ให้ทำซ้ำพฤติกรรมของรูปภาพ *
รูปภาพและวัตถุที่รู้จักกันว่าองค์ประกอบ "แทนที่" เนื่องจากพวกเขาไม่มีเนื้อหาต่อ se องค์ประกอบจึงถูกแทนที่ด้วยข้อมูลไบนารี
* โปรดทราบว่าเบราว์เซอร์ใช้งานทางเทคนิคdisplay: inline
(เท่าที่เห็นในเครื่องมือสำหรับนักพัฒนา) แต่พวกเขากำลังให้การดูแลเป็นพิเศษกับรูปภาพ inline-block
พวกเขายังคงปฏิบัติตามทุกลักษณะของ
img
องค์ประกอบที่พูดอย่างแม่นยำไม่ใช่องค์ประกอบinline-block
แต่จริงๆแล้วinline
องค์ประกอบ คุณสามารถตรวจสอบในเบราว์เซอร์ที่ทันสมัยโดยคลิกขวาที่ภาพคลิก "ตรวจสอบองค์ประกอบ" display: inline
แล้วดูรูปแบบการคำนวณซึ่งจะแสดงให้เห็น inline-block
ไม่มีบริบทบล็อกที่เกิดขึ้นภายในแท็กเป็นดังนั้นจึงเป็นเรื่องไม่ถูกต้องที่จะเรียกว่า สำหรับข้อมูลเพิ่มเติมเกี่ยวกับองค์ประกอบแบบอินไลน์แทนที่เห็นคำตอบของเควนตินของและบทความ MDN นี้
img
องค์ประกอบเป็นแบบอินไลน์ - เครื่องมือ Google Chrome dev แสดงimg
องค์ประกอบเป็นแบบอินไลน์ โพสต์นี้เป็นที่เดียวที่ฉันค้นพบที่บอกว่าพวกเขามาinline-block
แทน ที่น่าสนใจฉันไม่ได้พบว่ามีอำนาจใด ๆ ที่กล่าวว่าพวกเขาเป็นinline
อย่างใดอย่างหนึ่ง เป็นวิธีการรักษาแท็กการติดตั้งใช้งานอาจจะ?
display:inline-block
ดังนั้นไม่ว่าสิ่งที่เบราว์เซอร์บอกว่ามันเป็นภาพที่ได้รับการปฏิบัติเหมือนพวกเขาถูกกำหนดให้
img
องค์ประกอบเป็นองค์ประกอบแบบอินไลน์แทนที่
มันทำงานเหมือนองค์ประกอบอินไลน์ (เพราะเป็น) แต่การสรุปบางอย่างเกี่ยวกับองค์ประกอบแบบอินไลน์ไม่ได้ใช้กับimg
องค์ประกอบ
เช่น
การวางทั่วไป: "ความกว้างไม่ได้ใช้กับองค์ประกอบแบบอินไลน์"
สิ่งที่สเป็คพูดจริง ๆ : "นำไปใช้กับ: องค์ประกอบทั้งหมด แต่องค์ประกอบแบบอินไลน์ที่ไม่ถูกแทนที่แถวของตารางและกลุ่มแถว"
เนื่องจากรูปภาพเป็นองค์ประกอบแบบอินไลน์ที่ถูกแทนที่จึงไม่มีผล
องค์ประกอบ IMG เป็นแบบอินไลน์หมายความว่าหากไม่มีการลอยองค์ประกอบเหล่านี้จะไหลในแนวนอนด้วยข้อความและองค์ประกอบแบบอินไลน์อื่น ๆ
พวกเขาเป็นองค์ประกอบ "บล็อก" ที่พวกเขามีความกว้างและความสูง แต่พวกเขาทำงานเหมือน "บล็อกอินไลน์" ในแง่นั้น
สำหรับวัตถุประสงค์เกือบทั้งหมดให้คิดว่ามันเป็นองค์ประกอบอินไลน์พร้อมชุดความกว้าง โดยทั่วไปคุณมีอิสระที่จะกำหนดว่าคุณต้องการให้รูปภาพแสดงโดยใช้ CSS อย่างไร โดยทั่วไปฉันจะตั้งค่าคลาสรูปภาพบางอย่างเช่น:
img.center {display:block;margin:0 auto;}
img.left {float:left;margin-right:10px;}
img.right {float:right;margin-left:10px;}
img.border {border:1px solid #333;}
เมื่อใดก็ตามที่คุณแทรกภาพก็จะใช้ความกว้างที่ภาพมีมา แต่เดิม คุณสามารถเพิ่มองค์ประกอบ html อื่น ๆ ถัดจากมันและคุณจะเห็นว่ามันจะอนุญาต ทำให้รูปภาพเป็นองค์ประกอบ "อินไลน์"
มันเป็นความจริงพวกมันทั้งคู่ - หรือมากกว่านั้นคือพวกมันเป็นองค์ประกอบ "บล็อกอินไลน์" ซึ่งหมายความว่าพวกเขาไหลแบบอินไลน์เช่นข้อความ แต่ยังมีความกว้างและความสูงเช่นองค์ประกอบบล็อก