ทำไมต้องใช้ CSS. HTML และ CSS - ทำไมคุณต้องรู้จักพวกเขา และเหตุใดจึงจำเป็นต้องมีความรู้เกี่ยวกับ PHP และ MySQL แต่มีขอบเขตน้อยกว่ามาก มาร์กอัป: แสดงความคิดเห็นเกี่ยวกับช่องว่าง

เรานำเสนอการแปลบทความ “เหตุใด CSS Grid จึงดีกว่า Bootstrap สำหรับการสร้างเลย์เอาต์” โดย Per Harald Borgen ซึ่งเผยแพร่บนเว็บไซต์ ru.hexlet.io

CSS Grid เป็นวิธีใหม่ในการสร้างเลย์เอาต์บนเว็บ เป็นครั้งแรกที่ระบบเค้าโครงเต็มรูปแบบพร้อมใช้งานโดยตรงในเบราว์เซอร์ซึ่งมีข้อดีมากมาย

ประโยชน์เหล่านี้จะโดดเด่นเป็นพิเศษเมื่อคุณเปรียบเทียบ CSS Grid กับ Bootstrap เฟรมเวิร์กยอดนิยม ไม่เพียงแต่คุณสามารถสร้างเลย์เอาต์ที่ก่อนหน้านี้เป็นไปไม่ได้หากไม่มี JavaScript เท่านั้น แต่โค้ดของคุณจะง่ายต่อการบำรุงรักษาและเข้าใจอีกด้วย

มาดูเหตุผลสามอันดับแรกว่าทำไมฉันถึงคิดว่า CSS Grid เหนือกว่า Bootstrap

มาร์กอัปจะง่ายขึ้น

การแทนที่ Bootstrap ด้วย CSS Grid จะทำให้ HTML สะอาดขึ้น แม้ว่านี่ไม่ใช่ประโยชน์ที่สำคัญที่สุด แต่ก็อาจเป็นประโยชน์อย่างแรกที่คุณจะสังเกตเห็น

เพื่อความชัดเจน ฉันได้สร้างเค้าโครงเว็บไซต์จำลองเพื่อเปรียบเทียบโค้ดที่จำเป็นสำหรับทั้งสองเวอร์ชัน ที่นี่:

บูทสแตรป

ก่อนอื่นเรามาดูมาร์กอัปที่จำเป็นในการสร้างไซต์นี้ใน Bootstrap กันก่อน

ที่นี่ฉันอยากให้คุณใส่ใจกับสิ่งนี้:

  1. แต่ละบรรทัดต้องมีแท็กแยกกัน
    .
  2. ต้องใช้ชื่อคลาส (col-xs-2) เพื่อระบุเค้าโครง
  3. เมื่อรูปแบบนี้ซับซ้อน HTML ก็ซับซ้อนเช่นกัน

หากนี่คือไซต์ที่ตอบสนอง แท็กมักจะดูแย่ลงไปอีก:

CSS กริด

ตอนนี้เรามาดูวิธีการใช้งานแบบเดียวกันใน CSS Grid นี่คือ HTML:

ฉันสามารถใช้องค์ประกอบเชิงความหมายได้ แต่ตัดสินใจที่จะยึดติดกับ div เพื่อให้การเปรียบเทียบกับ Bootstrap ชัดเจนยิ่งขึ้น

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

และแตกต่างจาก Bootstrap ตรงที่มาร์กอัปนี้จะไม่ซับซ้อนเกินไปเนื่องจากความซับซ้อนของเค้าโครงหน้าเพิ่มขึ้น

ในตัวอย่าง Bootstrap คุณไม่จำเป็นต้องเพิ่ม CSS ใด ๆ ใน CSS Grid คุณจำเป็นต้องเพิ่มอย่างแน่นอน โดยเฉพาะอย่างยิ่ง คุณต้องเพิ่มสิ่งนี้:

สำหรับบางคน นี่อาจเป็นจุดขายสำหรับ Bootstrap: คุณไม่ต้องกังวลกับ CSS ในการสร้างกริดแบบง่าย - คุณเพียงแค่สร้างเลย์เอาต์ใน HTML

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

มีความยืดหยุ่นมากขึ้น

สมมติว่าคุณต้องการเปลี่ยนเค้าโครงตามขนาดหน้าจอ เช่น ยกเมนูขึ้นแถวบนสุดเพื่อดูจากอุปกรณ์เคลื่อนที่

