การมองเห็น CSS ปรับปรุงการออกแบบเว็บไซต์ของคุณด้วยอัญมณีที่ซ่อนอยู่ได้อย่างไร

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

ในบทความนี้ ฉันจะให้คำจำกัดความของ CSS Visibility อธิบายถึงความสำคัญ และแสดงรายการและอธิบายค่าการมองเห็น CSS ต่างๆ

การมองเห็น CSS คืออะไร?

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

อย่างไรก็ตาม หากองค์ประกอบถูกซ่อน องค์ประกอบจะยังคงใช้พื้นที่แต่จะถูกซ่อนจากเบราว์เซอร์/หน้าจอปลายทาง

การมองเห็น CSS มีความสำคัญในกรณีต่อไปนี้

  • การควบคุมการมองเห็น: คุณสามารถควบคุมสิ่งที่ควรแสดงตามผู้ใช้ปัจจุบัน คุณสามารถตั้งค่าการเปิดเผยองค์ประกอบให้มองเห็นได้เฉพาะเมื่อผู้ใช้ทริกเกอร์องค์ประกอบโดยใช้การกระทำบางอย่างเท่านั้น ตัวอย่างเช่น การเลื่อนเมาส์หรือคลิกปุ่ม
  • การรักษาเค้าโครง: แอปพลิเคชันที่ดีควรรักษาเค้าโครงและเนื้อหาไว้โดยไม่คำนึงถึงขนาดหน้าจอ เมื่อคุณตั้งค่าการเปิดเผยองค์ประกอบเป็นซ่อน องค์ประกอบจะยังคงใช้พื้นที่แต่ผู้ใช้ปลายทางจะมองไม่เห็น วิธีการดังกล่าวทำให้สามารถรักษารูปแบบที่สอดคล้องกัน
  • เพิ่มประสิทธิภาพ: เบราว์เซอร์ไม่จำเป็นต้องคำนวณเลย์เอาต์ซ้ำอีกเมื่อตั้งค่าคุณสมบัติการเปิดเผยเป็น visibility:hidden อย่างไรก็ตาม เมื่อคุณใช้คุณสมบัติ display:none เบราว์เซอร์จำเป็นต้องคำนวณเค้าโครงใหม่ทุกครั้งที่คุณตัดสินใจแสดงองค์ประกอบอีกครั้ง
  • สร้าง UI แบบไดนามิกและแบบโต้ตอบ: คุณสามารถรวมคุณสมบัติการมองเห็น CSS กับคุณสมบัติอื่นๆ เช่น ความทึบ เพื่อสร้างเอฟเฟ็กต์เฟด ภาพเคลื่อนไหว และการเปลี่ยนภาพที่ราบรื่น

ค่าการมองเห็น CSS ที่แตกต่างกัน

การมองเห็น CSS มีค่าที่เป็นไปได้ห้าค่า ฉันจะลงรายละเอียดผ่านบล็อกโค้ดและภาพหน้าจอ หากท่านตั้งใจปฏิบัติตาม

  • สร้างโฟลเดอร์บนเครื่องของคุณ
  • เพิ่มสองไฟล์ index.html และ style.css
  • เปิดโครงการในโปรแกรมแก้ไขโค้ดที่คุณชื่นชอบ (ฉันใช้ VS Code)

คุณสามารถใช้คำสั่งนี้

mkdir -p CSS-visibility && cd CSS-visibility && touch index.html styles.css

ถัดไปคือการเชื่อมต่อไฟล์ index.html และ style.css ในส่วน ของไฟล์ index.html ให้เพิ่มสิ่งนี้

<link rel="stylesheet" href="https://wilku.top/how-css-visibility-enhances-your-web-design-with-hidden-gems/styles.css">

ตอนนี้คุณควรมีสิ่งที่คล้ายกันนี้ในโปรแกรมแก้ไขรหัสของคุณ

  ซีพียูถูกสร้างขึ้นมาได้อย่างไร?

มองเห็นได้

เมื่อคุณตั้งค่าขององค์ประกอบเป็นการมองเห็น: มองเห็นได้ องค์ประกอบนั้นจะปรากฏบนหน้าเว็บ การเปิดเผยนี้มีตามค่าเริ่มต้น เราสามารถมีสามกล่องในเอกสาร HTML เพื่อให้เข้าใจแนวคิดนี้ได้ดีขึ้น ในส่วน ของ index.html ให้เพิ่มสิ่งต่อไปนี้

<div class="container">

      <div class="box1"> Box 1 </div>

      <div class="box2"> Box 2 </div>

      <div class="box3"> Box 3 </div>

    </div>

ตอนนี้เราสามารถจัดรูปแบบ divs (กล่อง) โดยใช้โค้ด CSS ต่อไปนี้

.container {

    padding: 15px;

    width: max-content;

    display: flex;

    border: 1px solid black;

  }

  .box1,

  .box2,

  .box3 {

    height: 30px;

    width: 100px;

  }

  .box1 {

    background-color: rgb(224, 49, 209);

    margin-right: 15px;

  }

  .box2 {

    background-color: rgb(95, 234, 77);

    margin-right: 15px;

  }

  .box3 {

    background-color: rgb(154, 43, 12);

  }

