Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

วิธีแก้ไข CSS background-image ไม่ทำงาน | HTML/CSS

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

เพื่อช่วยในเรื่องนี้ สี่วิธีในการแก้ไขภาพพื้นหลังของคุณไม่ทำงาน โดยใช้ HTML และ CSS:

1. ตรวจสอบว่าไฟล์ CSS ของคุณเชื่อมโยงอย่างถูกต้องในไฟล์ HTML

เพื่อให้สไตล์ CSS ของคุณโหลดบนเว็บไซต์ของคุณ คุณต้องเพิ่ม <link> แท็กในไฟล์ HTML ของคุณ แท็กนี้ควรอยู่ภายใน <head></head> แท็ก และควรมีลักษณะดังนี้:

<link rel="stylesheet" href="/style.css">

คุณจะทราบได้อย่างไรว่าไฟล์ CSS ของคุณโหลดอย่างถูกต้องหรือไม่

เครื่องหมายเดียวคือถ้าคุณโหลดเว็บไซต์และพื้นหลังเป็นสีขาว ข้อความทั้งหมดจะดูเหมือนแบบอักษร Times New Roman และไม่มีสีหรือรูปแบบอื่นๆ

คุณยังสามารถตรวจสอบเครื่องมือตรวจสอบของเบราว์เซอร์ได้ด้วยการคลิกขวาที่ใดก็ได้ในหน้าและเลือก "ตรวจสอบองค์ประกอบ" หรือกด Ctrl-Shift-I ในตัวตรวจสอบ หากคุณพบข้อผิดพลาดที่ระบุว่า 404 not found สำหรับไฟล์ CSS หรือ The resource... was blocked due to MIME type mismatch ที่บอกคุณว่ามีปัญหาในการโหลดไฟล์ CSS

วิธีแก้ไข CSS background-image ไม่ทำงาน | HTML/CSS

หากคุณพบข้อผิดพลาดเหล่านี้และเว็บไซต์ของคุณดูไม่มีสไตล์ สิ่งแรกที่ต้องตรวจสอบคือ ใน <link> แท็ก ตรวจสอบให้แน่ใจว่า href แอตทริบิวต์กำลังโหลดชื่อไฟล์เดียวกับไฟล์ CSS จริงของคุณและเส้นทางนั้นถูกต้อง

เส้นทางต้องสัมพันธ์กับตำแหน่งที่ไฟล์ HTML ของคุณอยู่ หากไฟล์ CSS อยู่ในไดเรกทอรีเดียวกับไฟล์ HTML คุณสามารถตั้งค่า href เป็น style.css (หรือชื่อไฟล์ CSS ของคุณ)

ฉันมักจะใส่เครื่องหมายทับ / ก่อนเส้นทาง เช่น href="/style.css" . เพื่อให้แน่ใจว่าเส้นทางจะเริ่มต้นที่รูทเว็บไซต์ของคุณ

คุณอาจต้องการสิ่งนี้หากคุณมีหน้าในโฟลเดอร์ย่อยต่าง ๆ ที่โหลด <head> . เดียวกันทั้งหมด รหัส. ตัวอย่างเช่น หากคุณใช้เทมเพลต CMS (ระบบจัดการเนื้อหา) ที่มีโค้ดที่ใช้ร่วมกัน

2. ตรวจสอบให้แน่ใจว่าได้ตั้งค่าเส้นทางของรูปภาพอย่างถูกต้องใน URL ของรูปภาพพื้นหลัง

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

จะทราบได้อย่างไรว่าโหลดภาพพื้นหลังถูกต้องหรือไม่

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

วิธีแก้ไข CSS background-image ไม่ทำงาน | HTML/CSS

หากเป็นเช่นนี้ ให้ตรวจสอบอีกครั้งว่าชื่อไฟล์รูปภาพตรงกับไฟล์จริง และเส้นทางใน background-image: url() กำลังไปยังตำแหน่งที่ถูกต้อง

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

เพื่อช่วยอธิบายเรื่องนี้ สมมติว่าคุณมีโครงสร้างไฟล์เว็บไซต์ดังนี้:

(project folder)
  |-- index.html
  |-- (css)
        |-- style.css
  |-- (img)
        |-- cat-pic-1.jpg

เว็บไซต์นี้มี index.html ไฟล์ในรูทโปรเจ็กต์ a css โฟลเดอร์ที่มี style.css ไฟล์และ img โฟลเดอร์ที่มีรูปภาพ cat-pic-1.jpg .

ในรูปแบบ CSS ของคุณ หากคุณต้องการโหลด cat-pic-1.jpg เป็นภาพพื้นหลัง เส้นทางของไฟล์จะต้อง:

  • ขึ้นไปหนึ่งระดับจาก css โฟลเดอร์
  • นำทางไปยัง img โฟลเดอร์
  • จากนั้นโหลดไฟล์ภาพเอง