กล่าวอีกนัยหนึ่ง เปลี่ยนเค้าโครงจากสิ่งนี้:

สำหรับสิ่งนี้:

CSS กริด

การทำสิ่งนี้ด้วย CSS Grid นั้นง่ายมาก เราเพิ่มคิวรีสื่อและผสมบล็อกต่างๆ ตามที่เราต้องการ:

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

CSS Grid ช่วยให้คุณสามารถเปลี่ยน HTML ให้เป็นอย่างที่มันควรจะเป็น เป็นการมาร์กอัปเนื้อหา ไม่ใช่การมองเห็น ซึ่งเป็นสิ่งที่ CSS ตั้งใจจะทำ

บูทสแตรป

หากเราต้องการทำเช่นเดียวกันใน Bootstrap เราจะต้องเปลี่ยน HTML เราจะต้องย้ายแท็กเมนูไปที่แถวบนสุด นอกเหนือจากส่วนหัว เนื่องจากเมนูในแถวที่สองถูกจับเป็นตัวประกัน

การทำสิ่งนี้ด้วยการสืบค้นสื่อไม่ใช่งานที่ไม่สำคัญ ซึ่งสามารถทำได้ด้วย HTML และ CSS เท่านั้น และคุณจะต้องเล่นกับ JavaScript

ตัวอย่างนี้แสดงให้เห็นถึงประโยชน์อย่างมากของ CSS Grid ที่ฉันได้พบด้วยตัวเอง

ไม่มีการจำกัดคอลัมน์อีก 12 คอลัมน์

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

ไม่เช่นนั้นกับ CSS Grid คุณสามารถสร้างเลย์เอาต์ของคุณเองโดยมีจำนวนคอลัมน์ได้มากเท่าที่คุณต้องการ นี่คือเค้าโครงเจ็ดคอลัมน์

ทำได้โดยการตั้งค่า grid-template-columns ให้ทำซ้ำ (7, 1fr) ดังนี้:

อาจมีแฮ็กในการทำเช่นนี้ใน Bootstrap... และฉันรู้ว่า Bootstrap 4 ใช้ Flexbox ซึ่งช่วยให้มีความยืดหยุ่น แต่ก็ยังไม่อยู่ในช่วงเบต้า

ก่อนที่จะสรุปบทความนี้ เราต้องพูดถึงการสนับสนุนเบราว์เซอร์ก่อน ในขณะที่เขียนบทความนี้ 75% ของการเข้าชมเว็บทั่วโลกรองรับ CSS Grid

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

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

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

บทสรุป

“ยิ่งฉันใช้ CSS Grid มากเท่าไหร่ ฉันก็ยิ่งมั่นใจว่าการเพิ่มเลเยอร์นามธรรมลงไปนั้นไม่มีประโยชน์ CSS Grid เป็นเฟรมเวิร์กเค้าโครงที่สร้างขึ้นในเบราว์เซอร์โดยตรง"

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

ช่วยให้คุณสร้างเว็บไซต์ได้โดยไม่ต้องเป็นเจ้าของภูมิปัญญาทั้งหมดที่กล่าวมาข้างต้น แต่ในขณะเดียวกัน ในขณะที่คุณทำงาน คุณอาจมีคำถามและปัญหาที่คุณไม่สามารถแก้ไขได้โดยใช้ CMS ที่ซับซ้อนที่สุด (Joomla, WordPress, Drupal ฯลฯ )

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

คุณอาจไม่พบรายการดังกล่าวในแผงผู้ดูแลระบบ CMS ท่ามกลางการตั้งค่าอื่น ๆ (ตรรกะของผู้เขียนเอ็นจิ้นเมื่อวางรายการการตั้งค่าบางอย่างยังไม่ชัดเจนและบางทีอิทธิพลของนิสัยของผู้เขียนเองก็มีบทบาทบางอย่างที่นี่) หรือผู้พัฒนาจะไม่รวมรายการดังกล่าวไว้ในแผงผู้ดูแลระบบของระบบจัดการเนื้อหาเลย เป็นไปไม่ได้ที่จะใช้การตั้งค่าสำหรับทุกสิ่งผ่านแผงผู้ดูแลระบบ - โดยปกติจะแสดงเฉพาะการตั้งค่าที่จำเป็นและใช้บ่อยที่สุดเท่านั้น

