ควรใช้ IMG กับ CSS กับภาพพื้นหลังเมื่อใด


777

ในสถานการณ์ใดจะเหมาะสมกว่าที่จะใช้IMGแท็กHTML เพื่อแสดงรูปภาพซึ่งตรงข้ามกับ CSS background-imageและในทางกลับกัน

ปัจจัยอาจรวมถึงการเข้าถึงการสนับสนุนเบราว์เซอร์เนื้อหาแบบไดนามิกหรือข้อ จำกัด ทางเทคนิคหรือหลักการใช้งานใด ๆ


คุณต้องการภาพเพื่อให้มีพื้นที่ว่างหรือคุณต้องการเขียนทับมัน?
geowa4

9
เนื่องจากมีการจัดอันดับที่ค่อนข้างสูงใน Google จึงสามารถปรับขนาดเบราว์เซอร์และขยายภาพพื้นหลังภาพได้และมีการรองรับอย่างกว้างขวาง (แน่นอนว่า IE8 และด้านล่างเป็นข้อยกเว้น) การแสดงรายการ 4 และ 7 ในกรณี ที่สามารถอนุญาตการย้อนกลับหรือละเว้นผลกระทบดังกล่าวสำหรับ IE8 และด้านล่าง caniuse.com/#search=background-image
Shauna

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

โดยทั่วไปฉันจะเพิ่มทั้งแอตทริบิวต์ alt และแอตทริบิวต์ title ให้กับรูปภาพเนื้อหาทั้งหมด สิ่งนี้ไม่เป็นที่ต้องการหรือไม่?
HartleySan

2
img ยังสามารถมีแผนที่พร้อมพื้นที่ที่สามารถคลิกได้และคำแนะนำ
Vitim.us

คำตอบ:


796

การใช้ IMG อย่างเหมาะสม

  1. ใช้IMGหากคุณต้องการให้คนอื่นพิมพ์หน้าของคุณและคุณต้องการให้ภาพนั้นถูกรวมไว้โดยค่าเริ่มต้น - JayTee
  2. ใช้IMG(มีaltข้อความ) เมื่อภาพมีความหมายที่สำคัญเช่นไอคอนเตือน สิ่งนี้ทำให้มั่นใจได้ว่าความหมายของภาพสามารถสื่อสารได้ในตัวแทนผู้ใช้ทั้งหมดรวมถึงโปรแกรมอ่านหน้าจอ

การใช้งานในทางปฏิบัติของ IMG

  1. ใช้IMGคุณลักษณะ plus alt หากรูปภาพเป็นส่วนหนึ่งของเนื้อหาเช่นโลโก้หรือไดอะแกรมหรือบุคคล (บุคคลจริงไม่ใช่ภาพบุคคล) - sanchothefat
  2. ใช้IMGหากคุณใช้การขยายขนาดของเบราว์เซอร์เพื่อแสดงภาพตามสัดส่วนข้อความ
  3. ใช้IMG สำหรับภาพซ้อนทับหลายใน IE6
  4. ใช้IMGกับz-indexเพื่อยืดภาพพื้นหลังเพื่อเติมเต็มทั้งหน้าต่าง
    หมายเหตุสิ่งนี้ไม่เป็นความจริงอีกต่อไปด้วยพื้นหลังขนาด CSS3 ดู # 6 ด้านล่าง
  5. การใช้imgแทนที่จะbackground-imageสามารถปรับปรุงประสิทธิภาพของภาพเคลื่อนไหวบนพื้นหลังได้อย่างมาก

ควรใช้ภาพพื้นหลัง CSS เมื่อใด

  1. ภาพพื้นหลังใช้ CSS หากภาพไม่ได้เป็นส่วนหนึ่งของเนื้อหา - sanchothefat
  2. ใช้ภาพพื้นหลัง CSS เมื่อทำการเปลี่ยนรูปภาพของข้อความเช่น ย่อหน้า / หัว - sanchothefat
  3. ใช้background-imageหากคุณต้องการให้คนอื่นพิมพ์หน้าของคุณและคุณไม่ต้องการให้มีการรวมรูปภาพโดยค่าเริ่มต้น - JayTee
  4. ใช้background-imageถ้าคุณต้องการที่จะปรับปรุงเวลาในการดาวน์โหลดเช่นเดียวกับสไปรท์ CSS
  5. ใช้background-imageหากคุณต้องการให้มองเห็นเพียงบางส่วนเช่นเดียวกับ CSS sprites
  6. ใช้background-imageกับbackground-size:coverเพื่อยืดภาพพื้นหลังเพื่อเติมหน้าต่างทั้งหมด

