الخاصية Display و الخاصية Visibility في css

عرض العناصر Display Elements


الخاصية Display في لغة CSS

تحدد لغة CSS القيمة الافتراضية للخاصية display لجميع عناصر HTML ، على سبيل المثال يتم تقديم عنصر <div> ككتلة block ، بينما يتم عرض العنصر <span> بشكل مضمن inline.


تغير القيمة الإفتراضية للخاصية Display

يؤدي تجاوز القيمة الافتراضية للخاصية display للعنصر إلى تغير طريقة عرض العنصر في صفحة الويب . على سبيل المثال ، تغيير عنصر على مستوى مضمّن inline-level ليتم عرضه كعنصر على مستوى الكتلة block-level أو تغيير عنصر مستوى الكتلة ليتم عرضه كعنصر على مستوى مضمّن.

ملاحظة:

تعد الخاصية display واحدة من أقوى الخصائص في لغة CSS. وتكمن قوتها في إنشاء صفحات ويب تبدو بطريقة مختلفة ، ولكنها لا تزال تتبع معايير الويب.

في هذا الدرس سوف نتعلم قيم الخاصية display الأكثر استخدامًا.


القيمة Block

تجبر القيمة block للخاصية display العنصر على التصرف مثل عنصر مستوى الكتلة block-level element ، مثل عنصر <div> أو <p>. في المثال التالي سيتم عرض عنصري <span> و <a> كعناصر على مستوى الكتلة:

مثال
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="utf-8">
      <title>القيمة Block</title>
      <style>
      body {
      direction:rtl;
      text-align:center;
      font-size:30px;

      }
      span {
      display: block;
      background: #F0E68C;
      }
      a {
      display: block;
      background: #90EE90;
      }
      </style>
      </head>
      <body>
      <p>
      <a href="https://alawirisaddam.blogspot.com/" target="_top">Visit alawirisaddam.com</a>
      <br>
      <span>يُنشئ عنصر span هذا صندوق كتلة block box.</span>
      </p>
      </body>
      </html> 
    

المخرجات

القيمة Block

ملاحظة:

يؤدي تغيير نوع عرض عنصر ما إلى تغيير سلوك عرض العنصر فقط ، وليس نوع العنصر الذي هو عليه. على سبيل المثال ، إضافة الخاصية display لعنصر مضمن بالشكل التالي display: block ؛ لا يسمح بتداخل عنصر كتلة بداخله.

قائمة بعناصر الكتلة
<address>
<article>
<aside>
<blockquote>
<details>
<dialog>
<dd>
<div>
<dl>
<dt>
<fieldset>
<figcaption>
<figure>
<footer>
<form>
<h1>
<h2>
<h3>
<h4>
<h5>
<h6>
<header>
<hgroup>
<hr>
<li>
<main>
<nav>
<ol>
<p>
<pre>
<section>
<table>
<ul>

القيمة Inline

تتسبب القيمة inline للخاصية display في أن يتصرف العنصر كما لو كان عنصرًا مضمّناً inline-level element ، مثل عنصر <span> أو عنصر <a>. في المثال التالي سيتم عرض عنصري <p> و <li> كعناصر مضمنة:

مثال
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="utf-8">
      <title>القيمة Inline
      </title>
      <style>
      body {
      direction:rtl;
      text-align:center;
      font-size:30px;

      }

      p {
      display: inline;
      background: #8FBC8F;
      padding: 10px;
      }
      ul li {
      display: inline;
      margin: 10px;
      }
      </style>
      </head>
      <body>
      <p>اصبح عرض عنصر الفقرة هذا بشكل صندوق مضمن inline box.</p>
      <p>هذه الفقرة أيضا </p>
      <ul>
      <li>البند الاول</li>
      <li>البند الثاني</li>
      <li>البند الثالث</li>
      <li>البند الرابع</li>
      <li>البند الخامس</li>
      </ul>
      </body>
      </html> 
    

المخرجات

القيمة Inline

قائمة بالعناصر المضمنة
<a>
<abbr>
<acronym>
<audio>
<b>
<bdi>
<bdo>
<big>
<br>
<button>
<canvas>
<cite>
<code>
<data>
<datalist>
<del>
<dfn>
<em>
<embed>
<i>
<iframe>
<img>
<input>
<ins>
<kbd>
<label>
<map>
<mark>
<meter>
<noscript>
<object>
<output>
<picture>
<progress>
<q>
<ruby>
<s>
<samp>
<script>
<select>
<slot>
<small>
<span>
<strong>
<sub>
<sup>
<svg>
<template>
<textarea>
<time>
<u>
<tt>
<var>
<video>
<wbr>

القيمة Inline-Block

تتسبب القيمة inline-block للخاصية display في قيام العنصر بإنشاء مربع كتلة block box يتدفق مع المحتوى المحيط ، أي في نفس السطر مثل المحتوى المجاور. في المثال التالي سيتم عرض عنصري <div> و <span> ككتلة مضمنة:

مثال
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="utf-8">
      <title>القيمة Inline-Block</title>
      <style>
      body {
      direction:rtl;
      text-align:center;
      font-size:30px;

      }
      div {
      display:inline-block; 
      background: #90EE90;
      padding: 10px;
      }
      span {
      display: inline-block;        
      background: #F08080;
      padding: 10px;
      }
      </style>
      </head>
      <body>
      <div>
      <span>يقوم عنصر span هذا وعنصر div الاب الخاص به بإنشاء مربع كتلة مضمنة inline-block box.</span>
      <span>وهذا ايضا</span>
      </div>
      </body>
      </html>
    

المخرجات

القيمة Inline-Block


القيمة None

تؤدي القيمة none ببساطة إلى عدم إنشاء العنصر لأي مربعات على الإطلاق. لا تُنشئ عناصر الابناء أي مربعات أيضًا ، حتى إذا تم تحديد قيمة للخاصية display الخاصة بها على شيء آخر غير none. يتم عرض صفحة الويب كما لو أن العنصر غير موجود في شجرة المستند.

مثال
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="utf-8">
      <title>القيمة None
      </title>
      <style>
      body {
      direction:rtl;
      text-align:center;
      font-size:26px;

      }
      h1 {
      display: none;
      border : 5px solid blue;
      background : lightgray;
      }
      p {
      border : 5px solid blue;
      background : lightgray;
      }
      </style>
      </head>
      <body>
      <h1>Hello World!</h1>
      <p>تؤدي القمية <code>none</code>  للخاصية <code>display</code> ببساطة إلى عدم إنشاء العنصر لأي مربعات على الإطلاق.</p>  
      </body>
      </html> 
    

المخرجات

القيمة None

ملاحظة:

القيمة none للخاصية display لا تنشئ صندوقًا غير مرئي بل لن ينشئ أي مربع على الإطلاق.


مثال يوضح الفرق بين القيم بشكل عملي

مثال
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset="utf-8">
      <title>الخاصية Displayck</title>
      <style>
      body {
      font-size:22px;
      }
      h1 {
      direction:rtl;
      text-align:center
      }

      span.a {
      display: inline; /* القيمة الإفتراضية لعنصر span */
      width: 100px;
      height: 100px;
      padding: 5px;
      border: 1px solid blue;  
      background-color: yellow; 
      }

      span.b {
      display: inline-block;
      width: 100px;
      height: 100px;
      padding: 5px;
      border: 1px solid blue;    
      background-color: yellow; 
      }

      span.c {
      display: block;
      width: 100px;
      height: 100px;
      padding: 5px;
      border: 1px solid blue;    
      background-color: yellow; 
      }
      </style>
      </head>
      <body>

      <h1>الخاصية Display في لغة CSS</h1>

      <h2>display: inline</h2>
      <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum consequat scelerisque elit sit amet consequat. Aliquam erat volutpat. <span class="a">Aliquam</span> <span class="a">venenatis</span> gravida nisl sit amet facilisis. Nullam cursus fermentum velit sed laoreet. </div>

      <h2>display: inline-block</h2>
      <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum consequat scelerisque elit sit amet consequat. Aliquam erat volutpat. <span class="b">Aliquam</span> <span class="b">venenatis</span> gravida nisl sit amet facilisis. Nullam cursus fermentum velit sed laoreet. </div>

      <h2>display: block</h2>
      <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum consequat scelerisque elit sit amet consequat. Aliquam erat volutpat. <span class="c">Aliquam</span> <span class="c">venenatis</span> gravida nisl sit amet facilisis. Nullam cursus fermentum velit sed laoreet. </div>

      </body>
      </html>
      
    

المخرجات

مثال شامل على قيم Display


التحكم في رؤية العناصر


الخاصية Visibility في لغة CSS

يمكننا استخدام الخاصية visibility للتحكم في ما إذا كان العنصر مرئيًا أم لا. يمكن أن تأخذ هذه الخاصية إحدى القيم التالية المدرجة في الجدول أدناه:


تغير القيمة الإفتراضية للخاصية Display

يؤدي تجاوز القيمة الافتراضية للخاصية display للعنصر إلى تغير طريقة عرض العنصر في صفحة الويب . على سبيل المثال ، تغيير عنصر على مستوى مضمّن inline-level ليتم عرضه كعنصر على مستوى الكتلة block-level أو تغيير عنصر مستوى الكتلة ليتم عرضه كعنصر على مستوى مضمّن.