มันมักจะเกิดขึ้น ง่ายต่อการแก้ไขปัญหาไม่ใช่ด้วยเครื่องมือมาตรฐานที่มีให้ในแผงผู้ดูแลระบบกลไก แต่โดยตรงโดยการแก้ไขบางอย่างในฐานข้อมูลหรือโดยการปรับเนื้อหาของไฟล์กลไกบางไฟล์ผ่านการเข้าถึงผ่าน FTP

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

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

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

ความจริงก็คือเครื่องมือค้นหามีความใกล้ชิดกันมาก ดูอัตราส่วนขององค์ประกอบข้อมูลรหัสหน้าเว็บ (ข้อความที่แสดงในเบราว์เซอร์) และส่วนประกอบบริการ (แท็ก สคริปต์ต่างๆ ฯลฯ) ดังนั้นด้วยการย้ายเกินขอบเขตของหน้านี้ทุกสิ่งที่ไม่มีองค์ประกอบข้อมูล แต่รับผิดชอบเฉพาะการออกแบบหน้าเว็บเท่านั้น เราจึงปรับปรุงทัศนคติของเครื่องมือค้นหาที่มีต่อโครงการของเรา (อย่างน้อยก็ในทางทฤษฎี)

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

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

ตัวแก้ไขใดดีกว่าในการแก้ไขหรือเปลี่ยนแปลงโค้ด

ไม่มีอะไรซับซ้อนเกี่ยวกับเรื่องนี้เพราะโดยพื้นฐานแล้วมันไม่ใช่แม้แต่ภาษาโปรแกรม แต่เป็นมาร์กอัปไฮเปอร์เท็กซ์ซึ่งคล้ายกับไวยากรณ์ในภาษารัสเซีย คุณต้องการให้คำแนะนำอะไรทันทีโดยพิจารณาจากประสบการณ์ของคุณเอง? ลองเขียนแท็กด้วยตัวเองในแผ่นจดบันทึก เช่น กระดาษจดบันทึก++(อ่านของฉัน) และไม่ใช่ในโปรแกรมเช่น Dreamviewer ทำไม

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

แต่ความจริงก็คือโดยพื้นฐานแล้วคุณจะต้องแก้ไขโค้ดที่มีอยู่ในไฟล์ Engine ของคุณ และจะสะดวกกว่ามากหากคุณอย่าลืมเขียนแท็กและคุณลักษณะทั้งหมดด้วยใจจริง (โชคดีที่มีแท็กไม่มาก) เหตุใดจึงต้องเปิดไฟล์ใน Dreamview ที่ยุ่งยากเพื่อแก้ไขแท็กเดียวในเมื่อเพื่อวัตถุประสงค์เหล่านี้แผ่นจดบันทึกทั่วไปหรืออะนาล็อกขั้นสูงที่เรียกว่า Notepad plus plus (ลิงก์ที่ให้ไว้ด้านบน) ก็เพียงพอแล้ว

แม้ว่านี่จะเป็นความเห็นส่วนตัวของฉัน (IMHO) และขึ้นอยู่กับคุณว่าจะตัดสินใจว่าอะไรสะดวกกว่ากัน ตัวอย่างเช่น Evgeny Popov ซึ่งฉันเรียนหลักสูตรทั้งหมดนี้ดูเหมือนจะเป็นสาวก Dreamviewer โดยหลักการแล้ว สิ่งหนึ่งที่สำคัญก็คือ คุณต้องแก้ไขโค้ดในตัวแก้ไขที่สามารถบันทึกการเปลี่ยนแปลงทั้งหมดที่ทำขึ้นได้ และหากต้องการ ให้ทุกอย่างกลับมาเหมือนเดิม(ย้อนกลับ).

ในกรณีนี้ไม่ว่าจะเลอะเทอะแค่ไหนทุกอย่างก็จะแก้ไขได้ และแน่นอนว่าการเน้นไวยากรณ์ของภาษาที่คุณเขียนหรือแก้ไขโค้ดนั้นสะดวกมาก Notepad++ เป็นตัวเลือกของฉันอย่างแน่นอน! ฉันพูดคุยเกี่ยวกับความสามารถของมันในบทความด้านบน

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