3
ฉันยังคิดไม่ถึงภาพพื้นหลังสำหรับชิ้นส่วนทดแทนข้อความ ฉันเห็นคนที่ใช้ภาพพื้นหลังจากนั้นใช้การเยื้องข้อความ: -9999px สำหรับข้อความ อย่างไรก็ตามฉันรู้ว่ามีการเยื้องข้อความเช่นนี้เคยเป็นสิ่งที่ไม่ดีสำหรับ SEO และฉันคิดว่ามันคงต้องเป็นเครื่องมือค้นหาบางอย่าง แต่ที่สำคัญที่สุดถ้าคุณปิดภาพ แต่ทิ้ง css ไว้ที่ภาพหายไป แต่ข้อความยังคงปิดหน้าจออยู่ เท่าที่ฉันกังวลข้อความ alt บนรูปภาพนั้นใช้สำหรับหากรูปภาพไม่แสดงดังนั้นแท็ก img จะดีกว่า
Scott Reed

53
การใช้ภาพแบ็คกราวด์ในทางปฏิบัติ : เมื่อคุณไม่ต้องการให้ผมหลวมเกี่ยวกับปัญหาการตั้งกึ่งกลางแนวตั้ง (ภาพที่มีขนาดตามแนวตั้งที่แตกต่างกัน);)
Frank Nocke

12
ใช่ปัญหาการอยู่กึ่งกลางแนวตั้ง - นำ Flexbox มาให้!
Dean_Wilson

3
@BinaryFunt - <div class="my-css-page-styles" style="background-image:url(blah.png);"></div>วิธีที่คุณสามารถจัดสไตล์ในสไตล์ชีต CSS ของคุณ แต่ถ้าภาพพื้นหลังเป็นคำถามของเนื้อหามากกว่าสไตล์คุณก็ยังคงแก้ไขจากด้าน HTML ของสิ่งต่าง ๆ
Jimbo Jonny

2
ดูเหมือนว่าจะมี clickbait ในจุดที่ 5 ของการใช้ IMG อย่างจริงจังซึ่งชี้ไปที่โพสต์บล็อกญี่ปุ่นเกี่ยวกับเครื่องสำอาง ลิงค์คือ www.ajaxline.com/browsers-performance-in-dependence-of-html-coding [อย่าคลิกที่นี่]
wick3d

292

มันเป็นการตัดสินใจขาวดำของฉัน หากรูปภาพเป็นส่วนหนึ่งของเนื้อหาเช่นโลโก้หรือไดอะแกรมหรือบุคคล (บุคคลจริงไม่ใช่บุคคลภาพถ่ายหุ้น) จากนั้นใช้<img />แท็กพร้อมกับแอตทริบิวต์ alt สำหรับทุกอย่างอื่นมีภาพพื้นหลัง CSS

เวลาอื่นที่จะใช้ภาพพื้นหลัง CSS คือเมื่อทำการแทนที่รูปภาพของข้อความ ย่อหน้า / หัว


กรณีที่ยอดเยี่ยม! CON - ใช้ภาพพื้นหลังเมื่อทำการเปลี่ยนรูปภาพของข้อความ
ระบบหยุดชั่วคราว

2
นี่เป็นจุดที่เหมาะสม แต่แน่นอนว่าการแทนที่รูปภาพ (เช่นหัวข้อ) จะทำให้คุณต้องเพิ่ม "alt" เพื่อให้โปรแกรมอ่านหน้าจออ่านได้ หรือในกรณีที่ภาพไม่แสดงคุณยังคงเป็นหัวเรื่องอยู่ ใช่ส่วนหัวแล้วสไตล์จะดีกว่า แต่แน่นอนคุณต้องการข้อความ?
Theo Scholiadis

