การใช้คลาส CSS เพื่อจัดรูปแบบของภาพ ในเทมเพลตแคสสิโอเปียของจูมล่า

ภาพตัวอักษร CSS ที่มีสัญลักษณ์โค้ดคิดอยู่และข้อความ Cassiopeia Template, How to use CSS Classes to Style Images
การใช้คลาส CSS เพื่อจัดรูปแบบของภาพ ในเทมเพลตแคสสิโอเปียของจูมล่า
 

บทนำ

ในบทความก่อนของซีรีส์นี้ (แคสสิโอเปีย {--mlinkarticle=8445--}เทมเพลตในตัวที่ทรงพลังของ Joomla: วิธีใช้คลาส CSS สําหรับบล็อกหมวดหมู่ของคุณ) เราพูดถึงคลาส CSS สำหรับหมวดหมู่ของบล็อก ครั้งนี้เราจะมาดูการจัดแต่งและการวางตําแหน่งรูปภาพในบทความ

การเลือกคลาสให้กับบทความ

ใน Joomla 4 มันสามารถที่จะแทรกคลาส CSS สําหรับภาพได้ ภายใต้ Content -> Options -> Editing Layout คุณจะพบฟิลด์ Intro Image Class และ Full Text Image Class คลาสที่คุณป้อนนี้ถูกใช้ทั่วโลกสําหรับบทความทั้งหมด ฟิลด์ Intro Image Class เกี่ยวข้องกับบล็อกหมวดหมู่เท่านั้นและไม่ได้เป็นส่วนหนึ่งของบทความนี้ เราจะเจาะลึกลงไปในฟิลด์ Full Text Image Class ในการติดตั้ง Joomla มาตรฐานฟิลด์จะเต็มไปด้วยคลาส "ซ้าย" คลาสดั้งเดิม "ซ้าย" และ "ขวา" จะลอยภาพไปในทิศทางที่สอดคล้องกันใน แคสสิโอเปีย เท่านั้น

การใช้คลาส