แม้ว่าแท็กหน้าเว็บใน CMS สมัยใหม่จะไม่ได้เขียนในไฟล์ตั้งแต่หนึ่งไฟล์ขึ้นไปเหมือนแต่ก่อน แต่ถูกสร้างขึ้น (ตีความ) จาก PHP และเป็นโค้ด Html ที่สร้างไว้แล้วด้วยวิธีนี้ซึ่งถูกแทรกลงในเบราว์เซอร์เพื่อที่มันจะตีความให้เป็นรูปแบบหน้าอินเทอร์เน็ตที่เข้าใจได้สำหรับเรา หากินใช่มั้ย?

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

แต่ไม่ต้องกังวล คุณไม่จำเป็นต้องมีความรู้ PHP มากนักเพื่อแก้ไขการออกแบบ พูดง่ายๆ ก็คือแท็กนั้นอยู่บนพื้นผิว และไม่ยากที่จะระบุและแก้ไขหากจำเป็น

คุณสามารถใช้เครื่องมืออะไรได้บ้าง?

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

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

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

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

ขอให้โชคดี! พบกันเร็ว ๆ นี้ในหน้าของเว็บไซต์บล็อก

คุณอาจจะสนใจ


แบบอักษรรัสเซียที่สวยงามสำหรับเว็บไซต์และคอมพิวเตอร์ในบริการออนไลน์ของ Google Font - จะดาวน์โหลดได้ที่ไหนและติดตั้งอย่างไร การออกแบบที่ปรับเปลี่ยนได้ (ตอบสนอง) - ปรับไซต์ให้เหมาะสมสำหรับการดูบนอุปกรณ์มือถือ
Gif, PNG หรือ JPEG - รูปแบบกราฟิกแรสเตอร์สำหรับเว็บ ข้อดีและข้อเสียเมื่อใช้บนเว็บไซต์

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

ข้อมูล: ทำไมคุณถึงต้องการ CSS?

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

การมีสไตล์ชีตภายนอกมีประโยชน์มากมาย แยกสไตล์ออกจากเนื้อหา HTML:

  • ช่วยหลีกเลี่ยงการทำซ้ำ
  • อำนวยความสะดวกในการบำรุงรักษา
  • ช่วยให้คุณทำการเปลี่ยนแปลงทั้งไซต์ได้ในที่เดียว

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

เมื่อผู้ใช้เปิดหน้าเว็บ เบราว์เซอร์จะดาวน์โหลดข้อมูลรูปแบบพร้อมกับเนื้อหาของหน้า

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

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

รายละเอียดเพิ่มเติม

ภาษามาร์กอัป เช่น HTML ยังมีวิธีการระบุสไตล์อีกด้วย

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

เมื่อใช้ CSS โดยปกติจะไม่ใช้การตั้งค่าสไตล์โดยใช้ภาษามาร์กอัป เนื่องจากข้อมูลสไตล์ทั้งหมดสามารถอ่านและแก้ไขได้อย่างง่ายดายในไฟล์ CSS

การดำเนินการ: สร้างสไตล์ชีต

  1. สร้างไฟล์ข้อความใหม่ในไดเร็กทอรีเดียวกันกับ doc1.html ที่สร้างในบทความแรก
  2. บันทึกเป็น style1.css ไฟล์นี้จะเป็นสไตล์ชีตของคุณ
  3. คัดลอกและวางบรรทัดต่อไปนี้ลงในไฟล์ CSS จากนั้นบันทึกไฟล์: strong (สี: red;)

การเชื่อมโยงสไตล์ชีตเข้ากับเอกสาร

  1. หากต้องการเชื่อมโยงเอกสารของคุณกับสไตล์ชีต คุณต้องทำการเปลี่ยนแปลงบางอย่างในไฟล์ HTML เพิ่มบรรทัดด้านล่าง: เอกสารตัวอย่าง

    จากน้อยไปมาก สไตล์ ฮีตส์

  2. บันทึกไฟล์และเปิดในเบราว์เซอร์ของคุณ สไตล์ชีตจะทำให้ตัวพิมพ์ใหญ่เป็นสีแดง:

นอกจากสีแดงแล้ว ยังมีชื่อสีอื่นๆ ใน CSS

  • บทช่วยสอน

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

1. เครื่องมือตรวจสอบ W3C

ขอแนะนำให้ตรวจสอบ HTML และ CSS ของเว็บไซต์ผ่านบริการ validator.w3.org บริการนี้จะสแกนโค้ดและแสดงข้อผิดพลาด เช่น
  • แท็กไม่ปิด
  • ไม่แนะนำอักขระในลิงก์
  • มีการใช้แท็กที่ไม่แนะนำ
  • ไม่ได้ระบุแอตทริบิวต์ที่ต้องการ
  • และอื่น ๆ.