4
@TheoScholiadis โดยใช้การแทนที่รูปภาพไม่ได้หมายถึงการใช้รูปภาพแทนข้อความ แต่การซ่อนข้อความด้วย CSS และส่งภาพเป็นพื้นหลังโดยใช้ CSS เอกสารยังคงไม่ถูกแตะต้องความหมาย
roborourke

57
ส่วนตัวฉันเกลียดเมื่อฉันไม่สามารถคัดลอก "ข้อความ" เพราะมันเป็นภาพ โทรหาฉันขี้เกียจ แต่เฮ้ ...
Shaz

1
เมื่อคุณต้องการรูปภาพเพื่อการทำ SEO ให้ใช้แท็ก img พร้อมแอตทริบิวต์ alt มิฉะนั้นใช้ภาพในพื้นหลังโดยใช้ CSS
ซุปเปอร์โมเดล

107

ฉันประหลาดใจไม่มีใครกล่าวถึงนี้ยัง: เปลี่ยน CSS

คุณสามารถเปลี่ยนdivภาพพื้นหลังของ:

#some_div {
    background-image:url(image_1.jpg);
    -webkit-transition:background-image 0.5s;
    /* Other vendor-prefixed transition properties */
    transition:background-image 0.5s;
}

#some_div:hover {
    background-image:url(image_2.jpg);
}

นี้ช่วยประหยัดชนิดของ JavaScript หรือ jQuery การเคลื่อนไหวใด ๆ ที่จะจางหาย's<img/>src

ข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนในMDN


3
นั่นไม่ใช่เหตุผลที่ดี คุณอาจมี div กับ 2 ภาพ overlayed และ CSS ต่อไปนี้: #some_div { transition: opacity 0.5s; }, #some_div:hover #top_img { opacity: 0; }
warkentien2

5
หากคุณอ่านบทความ MDN ที่เชื่อมโยง (หรือข้อกำหนด w3c) คุณจะพบว่าภาพพื้นหลังไม่ใช่คุณสมบัติอย่างใดอย่างหนึ่งที่สามารถเคลื่อนไหวได้และเบราว์เซอร์ใด ๆ ที่ทำเช่นนั้น (โครม) ไม่ปฏิบัติตามมาตรฐานเว็บ ที่กล่าวว่าฉันคิดว่ามันควรจะเป็นและเป็นผลง่ายดีดังนั้นฉันผิดหวังว่ามันไม่ได้เป็นส่วนหนึ่งของมาตรฐาน
Robert McKee

73

คำตอบข้างต้นพิจารณาเฉพาะด้านการออกแบบ ฉันกำลังแสดงรายการไว้ใน SEO

ควรใช้เมื่อไร <img />

  1. เมื่อรูปภาพของคุณต้องได้รับการจัดทำดัชนีโดยเครื่องมือค้นหา
  2. ถ้ามันมีความสัมพันธ์กับเนื้อหาที่จะไม่ออกแบบ
  3. หากภาพของคุณไม่เล็กเกินไป (ไม่ใช่ภาพที่เป็นสัญลักษณ์)
  4. รูปภาพที่คุณสามารถเพิ่มaltและtitleแอตทริบิวต์
  5. รูปภาพจากเว็บเพจที่คุณต้องการพิมพ์โดยใช้สื่อสิ่งพิมพ์ css

ควรใช้ CSS เมื่อใด background-image

  1. รูปภาพที่ใช้เพื่อการออกแบบอย่างหมดจด
  2. ไม่มีความเกี่ยวข้องกับเนื้อหา
  3. รูปภาพขนาดเล็กซึ่งเราสามารถเล่นกับ CSS3
  4. ทำซ้ำรูปภาพ (ในไอคอนผู้เขียนบล็อก, ไอคอนวันที่จะถูกทำซ้ำสำหรับแต่ละบทความ ฯลฯ )

ฉันจะใช้มันตามเหตุผลเหล่านี้ นี่เป็นแนวทางปฏิบัติที่ดีของการเพิ่มประสิทธิภาพกลไกค้นหารูปภาพ


54