القيمة الوصف
visible القيمة الافتراضية. الصندوق ومحتوياته مرئيان.
hidden الصندوق ومحتوياته غير مرئيين ، لكنهما لا يزالان يؤثران على تنسيق الصفحة.
collapse تؤدي هذه القيمة إلى إزالة الصف أو العمود بالكامل من العرض. تُستخدم هذه القيمة لعناصر الصفوف ومجموعة الصفوف والأعمدة ومجموعة الأعمدة.
inherit تحدد أن قيمة الخاصية visibility يجب أن يتم اكتسابها من العنصر الأب ، أي تأخذ نفس قيمة الخاصية visibility كما هي محددة للعنصر الأب.

visibility: collapse; تزيل العناصر الداخلية من الجدول ، لكنها لا تؤثر على تخطيط الجدول نهائياً. سيتم ملء المساحة التي كانت تشغلها هذه العناصر من قبل العناصر المجاورة لها.
اما اذا تم استخدام القيمة collapse لعناصر أخرى غير عناصر الجدول ، فسيكون تأثيرها نفس تأثير القيمة hidden .


الفرق بين الخاصية Visibility و الخاصية Display

يبدو للوهلة الأولى أن الخصائص display و visibility لها نفس التأثير ، لكنها في الواقع مختلفة تمامًا وغالبًا ما يتم الخلط بينها من قبل مطورين الويب الجدد.

  • visibility: hidden; تعمل على إخفاء العنصر ، لكنه لا يزال يشغل مساحة داخل مخطط صفحة الويب. وستكون العناصر الأبناء للصندوق المخفي مرئية إذا تم ضبط إمكانية الرؤية على أن تكون مرئية.
  • display: none; بهذه الطريقة نقوم بإيقاف عرض العنصر تماما مما يؤدي إلى إزالته من شجرة المستند ولن يشغل أي مساحة ، على الرغم من أن كود HTML الخاص به لا يزال موجودا في الكود المصدري. أيضًا يتم إيقاف عرض جميع العناصر الموجودة بداخله (العناصر الابناء لهذا العنصر) ، حتى إذا تم تحديد قيمة الخاصية display الخاصة بها على شيء آخر غير none.

العرض التالي يوضح تأثير الخصائص display و visibility على مخطط صفحة الويب.


عرض توضيحي للفرق بين الخصائص Visibility و Display

{visibility: hidden;}       &nbsp إنقر هنا لإخفاء هذا العنصر &nbsp
{display: none;}       &nbsp إنقر هنا لإزالة هذا العنصر &nbsp
{visibility: hidden;}       &nbsp إنقر هنا لإخفاء هذا العنصر &nbsp
{display: none;}       &nbsp إنقر هنا لإزالة هذا العنصر &nbsp

كورس css


عدد الموضوعات 28 الخاصة ب كورس  ' css3 '   العدد الكلي .
عنوان الموضوعالتاريخكورس css3
محددات السمات Attribute Selectors في css2021-10-08الدرس 28 css3
الخاصية Opacity في css2021-10-07الدرس 27 css3
أنواع الوسائط Media Types في # css #2021-10-07الدرس 26 css3
العناصر الزائفة Pseudo-elements في css2021-10-07الدرس 25 css3
الفئات الزائفة Pseudo-classes في css2021-10-07الدرس 24 css3
المحاذاة alignment في css2021-10-07الدرس 3 css3
الخاصية Float في css 2021-10-05الدرس 23 css3
الطبقات Layers في css2021-10-05الدرس 22 css3
موقع العناصر position في css2021-10-05الدرس 21 css3
الخاصية Display و الخاصية Visibility في css2021-10-05الدرس 20 css3
التنسيق المرئي Visual Formatting في css2021-10-05الدرس 19 css3
الخاصية Overflow في css2021-10-05الدرس 18 css3
التخطيط Outlines في css2021-10-05الدرس 17 css3
المؤشرات Cursors في css2021-10-04الدرس 16 css3
الهوامش Margin في css2021-10-04الدرس 15 css3
الحدود Borders في css2021-10-04الدرس 14 css3
الحواشي Padding في css2021-10-04الدرس 13 css3
التحكم في الأبعاد css2021-10-04الدرس 12 css3
نموذج الصندوق css2021-10-04الدرس 11 css3
الجداول tables في css2021-10-04الدرس 10 css3
القوائم Lists في CSS2021-10-03الدرس 9 css3
الروابط Links في CSS2021-10-03الدرس 8 css3
النصوص Text في css2021-10-02الدرس 7 css3
الخطوط Fonts في css 2021-10-02الدرس 6 css3
الخلفيات Background في css2021-10-02الدرس 5 css3
الألوان Colors في css2021-10-01الدرس 3 css3
المحددات Selectors في css2021-10-01الدرس 4 css3
بناء جملة CSS2021-10-01الدرس 3 css3
البداية مع CSS إضافة أنماط (Styles) إلى عناصر HTML2021-10-01الدرس 2 css3
دورة CSS المجانية من البداية حتى الإحتراف بالتطبيق العملي2021-09-30الدرس 1 css3