2. เค้าโครงในรูปแบบ UTF-8

เมื่อจัดวางหน้า คุณต้องตรวจสอบให้แน่ใจว่าได้ตั้งค่าการเข้ารหัสไฟล์ไว้แล้ว UTF-8 (ไม่มี BOM). โปรแกรมแก้ไขข้อความแต่ละตัวจะตั้งค่าการเข้ารหัสที่แตกต่างกัน

ไฟล์ในรูปแบบ UTF-8 ให้คุณใช้อักขระที่ไม่เป็นไปตามมาตรฐานได้ (เช่น สัญลักษณ์ของภาษาต่างๆ สัญลักษณ์สกุลเงิน และอื่นๆ)

คุณต้องบอกเบราว์เซอร์ด้วยว่าหน้านั้นเปิดด้วยการเข้ารหัส UTF-8 ทำได้ผ่านแท็กด้านล่าง:

3. หลายองค์ประกอบมีรหัสเดียวกัน

ค่าของแอตทริบิวต์ id ในโค้ด HTML ไม่ควรซ้ำกัน

4. สไปรท์

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

ปัจจุบันยังนิยมใช้แบบอักษรที่มีไอคอนแทนสไปรท์ เหล่านั้น. แทนที่จะแสดงตัวอักษร ไอคอนรูปเฟือง หน้ายิ้ม และไอคอนอื่นๆ จะปรากฏขึ้น ตัวอย่างคือสัญลักษณ์ที่ใช้ใน Twitter Bootstrap

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

5. ตัวเลือกมากมาย

ไม่แนะนำให้ใช้ตัวเลือกมากกว่าสามตัวเพราะว่า สิ่งนี้ส่งผลต่อประสิทธิภาพของไซต์

/* ไม่แนะนำ การซ้อนขนาดใหญ่ */ .page .item .title a () /* สามารถย่อให้สั้นลงได้ */ .page .item a ()
เบราว์เซอร์อ่าน CSS จากขวาไปซ้าย เหล่านั้น. ในโค้ดด้านบน ขั้นแรกลิงก์ทั้งหมดที่อยู่ในหน้าจะถูกเลือก จากนั้นลิงก์เหล่านั้นที่อยู่ภายในองค์ประกอบ .item จะถูกเลือก

6. สไตล์ HTML

HTML มีไว้สำหรับการแสดงข้อมูล (ข้อความ รูปภาพ) การออกแบบเนื้อหา (เปลี่ยนขนาด สี แบบอักษร) เกิดขึ้นใน CSS

เกิดข้อผิดพลาดในรหัส

เกิดข้อผิดพลาดในรหัส

7. ชื่อชั้นเรียนไม่ถูกต้อง

เมื่อนักออกแบบเลย์เอาต์หลายคนต้องการให้ข้อความเป็นสีเขียว ให้แนบคลาส .green ไปด้วย

ข้อความ


มันผิดเพราะว่า... เมื่อเปลี่ยนดีไซน์อาจมีหลายสีเปลี่ยนไป เช่น ข้อความอาจปรากฏเป็นสีน้ำเงินแทนที่จะเป็นสีเขียว จากนั้นคุณจะต้องค้นหาแท็กทั้งหมดที่มีคลาส .green และแทนที่ด้วย .blue

ข้อความ

ข้อความ

8. พิกเซลในค่าเศษส่วน

เบราว์เซอร์บางตัวอนุญาตให้คุณระบุพิกเซลเป็นค่าเศษส่วน เช่น "1.5px" แต่มันผิดเพราะว่า... พิกเซลเป็นหน่วยที่แบ่งแยกไม่ได้ แทนที่จะเป็น "1.5px" ควรใช้ "1.5em" จะดีกว่า

P ( /* ไม่ถูกต้อง */ การเว้นวรรคตัวอักษร: 1.5px; /* ถูกต้อง */ การเว้นวรรคตัวอักษร: .005em; )

9. การใช้คลาสแทนรหัส

แนะนำให้เลือกตามคลาสแทน id เพราะ ตัวเลือกที่มี id จะมีน้ำหนักมากกว่าตัวเลือกของคลาส และเป็นการยากที่จะแทนที่ตัวเลือกเหล่านั้น