เบราว์เซอร์ไม่ได้ตั้งค่าให้พิมพ์ภาพพื้นหลังเสมอไป หากคุณต้องการให้คนอื่นพิมพ์หน้าของคุณ :)


9
เสียงเหมือน: PRO - ใช้ IMG หากคุณต้องการให้ภาพพิมพ์ตามค่าเริ่มต้น CON - ใช้ภาพพื้นหลังหากคุณไม่ต้องการให้พิมพ์ภาพเป็นค่าเริ่มต้น ทำได้ดีนี่!
ระบบหยุดชั่วคราว

7
ฉันคิดว่าความคิดคือการแยกสไตล์ CSS แบบพิมพ์อย่างเดียวซึ่งซ่อนรูปภาพหรือเปลี่ยนเป็นสิ่งที่เหมาะสมกว่า
Blazemonger

52

หากคุณมี CSS ในไฟล์ภายนอกก็มักจะสะดวกในการแสดงภาพที่ใช้บ่อยในเว็บไซต์ (เช่นภาพส่วนหัว) เป็นภาพพื้นหลังเพราะคุณมีความยืดหยุ่นในการเปลี่ยนภาพในภายหลัง

ตัวอย่างเช่นสมมติว่าคุณมี HTML ดังต่อไปนี้:

<div id="headerImage"></div>

... และ CSS:

#headerImage {
    width: 200px;
    height: 100px;
    background: url(Images/headerImage.png) no-repeat;
}

ไม่กี่วันต่อมาคุณเปลี่ยนตำแหน่งของภาพ สิ่งที่คุณต้องทำคืออัปเดต CSS:

#headerImage {
    width: 200px;
    height: 100px;
    background: url(../resources/images/headerImage.png) no-repeat;
}

มิฉะนั้นคุณต้องอัปเดตsrcแอตทริบิวต์ของ<img>แท็กที่เหมาะสมในไฟล์ HTML ทุกไฟล์ (สมมติว่าคุณไม่ได้ใช้ภาษาสคริปต์ฝั่งเซิร์ฟเวอร์หรือCMSเพื่อทำให้กระบวนการทำงานโดยอัตโนมัติ)

ภาพพื้นหลังก็มีประโยชน์เช่นกันหากคุณไม่ต้องการให้ผู้ใช้สามารถบันทึกภาพได้ (แม้ว่าฉันไม่จำเป็นต้องทำเช่นนี้)


14
สามารถบันทึกภาพพื้นหลังได้อย่างแน่นอนด้วยการกระจายตัวของแหล่งดูน้อยที่สุดไม่เพียงแค่คลิกขวาบนรูปภาพอย่างง่ายดาย
Michael Hackner

2
Firefox คลิกขวา. "ดูภาพพื้นหลัง" ไม่ใช่เรื่องยาก
TRiG

1
@TRiG เว้นเสียแต่ว่าจะมีการซ้อนทับแบบโปร่งใสหรือการดัดแปลงเมนูบริบทเฉพาะหน้าเพื่อป้องกันไม่ให้คุณทำเช่นนั้น ฉันเคยเห็นมาก่อนและในความคิดของฉันมันค่อนข้างโง่เพราะคุณไม่จำเป็นต้องไปที่ spelunking ในแหล่งที่มาหากหน้าโหลดอย่างเต็มที่แล้วใน Firefox อย่างน้อยคุณสามารถคลิกเครื่องมือ> ข้อมูลหน้า / alt + t i / คลิกขวาและเลือกดูข้อมูลหน้าเรียกดูส่วนสื่อและบันทึกรายการทั้งหมดที่คุณต้องการจากรายการ แน่นอนว่ามีวิธีในการป้องกันแม้กระทั่งว่าเช่นการฝังภาพในไฟล์ Flash หรือเทคนิคแปลก ๆ อื่น ๆ แต่แม้กระทั่งสามารถข้ามหรือคิดเป็น
JAB

ผมคิดว่าเทคนิคพื้นหลังไม่ได้ค่อนข้างดีสำหรับผู้ใช้ปฏิเสธที่จะบันทึกภาพ ...
ncubica

45

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


42