เมื่อเรนเดอร์หน้าสุดท้ายแล้ว คุณจะได้หน้าตาแบบนี้

หากคุณตั้งค่าการมองเห็นของกล่องเป็นการมองเห็น: มองเห็นได้ จะไม่มีผลกระทบใด ๆ เนื่องจากกล่องทั้งหมดจะมองเห็นได้ตามค่าเริ่มต้น

อย่างไรก็ตาม เราสามารถสาธิตวิธีการทำงานของคุณสมบัติที่มองเห็นได้โดยใช้คุณสมบัติ display: none บนกล่องใดกล่องหนึ่ง เราสามารถเลือก box3 เป็นตัวอย่างของเรา เปลี่ยนโค้ด CSS ในคลาส .box3 ดังนี้

.box3 {

    background-color: rgb(154, 43, 12);

    display: none

  }

เมื่อคุณแสดงผลหน้าใหม่ คุณจะทราบว่าเรามีเพียงสองกล่อง หนึ่งและสอง

หากคุณสนใจ โปรดทราบว่าองค์ประกอบ .container ของเรามีขนาดที่เล็กลง เมื่อคุณใช้คุณสมบัติ display: none กล่องที่ 3 จะไม่แสดงผล และพื้นที่บนเบราว์เซอร์ของเราจะว่างสำหรับกล่องอื่นที่จะครอบครอง

ที่ซ่อนอยู่

เมื่อเราใช้คุณสมบัติ visibility: hidden CSS ในองค์ประกอบ มันจะถูกซ่อนจากผู้ใช้ปลายทาง อย่างไรก็ตามจะยังคงใช้พื้นที่ ตัวอย่างเช่น เราสามารถซ่อน Box2 โดยใช้คุณสมบัตินี้

เพื่อให้บรรลุเป้าหมายนี้ ให้แก้ไขโค้ด Box2 CSS ดังนี้

.box2 {

    background-color: rgb(95, 234, 77);

    margin-right: 15px;

    visibility: hidden

  }

สิ่งเดียวที่เราทำคือเพิ่มบรรทัดนี้

visibility: hidden

หน้าสุดท้ายจะเป็นดังรูป

  ท่องอย่างปลอดภัยและอิสระในขณะที่คุณอยู่ในอินเดีย

เราสามารถเห็นช่องว่างระหว่างกล่องที่ 1 และกล่องที่ 3 เนื่องจากองค์ประกอบกล่องที่ 2 ถูกซ่อนไว้เท่านั้น

เราจะเห็นว่าช่องที่ 2 ยังคงอยู่ใน DOM หากเราตรวจสอบหน้าที่แสดงผลของเรา

ทรุด

ยุบเป็นค่าการมองเห็นที่ใช้กับองค์ประกอบย่อย ตาราง HTML เป็นตัวอย่างที่สมบูรณ์แบบที่เราสามารถใช้แอตทริบิวต์ visibility:collapse

เราสามารถเพิ่มโค้ดต่อไปนี้เพื่อสร้างตารางในไฟล์ HTML ของเรา

<table>

        <tr>

          <th>Programming Language</th>

          <th>Framework</th>

        </tr>

        <tr>

          <td>JavaScript </td>

          <td>Angular </td>

        </tr>

        <tr class="hidden-row">

          <td>Ruby </td>

          <td>Ruby on Rails</td>

        </tr>

        <tr>

          <td>Python </td>

          <td>Django </td>

        </tr>

   </table>

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

table {

    border-collapse: collapse;

    width: 50%;

  }

  th, td {

    border: 1px solid black;

    padding: 8px;

  }

เมื่อแสดงตารางจะได้ดังนี้

ตอนนี้เราจะซ่อนแถวที่สองเพื่อสาธิตวิธีการทำงานของแอตทริบิวต์การมองเห็น: การยุบ เพิ่มสิ่งนี้ในโค้ด CSS ของคุณ

.hidden-row {

    visibility: collapse;

  }

เมื่อเพจแสดงผล แถวที่มี Ruby และ Ruby บน Rails จะถูกซ่อน

อักษรย่อ

การเปิดเผย: คุณสมบัติเริ่มต้นจะรีเซ็ตองค์ประกอบ HTML เป็นค่าเริ่มต้น ตัวอย่างเช่น;

  • เราเริ่มต้นด้วยการแสดงแถวทั้งหมดในตารางของเรา
  • เรายุบค่าของแถวที่ 2 จึงซ่อนไว้
  • ตอนนี้เราสามารถกลับไปที่ค่าเริ่มต้น (แสดง)

เราจะเพิ่มปุ่มที่สลับระหว่างค่าที่แสดงและยุบเพื่อแสดงสิ่งนี้

เพิ่มปุ่มที่คลิกได้นี้ในโค้ด HTML ของคุณ

<button onclick="toggleVisibility()">Click Me!!</button>