เนื่องจาก แคสสิโอเปีย นั้นใช้ Bootstrap เราจึงสามารถใช้คลาส "float-start" เพื่อวางตําแหน่งภาพเต็มทางด้านซ้าย (ทางด้านขวาสําหรับภาษา rtl) ของบล็อกข้อความ "float-end" สําหรับการวางตําแหน่งภาพเต็มทางด้านขวา (ด้านซ้ายสําหรับภาษา rtl) และ "float-none" เพื่อให้รูปไม่ลอย (https://getbootstrap.com/docs/5.3/utilities/float/) ในการทดสอบคลาสเราจะสร้างบทความและเพิ่มรูปภาพบทความแบบเต็มลงในแท็บ "รูปภาพและลิงก์":

 

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

เรากําลังใช้ "float-start" ระดับโลกซึ่งเราป้อนภายใต้เนื้อหา -> ตัวเลือก -> การแก้ไขเค้าโครง -> คลาสรูปภาพแบบเต็ม แต่คุณสามารถป้อนคลาสในแต่ละบทความได้ และนี่คือผลลัพธ์ในหน้าเว็บ:

 

ภาพบนหน้าเว็บที่มีหัวข้อ Gubegren และมีภาพจักรยานสีแดงข้างทาง ที่อยู่ทางซ้ายของบทความ
ภาพที่แสดงบนเว็บ

เพื่อให้ภาพที่ลอยนั้นดูดีขนาดของภาพมีความสําคัญมากเพราะคุณต้องเว้นที่ให้ข้อความด้วย หากรูปภาพใหญ่เกินไป จะไม่มีพื้นที่ว่างเหลือสําหรับข้อความ หากเราใช้ "float-start" หรือ "float-end" ภาพจะลอย (หรืออาจจะ) ไม่ว่าหน้าจอของคุณจะกว้างแค่ไหนก็ตาม จะทำให้ได้ภาพที่ไม่สวยงาม นั่นคือลักษณะของภาพลอยบนหน้าจอกว้าง 767px:

 

ภาพที่แสดงบนหน้าจอ หัวข้อ Gubegren และมีภาพจักรยานสีแดงข้างทาง ที่อยู่ทางซ้ายของบทความ และบทความอยู่ทางขวาและด้านล่างรูปภาพ
ภาพที่แสดงบนหน้าจอ

เพื่อแก้ปัญหานี้เราสามารถใช้คลาสลอยที่ตอบสนอง: https://getbootstrap.com/docs/5.3/utilities/float/#responsive

 

ภาพการใช้คลาสลอยที่ตอบสนอง ภาพจักรยานสีแดงอยู่ข้างทาง ในหน้า Full Article และช่อง Image Image Class เป็นข้อความ float-md-start
ใช้ภาพลอยที่ตอบสนอง

การใช้ "float-md-start" รูปภาพจะลอยเฉพาะในหน้าจอที่มีขนาดใหญ่กว่า 767px ส่วนภาพที่เล็กกว่านั้นข้อความจะแสดงใต้ภาพ:

 

ภาพบทความที่มี  ภาพจักรยานสีแดงอยู่ข้างทาง และมีข้อความให้ภาพ
มีข้อความใต้ภาพ

ปัญหาเดียวของคลาสโฟลตที่ตอบสนองคือไม่มีระยะขอบของข้อความ แต่คุณสามารถเพิ่มคลาสสําหรับระยะขอบได้เช่นกัน เช่น "me-md-2": ระยะขอบ (ทางด้านขวาของรูปภาพ สําหรับหน้าจอขนาดกลางและใหญ่กว่า และขนาด 2 นั่นคือ .5rem) เพิ่มเติมเกี่ยวกับระยะห่างใน Bootstrap: https://getbootstrap.com/docs/5.3/utilities/spacing/ และแน่นอนว่าคุณยังสามารถปรับเปลี่ยนตําแหน่งของภาพโดยใช้คลาส CSS ของคุณเองได้อีกด้วย คุณต้องที่จะจัดภาพให้อยู่กึ่งกลางใช่ไหม? ให้ป้อน "image-center" เป็นคลาสในช่องและเพิ่มคําจํากัดความ CSS นี้ในไฟล์ user.CSS ของคุณ:

 

 

.image-center {
  text-align: center;
}

 

 

ภาพจักรยานสีแดงที่อยู่ข้างทาง ข้างบนและกึ่งกลางของบทความ
ภาพอยู่ตรงกึ่งกลาง

คุณสามารถอ่านเพิ่มเติมเกี่ยวกับไฟล์ user.CSS ได้ในบทความก่อนหน้าของซีรีส์นี้: https://magazine.joomla.org/all-issues/december-2023/cassiopeia-joomla-powerful-built-in-template-the-basics 

การจัดรูปแบบรูปภาพภายในบทความ

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

  • คําอธิบายรูปภาพ (ข้อความแสดงแทน) - สําคัญมากสําหรับการเข้าถึงและ SEO ในกรณีที่รูปภาพของคุณเป็นเพียงการตกแต่งคุณสามารถทําเครื่องหมายในช่อง "ไม่มีคําอธิบาย" Joomla จะเพิ่มคุณสมยัติของ alt ที่ว่างเปล่า (alt = "") ให้กับรูปภาพ
  • ภาพจะแสดงผลไวขึ้น
  • คลาสรูปภาพ: คลาส CSS จะถูกเพิ่มลงในองค์ประกอบรูปภาพเอง
  • คลาสรูปภาพ: คลาส CSS จะถูกเพิ่มลงในองค์ประกอบรูปที่มีรูปภาพ องค์ประกอบฟิกเกอร์จะถูกสร้างขึ้นก็ต่อเมื่อมีคําบรรยายเท่านั้น
  • คําบรรยายภาพ: คําอธิบายภาพที่มองเห็นได้สําหรับรูปภาพ (คําอธิบายภาพเป็นการเพิ่มประสิทธิภาพและไม่ใช่การแทนที่คําอธิบายรูปภาพ)
ภาพหน้า Media ที่มีรูปภาพอวกาศต่างๆให้เลือก และช่อง Upload, Create New Folder, Delete
เพิ่มรูปภาพ

รูปภาพจะถูกแทรกบนบล็อกข้อความและแสดงทางด้านซ้ายของบทความ ("float-md-end"):

 

ภาพเนบิวลาที่ลอยอยู่ฝั่งด้านขวาในบทความและมีข้อความอยู่รอบๆ
ภาพลอยในบทความ

 

ตัวอย่างที่เลิศๆ

มาลองจัดแต่งแบบอื่น ๆ กัน Bootstrap มีคลาส "img-thumbnail" สําหรับรูปภาพ:

 

ภาพเนบิวลาที่มีเส้นขอบมีขาวแล้ข้อความทางด้านซ้ายของภาพ
ตัวอย่างภาพ

คลาสจะเพิ่มเส้นขอบจาง ๆ รอบ ๆ ภาพ
ส่วนภาพที่อยู่ตรงกลางที่มีมุมโค้งมนก็ทำได้ง่ายๆ เพียงเพิ่มคลาส "rounded-5 mx-auto d-block":

 

ภาพเนบิวลาที่เป็นขอบมุมมนอยู่ระหว่างบทความข้างบนและข้างล่าง
ภาพมุมมน

ข้อมูลเพิ่มเติมเกี่ยวกับมุมมน: https://getbootstrap.com/docs/5.3/utilities/borders/#radius
ในตัวอย่างถัดไปเราจะเพิ่มเส้นขอบสีเหลืองให้กับภาพที่อยู่ตรงกลาง: "border border-5 border-warning-subtle mx-auto d-block":

 

ภาพเนบิลาที่มีเส้นขอบสีเทาที่อยู่ระหว่างบทความข้างบนและข้างล่าง
ภาพขอบสี

ข้อมูลเพิ่มเติมเกี่ยวกับขอบเขต: https://getbootstrap.com/docs/5.3/utilities/borders/#border
อย่างที่คุณเห็นการใช้คลาส Bootstrap คุณไม่จําเป็นต้องเขียน CSS ด้วยตัวคุณเอง คุณต้องการอะไรที่สวยกว่านี้ไหม? ลองสร้างเส้นขอบนี้: https://CSS-generators.com/custom-borders/ และใช้รหัสนี้กับรูปภาพของคุณ:

 

.box {
    --mask:
        linear-gradient(#000 0 0) 50%/calc(100% - 55.5px) calc(100% - 55.5px) no-repeat,
        radial-gradient(farthest-side,#000 98%,#0000) 0 0/60px 60px round;
    -webkit-mask: var(--mask);
            mask: var(--mask);
}

 

 

ภาพเนบิวลาที่มีเส้นขอบเป็นลวดลายโค้งมนเหมือนวงกลมที่อยู่ระหว่างบทความด้านบนและด้านล่าง
ภาพเส้นขอบมีรวดลาย

ตัวอย่างสุดท้ายของการจัดแต่งภาพด้วยคุณสมบัติ “mask-image” การใช้ตัวสร้าง SVG ฉันได้สร้างแบบฟอร์มblob (https://app.haikei.app/) และเก็บไว้ใน "สื่อ/เทมเพลต/ไซต์/แคสสิโอเปีย/รูปภาพ" ด้วยรหัส CSS ต่อไปนี้ฉันใช้ SVG เป็นมาสก์สําหรับรูปภาพ:

.fancy-border2 {
    -webkit-mask-image: url(../images/blob-haikei.svg);
    mask-image: url(../images/blob-haikei.svg);
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

 

ภาพเนบิวลาที่มีเส้นขอบรูปร่างเกลือบกลมอยู่ระหว่างบทความด้านบนและด้านล่าง
ภาพรูปร่างอื่น

 

ข้อมูลเพิ่มเติมเกี่ยวกับคุณสมบัติของ mask-image  https://www.w3schools.com/CSS//CSS3_masking.asp

บทสรุป

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

หากคุณสนใจเกี่ยวกับ CSS เพิ่มเติมสามารถดูได้{--mlinkarticle=3795--}ที่นี่ หรือหากว่าคุณสนใจเกี่ยวกับจูมล่าเพิ่มเติม สามารถดูได้{--mlinkarticle=9703--}ที่นี่ หรือสามารถแวะชมส่วนเสริมต่างๆ ของจูมล่าได้ที่ Mindphp.com


อ้างอิง
Cassiopeia, Joomla’s powerful built-in template: how to use css classes to style images ,[ออนไลน์], เข้าถึงได้จาก https://magazine.joomla.org/all-issues/march-2024/cassiopeia,-joomla%E2%80%99s-powerful-built-in-template-how-to-use-css-classes-to-style-images

CSS สอนทำ image gallery พื้นฐาน ,[ออนไลน์], เข้าถึงได้จาก https://www.mindphp.com/บทเรียนออนไลน์/บทเรียน-css/9595-css-image-gallery.html 

Joomla (จูมล่า) คืออะไร จูมล่าเป็นโปรแกรมช่วยทำเว็บไซต์ จัดการเนื้อหาเว็บ CMS (ซีเอ็มเอส) ได้รับความนิยม และทันสมัย

 ,[ออนไลน์], เข้าถึงได้จาก https://www.mindphp.com/คู่มือ/73-คืออะไร/2620-joomla-cms.html 
กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ความแตกต่างระหว่าง ไลบรารี urllib กับ ไลบรารี requests
โดย Sakana ศ 18 ก.ค. 2025 6:59 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
9
ศ 18 ก.ค. 2025 6:59 pm โดย Sakana View Topic ความแตกต่างระหว่าง ไลบรารี urllib กับ ไลบรารี requests
urllib ใน Python การจัดการ URL และ HTTP Request
โดย Sakana ศ 18 ก.ค. 2025 5:13 pm บอร์ด Python Knowledge
0
20
ศ 18 ก.ค. 2025 5:13 pm โดย Sakana View Topic urllib ใน Python การจัดการ URL และ HTTP Request
library requests เอาไว้ทำอ่ะไรใน python
โดย Sakana ศ 18 ก.ค. 2025 4:15 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
14
ศ 18 ก.ค. 2025 4:15 pm โดย Sakana View Topic library requests เอาไว้ทำอ่ะไรใน python
Micro Web Framework คืออะไร
โดย Sakana พฤ 17 ก.ค. 2025 5:56 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
7
พฤ 17 ก.ค. 2025 5:56 pm โดย Sakana View Topic Micro Web Framework คืออะไร
วิธีดึงข้อมูลจาก API มาแสดงบนเว็บด้วย python
โดย Sakana พฤ 17 ก.ค. 2025 2:49 pm บอร์ด Python Knowledge
0
11
พฤ 17 ก.ค. 2025 2:49 pm โดย Sakana View Topic วิธีดึงข้อมูลจาก API มาแสดงบนเว็บด้วย python
ทำความเข้าใจ Callbacks ใน JavaScript: หัวใจของการทำงานแบบ Asynchronous
โดย Sakana พฤ 17 ก.ค. 2025 1:55 pm บอร์ด jQuery & Ajax Knowledge
0
13
พฤ 17 ก.ค. 2025 1:55 pm โดย Sakana View Topic ทำความเข้าใจ Callbacks ใน JavaScript: หัวใจของการทำงานแบบ Asynchronous
Truthy ใน Python คืออ่ะไร
โดย Sakana พฤ 17 ก.ค. 2025 12:50 pm บอร์ด Python Knowledge
0
12
พฤ 17 ก.ค. 2025 12:50 pm โดย Sakana View Topic Truthy ใน Python คืออ่ะไร
วิธีสร้างไฟล์ PDF รวมข้อความและรูปภาพด้วย PHP ร่วมกับ FPDF
โดย Sakana พ 16 ก.ค. 2025 6:04 pm บอร์ด PHP Knowledge
0
17
พ 16 ก.ค. 2025 6:04 pm โดย Sakana View Topic วิธีสร้างไฟล์ PDF รวมข้อความและรูปภาพด้วย PHP ร่วมกับ FPDF