คำตอบบางคำอธิบายสถานการณ์ที่นี่ซับซ้อนเกินไป นี่เป็นสถานการณ์ง่าย ๆ ที่ตายแล้ว

เพียงตอบคำถามนี้ทุกครั้งที่คุณต้องการวางภาพ:

เป็นส่วนหนึ่งของเนื้อหาหรือส่วนหนึ่งของการออกแบบนี้หรือไม่?

หากคุณไม่สามารถตอบคำถามนี้ได้คุณอาจไม่รู้ว่าคุณกำลังทำอะไรอยู่หรือต้องการทำอะไร!

นอกจากนี้อย่าพิจารณาข้างเทคนิคทั้งสองเพียงเพราะคุณต้องการที่จะ "เป็นมิตรกับเครื่องพิมพ์" หรือไม่ อย่าซ่อนเนื้อหาจากมุมมอง SEO ด้วย CSS หากคุณพบว่าตัวเองจัดการเนื้อหาของคุณในไฟล์ CSS คุณยิงตัวเองเข้าที่ นี่เป็นเพียงการตัดสินใจเล็กน้อยของเนื้อหาหรือไม่ ควรละเว้นทุกด้านอื่น ๆ


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

28

ฉันจะเพิ่มอีกสองข้อโต้แย้ง:

  • imgแท็กเป็นสิ่งที่ดีถ้าคุณจำเป็นต้องปรับขนาดภาพ เช่นถ้าภาพต้นฉบับเป็น 100px คูณ 100 px และคุณต้องการให้เป็น 80px โดย 80px คุณสามารถตั้งค่าความกว้างและความสูง CSS ของแท็ก img ฉันไม่รู้วิธีที่ดีในการทำสิ่งนี้โดยใช้ภาพพื้นหลัง แก้ไข: ตอนนี้สามารถทำได้ด้วยภาพพื้นหลังโดยใช้background-sizeแอตทริบิวต์ CSS3

  • การใช้ภาพพื้นหลังเป็นสิ่งที่ดีเมื่อคุณต้องการแบบไดนามิกสลับไปมาระหว่างสไปรท์ เช่นถ้าคุณมีรูปปุ่มและคุณต้องการให้ภาพที่แยกต่างหากแสดงเมื่อเคอร์เซอร์วางตัวอยู่เหนือองค์ประกอบคุณสามารถใช้ภาพพื้นหลังที่มีทั้งสไปรต์ปกติและโฮเวอร์และเปลี่ยนตำแหน่งพื้นหลังแบบไดนามิก


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

1
นี่เป็นวิธีที่ทำได้ใน CSSbackground-size: 80px 80px;
Kareem

2
ขอบคุณ @Kareem ฉันเห็นสิ่งนี้ถูกนำมาใช้กับ CSS3 ซึ่งยังไม่ปรากฏเมื่อฉันตอบ ฉันได้แก้ไขคำตอบของฉันเพื่อสะท้อนสิ่งนี้
Anders Rabo Thorbeck

ฉันคิดว่ามันสำคัญที่จะต้องทราบว่าการปรับขนาดรูปภาพอาจมีความยุ่งยากในแง่ของการปรับขนาดหรือการแก้ไข เมื่อเป็นไปได้ฉันจะไม่ปรับขนาดมากกว่า 40% (และนั่นก็คือยืด - 20% เป็นมาตรฐาน) โดยไม่ต้องนำรูปภาพของคุณไปยังซอฟต์แวร์ถ่ายภาพเพื่อปรับขนาดอย่างเหมาะสมโดยไม่สูญเสียคุณภาพ คุณภาพ DPI มีความสำคัญที่นี่หากมีข้อมูลไม่เพียงพอที่จะยืดและเติมเต็มจำนวนพิกเซลที่กำหนด
dale landry

18