background-image คุณสมบัติในไฟล์ CSS ควรมีลักษณะดังนี้:background-image: url('../img/cat-pic-1.jpg') .

../ สัญลักษณ์หมายความว่าคุณจะขึ้นไปหนึ่งระดับในโครงสร้างไฟล์

คุณสามารถทำสิ่งเดียวกันได้โดยการตั้งค่า:background-image: url('/img/cat-pic-1.jpg') .

วิธีนี้ใช้เครื่องหมายทับ (/ ) เพื่อเริ่มต้นจากรูทของเว็บไซต์ จากนั้นไปที่ img โฟลเดอร์เพื่อโหลดไฟล์ภาพ

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

3. กำหนดความกว้างและ/หรือความสูงขององค์ประกอบอย่างชัดเจน

หากรูปภาพไม่ปรากฏขึ้น แต่คุณไม่ได้รับข้อผิดพลาด 404 ให้ไปที่ตัวตรวจสอบโค้ดแล้วตรวจสอบองค์ประกอบเอง

หากไม่มีเนื้อหา HTML ในองค์ประกอบ องค์ประกอบนั้นอาจมีความกว้างหรือความสูงเป็นศูนย์ (หรือทั้งสองอย่าง!) ซึ่งหมายความว่าแม้ว่าภาพพื้นหลังจะโหลดอย่างถูกต้องในทางเทคนิค แต่องค์ประกอบจะไม่ปรากฏให้เห็นโดยพื้นฐานแล้วหากเป็น 0px ขนาด.

วิธีแก้ไข CSS background-image ไม่ทำงาน | HTML/CSS

ดูตัวอย่างด้านบนที่แสดงเว็บไซต์และตัวตรวจสอบโค้ด หากคุณวางเมาส์เหนือ .card__image องค์ประกอบในบานหน้าต่างด้านขวา ป้ายกำกับจะปรากฏเหนือองค์ประกอบในบานหน้าต่างด้านซ้าย บอกคุณว่ามี 354px ความกว้างและ 0px ส่วนสูง

นั่น 0px ความสูงหมายความว่าจะมองไม่เห็นองค์ประกอบ

หากต้องการแก้ไข ให้ตั้งค่าความสูงของ .card__image . อย่างชัดเจน องค์ประกอบเป็น height: 120px . หากองค์ประกอบอาจมีเนื้อหาข้อความที่มีความยาวต่างกัน คุณตั้งค่าเป็น min-height: 120px แทน ดังนั้นจะมีขนาดอย่างน้อย 120px สูงแต่สามารถสูงขึ้นได้หากเนื้อหาข้อความต้องการพื้นที่มากขึ้น

วิธีแก้ไข CSS background-image ไม่ทำงาน | HTML/CSS

4. ตรวจสอบให้แน่ใจว่าคุณใช้ไวยากรณ์ที่ถูกต้องในคุณสมบัติพื้นหลัง CSS

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

ต่อไปนี้คือค่าทั่วไปที่คุณอาจใช้ พร้อมด้วยค่าที่เป็นไปได้:

  • background-color: #000000;
  • background-image: url("/landscape1.jpg");
  • background-position: center;
  • background-repeat: no-repeat;
  • background-size: cover;

คุณสามารถใช้ background ชวเลขได้ คุณสมบัติที่ให้คุณรวมค่าต่าง ๆ เหล่านั้นไว้ในกฎรูปแบบเดียว:

background: #000 center/cover url("/img/landscape1.jpg") no-repeat;

หากคุณกำลังใช้คุณสมบัติชวเลขนี้ที่มีค่าจำนวนมาก ตรวจสอบให้แน่ใจว่าไวยากรณ์ถูกต้อง ลำดับของคุณสมบัติพื้นหลังที่แตกต่างกันนั้นไม่สำคัญ แต่มีข้อผิดพลาดที่ยุ่งยากอย่างหนึ่งหากคุณตั้งค่า background-size .

background-size ใช้ค่าได้ก็ต่อเมื่อเป็นไปตาม background-position ค่าด้วยเครื่องหมายทับ (/ ) ระหว่างพวกเขา. ในตัวอย่างของเรา เขียนแบบนี้: center/cover โดยที่ center คือ background-position และ cover คือ background-size .

คุณสามารถใช้ background-position คุณค่าด้วยตัวมันเองแต่หากลองใช้เพียง cover โดยตัวมันเอง กฎ CSS จะไม่ถูกต้องและ ไม่มี ของคุณสมบัติพื้นหลังจะทำงานได้เลย

หากเป็นเช่นนั้น คุณจะสามารถเห็นกฎที่ไม่ถูกต้องในตัวตรวจสอบโค้ดดังนี้:

วิธีแก้ไข CSS background-image ไม่ทำงาน | HTML/CSS