จากนั้นเราสามารถเพิ่มฟังก์ชัน JavaScript ที่ค้นหาคลาส .hidden-row และสลับคลาส .visible-row เมื่อคลิกปุ่ม

<script>

    function toggleVisibility() {

      const hiddenRow = document.querySelector('.hidden-row');

      hiddenRow.classList.toggle('visible-row');

    }

  </script>

Add this code to your CSS file;

.visible-row {

    visibility: initial;

  }

ค่าการมองเห็นจะสลับไปมาเมื่อคุณคลิกปุ่มที่แสดง

สืบทอด

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

เราสามารถมีรหัสง่ายๆ นี้เพื่อแสดงให้เห็นว่าคุณสมบัตินี้ทำงานอย่างไร

<h1>Inherit Demo</h1>

   <div style="visibility: hidden">

     <h2 style="visibility: inherit"> Hidden</h2>

   </div>

   <p>Visible (not inside a hidden element) </p>

 </p>

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

และ

เรามี div หนึ่งรายการที่เราตั้งค่าการมองเห็นเป็นซ่อนไว้ เรามีแท็ก

อยู่ภายใน div เราได้ตั้งค่าการเปิดเผยของ

เป็นมรดก ซึ่งหมายความว่าสืบทอดมาจากพาเรนต์ div

อย่างไรก็ตาม หากเราตั้งค่าคุณสมบัติของ div เป็นการมองเห็น

(ลูกของ div) ก็จะสืบทอดคุณสมบัตินั้นเช่นกัน

<h>Inherit Demo</h>

    <div style="visibility: visible">

      <h2 style="visibility: inherit"> Hidden</h2>

    </div>

    <p>Visible (not inside a hidden element) </p>

การมองเห็น CSS:ซ่อน vs. จอแสดงผล:ไม่มี

ข้อแตกต่างที่สำคัญระหว่าง display:none และ visibility:hidden คืออันแรกจะลบองค์ประกอบออกจากเลย์เอาต์ทั้งหมด ในขณะที่อันหลังจะซ่อนองค์ประกอบแต่ยังคงใช้พื้นที่อยู่

เราสามารถใช้รหัสนี้เพื่อแสดงความแตกต่างระหว่างทั้งสอง

<!DOCTYPE html>

<html>

<head>

    <style>

        .box {

          display: inline-block;

          width: 100px;

          height: 100px;

          background-color: lightgray;

          margin-right: 20px;

        }

        .box1 {

          background-color: lightblue;

        }

        .box2 {

          background-color: black;

        }

        .container {

            padding: 10px;

            border :2px solid black;

            padding-left: 20px;

            width: 250px;

        }

      </style>

    </head>

    <body>

      <div class="container">

        <div class="box box1"></div>

        <div class="box box2"></div>

      </div>

</body>

</html>

หากเราเรนเดอร์หน้าเว็บ เราจะมีสองกล่องเคียงข้างกัน

จอแสดงผล: ไม่มีการสาธิต

เพิ่มสิ่งนี้ในคลาส .box1;

display: none;

เมื่อคุณเรนเดอร์เพจ คุณจะทราบว่า .box1 จะไม่แสดงอีกต่อไป กล่องที่สอง (สีดำ) จะเลื่อนไปทางซ้ายเพื่อครอบครองพื้นที่ที่เคยครอบครองโดยกล่องสีฟ้าอ่อน

การเปิดเผย: การสาธิตที่ซ่อนอยู่

แทนที่จะเป็น display: none ให้เพิ่มคลาส .box1 นี้

visibility: hidden

คุณสมบัตินี้เว้นช่องว่างไว้สำหรับ box1 แต่ไม่แสดง ในทางกลับกัน box2 ยังคงอยู่ที่เดิม

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

ปรับปรุงการเข้าถึงด้วย CSS Visibility

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

เราสามารถมีรหัสนี้เพื่อแสดงให้เห็นว่าคุณสามารถปรับปรุงการมองเห็นได้อย่างไร

<!DOCTYPE html>

<html>

  <head>

    <title>Homepage</title>

    <style>

      .login-form {

        display: none;

      }

      .login-text:hover + .login-form {

        display: block;

      }

      .login-form label {

        display: block;

        margin-bottom: 5px;

      }

      .login-form input {

        width: 30%;

        margin-bottom: 10px;

      }

    </style>

  </head>

  <body>

    <p class="login-text">Login</p>

    <form class="login-form">

      <label for="username">Username:</label>

      <input type="text" id="username" name="username" required />

      <label for="password">Password:</label>

      <input type="password" id="password" name="password" required />

      <button type="submit">Submit</button>

    </form>

  </body>

</html>

แบบฟอร์มการเข้าสู่ระบบจะปรากฏให้เห็นเมื่อคุณวางเมาส์เหนือรายการแรกเท่านั้น

บทสรุป

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

ดูคำแนะนำและแหล่งข้อมูล CSS ของเราเพื่อเรียนรู้เพิ่มเติมเกี่ยวกับคุณสมบัติ CSS ที่คุณสามารถรวมเข้ากับการมองเห็น CSS

เรื่องล่าสุด

x