ประโยชน์อีกประการหนึ่งจากการใช้แท็ก <IMG> เกี่ยวข้องกับ SEO - นั่นคือคุณสามารถให้ข้อมูลเพิ่มเติมเกี่ยวกับรูปภาพในแอตทริบิวต์ ALT ของแท็กรูปภาพในขณะที่ไม่มีวิธีให้ข้อมูลดังกล่าวเมื่อระบุรูปภาพผ่าน CSS และในนั้น กรณีเฉพาะชื่อไฟล์ภาพอาจถูกจัดทำดัชนีโดยเครื่องมือค้นหา แอตทริบิวต์ ALT ให้ประโยชน์จากแท็ก SEO <IMG> มากกว่าวิธีการ CSS นั่นเป็นเหตุผลที่ตามฉันมันจะดีกว่าที่จะระบุภาพที่คุณต้องการอันดับที่ดีในผลการค้นหาภาพ (เช่น Google ค้นหารูปภาพ) โดยใช้แท็ก <IMG>


ภาพพื้นหลังค่า ALT สามารถกำหนดได้ในแผนผังไซต์ google.com/schemas/sitemap-image/1.1
Kareem

17

เบื้องหน้า = img

พื้นหลัง = พื้นหลัง CSS


5
แน่นอน แต่สิ่งที่เกี่ยวกับตัวบ่งชี้ลูกศรชี้ลงเล็ก ๆ ถัดจากปุ่ม "เมนู" หรือองค์ประกอบอื่น ๆ คุณจำแนกประเภทพื้นหน้าหรือพื้นหลังอย่างไร
dudewad

@dudewad ฉันจะบอกว่าเบื้องหน้าเพราะพวกเขา (มองเห็น) ในเลเยอร์ "ด้านบน" ของหน้าทับลงบนองค์ประกอบอื่น ๆ
jkdev

14

ใช้ภาพพื้นหลังเฉพาะเมื่อจำเป็นเช่นภาชนะที่มีภาพที่เรียงต่อกัน

หนึ่งในข้อดีที่สำคัญโดยใช้ภาพคือว่ามันเป็นที่ดีกว่าสำหรับ SEO


3
อาจเป็นเพราะคุณสามารถใช้แอตทริบิวต์ alt
David

4
นั่นไม่ได้ขึ้นอยู่กับว่าคุณต้องการ SEO สำหรับภาพนั้นหรือไม่ ฉันไม่เห็นสาเหตุที่คุณจะไปทำ SEO กับภาพที่เป็นส่วนหนึ่งของการออกแบบหน้าไม่ใช่เนื้อหา (เช่นไอคอนอีเมลในหน้าติดต่อของคุณ) ดังนั้นจริง ๆ แล้วฉันอยากจะเปลี่ยนคำพูดของคุณ ใช้ IMAGES เฉพาะเมื่อจำเป็น (เกี่ยวข้องกับเนื้อหาเกี่ยวข้องกับการพิมพ์และ / หรือเกี่ยวข้องกับ SEO)
Volzy

12

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

ปัญหาใหญ่กับการ<img />ซ้อนทับ ถ้าฉันต้องการเงาภายในของ CSS บนภาพของฉัน ( box-shadow:inset 0 0 5px rgb(0,0,0,.5)) ในกรณีนี้เนื่องจาก<img />ไม่มีองค์ประกอบลูกคุณต้องใช้การวางตำแหน่งและเพิ่มองค์ประกอบว่างซึ่งเท่ากับมาร์กอัปที่ไม่มีประโยชน์

สรุปแล้วมันค่อนข้างเป็นสถานการณ์


11

สองสถานการณ์อื่น ๆ ที่background-imageควรใช้:

  • เมื่อคุณต้องการเปลี่ยนภาพเมื่อวางเมาส์ไว้
  • เมื่อคุณต้องการเพิ่มมุมโค้งมนให้กับภาพ หากคุณใช้imgรูปภาพจะหลุดออกจากมุมมน

คุณสามารถทำได้จริง ๆ :img { border-radius: 10px; }
Rafff

@RafcioKowalsky คุณถูกต้อง ไม่สามารถจำเงื่อนไขที่แน่นอนที่border-radiusไม่ทำงาน
Behrang Saeedzadeh

10

ใช้ CSS ภาพพื้นหลังในกรณีที่มีหลายสกินหรือรุ่นของการออกแบบ จาวาสคริปต์สามารถใช้ในการเปลี่ยนคลาสขององค์ประกอบแบบไดนามิกซึ่งจะบังคับให้แสดงภาพที่แตกต่าง ด้วยแท็ก IMG อาจเป็นเรื่องยุ่งยากมากขึ้น