#modal a ( color: blue; ) /* สีด้านล่างไม่สามารถแทนที่ได้เนื่องจาก #modal มีน้ำหนักมากกว่าคลาส */ .modal-header a ( color: #333; ) /* ในกรณีนี้คุณจะต้องเพิ่ม #modal */ #modal .modal-header a ( color: #333; )
ยังไม่แนะนำให้ใช้!สำคัญเพราะว่า น้ำหนักของมันสูงกว่าแอตทริบิวต์ id และจะลบล้างได้ยากเช่นกัน

10. เมนู

เมนูควรจัดรูปแบบเป็นรายการ

หน้าแรก ข่าวสาร เกี่ยวกับบริษัท

  • บ้าน
  • ข่าว
  • เกี่ยวกับบริษัท

11. ไม่มี Alt สำหรับรูปภาพ

ต้องระบุแอตทริบิวต์ alt ในแท็ก (สามารถเว้นว่างได้)

12. แท็ก

ควรมีเพียงหนึ่งชื่อต่อแท็กต่อหน้า

. โดยพื้นฐานแล้ว แท็กนี้ประกอบด้วยชื่อของเพจ

13. การถอดความ

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

/* ไม่ถูกต้อง */ .tovar () .stranica () .zapros () /* ถูกต้อง */ .product () .page () .query ()

14. เคลียร์ฟิกซ์

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

ควรระบุ class.clearfix ในแท็กพาเรนต์ และอย่าวางไว้ข้างๆ

15. HTML - ภาษาการเขียนโปรแกรม

บางคนที่เพิ่งเริ่มใช้ HTML คิดว่า HTML เป็นภาษาโปรแกรม จริงๆ แล้ว HTML ไม่ใช่ภาษาโปรแกรม แต่เทียบได้กับ Microsoft Word ตัวอย่างเช่น หากต้องการทำให้ข้อความเป็นตัวหนา คุณต้องคลิกปุ่มใน Word และใน HTML คุณต้องเขียนโค้ด เหล่านั้น. HTML เป็นเพียงเครื่องมือที่เพิ่มข้อความ รูปภาพ ตาราง และองค์ประกอบอื่นๆ

ฉันมี html นี้:

การจากลาช่างเป็นความเศร้าอันแสนหวาน!- บิล แรตเทิลแลนด์โรลสเปียร์

และ CSS นี้ (เพิ่มต่อท้าย Site.css):

Fancify ( ขนาดตัวอักษร: 1.5em; น้ำหนักแบบอักษร: 800; ตระกูลแบบอักษร: Consolas, "Segoe UI", Calibri, sans-serif; รูปแบบแบบอักษร: ตัวเอียง; )

ดังนั้น ฉันคาดหวังว่าคำพูด ("การพรากจากกันช่างแสนหวาน!") เป็นตัวเอียงและใช้แบบอักษรที่แตกต่างจากชื่อคำพูด (Bill Rattleandrollspeer) เนื่องจากแท็ก span มีคลาส "fancify" ติดอยู่ คลาสเป็นสิ่งสำคัญที่ต้องดูเนื่องจากไฟล์ที่ปรากฏในการอ้างอิงไฟล์โครงร่างที่ใช้ไฟล์ Site.css

ตอนนี้ฉันกำลังทำอะไรผิดพลาดมือใหม่อยู่?

อัปเดต

ฉันคิดว่าบางทีปัญหาคือฉันเพิ่มคลาสใหม่ใน Site.css หลังจากส่วนนี้ในไฟล์นี้:

/******************* * รูปแบบมือถือ * ********************/ @media only screen และ (ความกว้างสูงสุด: 850px) (

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

อัปเดต 2

ต่อไปนี้เป็นวิธีการทำงานของ HTML:

และนี่คือกฎ CSS ของฉันใน Site.css:

ป้ายช่วง P .fancify ( ขนาดตัวอักษร: 1.5em; น้ำหนักแบบอักษร: 800; ตระกูลแบบอักษร: Consolas, "Segoe UI", Calibri, sans-serif; รูปแบบแบบอักษร: ตัวเอียง; จอแสดงผล: อินไลน์; )

แต่มันไม่เป็นที่รู้จัก ฉันคิดว่านี่เป็นการดำเนินการของโปรโตคอล css/html และควรได้รับการแก้ไขโดยหน่วยงานระดับโลกบางประเภท อีกครั้งฉันอาจจะทำผิดพลาดโง่ ๆ