คุณแบบไดนามิกสามารถเปลี่ยน src แอตทริบิวต์ของแท็กภาพเกินไปเพียงเป็นเรื่องง่ายเหมือนการเปลี่ยนชั้นเรียน
roborourke

3
@sanchothefat จริง แต่ในกรณีนี้ภาพแหล่งจะต้องเก็บไว้ใน JS แทน CSS ไฟล์ IMO css จะเหมาะสมกว่าในการเก็บชื่อไฟล์
MK_Dev

7

นี่คือข้อพิจารณาทางเทคนิค: ภาพจะถูกสร้างขึ้นแบบไดนามิกหรือไม่? มันมีแนวโน้มที่จะสร้าง<img>แท็กใน HTML ได้ง่ายกว่าการพยายามแก้ไขคุณสมบัติ CSS แบบไดนามิก


1
แล้วสไตล์แบบอินไลน์ล่ะ? คำถามนี้ต้องไม่ตัดสินใจโดยความคิดนี้
viam0Zah

บางทีฉันควรวลีด้วยวิธีนี้: คุณอยากจะทำงานกับองค์ประกอบ DOM หรือแอตทริบิวต์องค์ประกอบ?
ไบรอันเอ็ม

อาจคุ้มค่าที่จะพิจารณา bacl ใน '09 แต่ด้วย jQuery นี่ไม่ค่อยเป็นปัญหา มันง่ายยิ่งขึ้นและลื่นไหลในการเปลี่ยน CSS หรือคลาสบนองค์ประกอบมากกว่าองค์ประกอบสลับ
dfherr

7

ขนาดของภาพเป็นอย่างไร? ถ้าฉันใช้แท็ก img เบราว์เซอร์จะปรับขนาดภาพ ถ้าฉันใช้ css background เบราว์เซอร์ก็จะตัดอันจากภาพขนาดใหญ่


7

ในส่วนที่เกี่ยวกับการสร้างภาพเคลื่อนไหวโดยใช้ CSS TranslateX / Y (วิธีที่เหมาะสมในการสร้างภาพเคลื่อนไหว html) - หากคุณทำการบันทึก Chrome Timeline ของภาพพื้นหลัง CSS เป็นภาพเคลื่อนไหวและแท็ก IMG ที่เคลื่อนไหวคุณจะเห็นว่า พื้นหลังภาพ


7

มีอีกเหตุผล! หากคุณมีการออกแบบที่ตอบสนองและต้องการแยกการใช้รูปภาพระดับต่ำปานกลางและสูงสำหรับอุปกรณ์ผ่านการสืบค้นสื่อคุณควรใช้พื้นหลังเช่นกัน


1
maarten, terscheling ไม่ใช่ Pipeable ที่ฉันได้ยินจาก Vincent willems ดังนั้นคุณคิดว่ามันสามารถทำงานกับ PyMol ได้อย่างไร
Mehdi Nellen

1
โปรดดูเอกสารเป็นวิธี pipeable มันเป็นpieterpeitshoeve.nl/rondleiding
มาร์ติน

@ Macarteen ฉันเดาว่าตอนนี้สามารถทำได้โดยใช้ html 5 รูปภาพและแท็กแหล่งที่มา
Tick20

6

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


6

imgเป็นแท็ก html ด้วยเหตุผลดังนั้นควรใช้ สำหรับการอ้างอิงหรือแสดงสิ่งต่าง ๆ ผู้คนเช่น: ในบทความ

นอกจากนี้หากภาพที่มีความหมายหรือจะต้องมีการคลิกได้imgดีกว่าพื้นหลัง CSS สำหรับสถานการณ์อื่น ๆ ฉันคิดว่าสามารถใช้พื้นหลัง cssได้

ถึงแม้ว่ามันจะเป็นเรื่องที่จะต้องมีการหารือกันซ้ำแล้วซ้ำอีก

เว็บนักศึกษาจาก Paris, France


5

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

การใช้ภาพพื้นหลังจะ (เท่าที่ฉันทราบบนเบราว์เซอร์ส่วนใหญ่) ปิดใช้งานตัวเลือกเพื่อบันทึกภาพโดยตรง


5

อินพุตขนาดเล็กฉันมีปัญหาเกี่ยวกับภาพที่ตอบสนองทำให้การเรนเดอร์บน iphone ช้าลงถึงหนึ่งนาทีแม้จะเป็นภาพขนาดเล็ก:

<!-- Was super slow -->
<div class="stuff">
    <img src=".." width="100%" />
</div>

แต่เมื่อเปลี่ยนไปใช้ภาพพื้นหลังปัญหาที่หายไปนี้จะทำงานได้ก็ต่อเมื่อกำหนดเป้าหมายเบราว์เซอร์ใหม่


คุณมีการสนับสนุนหรืออธิบายพฤติกรรมนี้หรือไม่?
ทอดด์

ขออภัยฉันไม่รู้ว่าทำไมมันจะทำให้หน้าช้าลงเพื่อรวบรวมข้อมูล .. บางทีการไหลเวียนอีกครั้งในเบราว์เซอร์บน iphone มีทรัพยากรน้อยมาก
winthers

4

IMGโหลดครั้งแรกเพราะsrcอยู่ในไฟล์ html ตัวเองในขณะที่ในกรณีของbackground-imageแหล่งที่มากล่าวถึงในสไตล์ชีตดังนั้นภาพโหลดหลังจากโหลดสไตล์ชีทล่าช้าการโหลดของหน้าเว็บ


บวกกับเบราว์เซอร์บางตัว (เช่น Firefox 35) ดูเหมือนจะรีเฟรช CSS background-imageหลังจากเวลาผ่านไประยะหนึ่ง: หากคุณเปิดหลายแท็บเมื่อคุณกลับไปที่แท็บหลังจากที่บางครั้งพื้นหลัง CSS จะว่างเปล่าชั่วขณะหนึ่ง
Skippy le Grand Gourou

3

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


3

นอกจากนี้โปรดทราบว่าสไปเดอร์ของเครื่องมือค้นหาส่วนใหญ่จะไม่สร้างดัชนีรูปภาพพื้นหลัง CSS ดังนั้นภาพพื้นหลังจะถูกละเว้นและคุณจะไม่สามารถรับปริมาณการเข้าชมจากเครื่องมือค้นหา (ไม่มีประโยชน์ SEO ในระยะสั้น)

โดยที่ภาพทั้งหมดที่กำหนดด้วยแท็กจะได้รับการจัดทำดัชนี (ยกเว้นการยกเว้นด้วยตนเอง) และสามารถนำปริมาณการเข้าชมจากเครื่องมือค้นหาหากชื่อ / แอตทริบิวต์ alt และชื่อไฟล์ของพวกเขาได้รับการปรับให้เหมาะสมอย่างเหมาะสม


2

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


2

ฉันใช้ภาพแทนภาพพื้นหลังเมื่อฉันต้องการทำให้ยืดหยุ่นได้ 100% ซึ่งรองรับในเบราว์เซอร์ส่วนใหญ่


2

หากคุณต้องการเพิ่มภาพสำหรับเนื้อหาพิเศษในหน้าหรือสำหรับหน้าเดียวคุณควรใช้แท็ก IMG และหากคุณต้องการใส่ภาพมากกว่าหนึ่งหน้าคุณควรใช้ภาพพื้นหลัง CSS


2

Another background-image PRO: ภาพพื้นหลังสำหรับ<ul>/ <ol>รายการ

ใช้ภาพพื้นหลังหากเป็นส่วนหนึ่งของการออกแบบโดยรวมและทำซ้ำในหลาย ๆ หน้า โดยเฉพาะอย่างยิ่งในรูปแบบเทพดาพื้นหลังสำหรับการเพิ่มประสิทธิภาพ

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

** ภาพซ้ำ ๆ ที่ฉันใส่ไว้ใน<img>แท็กคือโลโก้ของไซต์ / บริษัท เพราะคนมักจะคลิกเพื่อไปที่หน้าแรกดังนั้นคุณจึงห่อด้วย<a>แท็ก

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