الفرق بين المراجعتين لصفحة: «CSS/perspective»

من موسوعة حسوب
< CSS
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}'
لا ملخص تعديل
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الخاصية <code>perspective</code>}}</noinclude>
<noinclude>{{DISPLAYTITLE:الخاصية <code>perspective</code>}}</noinclude>
الخاصية <code>perspective</code> في CSS تُستخدَم لتفعيل الفضاء ثلاثي الأبعاد في العنصر، لكي نتمكن من وضع العناصر الأبناء في ذاك الفضاء، وتسمح هذه الخاصية لنا بإضفاء شعور بالعمق إلى العنصر، بجعل العناصر الأقرب إلى المستخدم تبدو وأكبر، والعناصر الأبعد تبدو أصغر.<nowiki/><syntaxhighlight lang="css">
الخاصية <code>perspective</code> في CSS تُستخدَم لتفعيل الفضاء ثلاثي الأبعاد في العنصر، لكي نتمكن من وضع العناصر الأبناء في ذاك الفضاء، وتسمح هذه الخاصية لنا بإضفاء شعور بالعمق إلى العنصر، بجعل العناصر الأقرب إلى المستخدم تبدو وأكبر، والعناصر الأبعد تبدو أصغر.
/* كلمة محجوزة */
perspective: none;
 
/* <length> قيم طولية */
perspective: 20px; 
perspective: 3.5em;
 
/* القيم العامة */
perspective: inherit;
perspective: initial;
perspective: unset;
</syntaxhighlight>العناصر ثلاثية الأبعاد التي تكون خلف المستخدم (أي التي تكون إحداثياتها على المحور z أكبر من قيمة الخاصية <code>perspective</code>) لن تُعرضَ.


ستوضع نقطة التلاشي (vanishing point) افتراضيًا في منتصف العنصر، لكن يمكن تغيير موضعها باستخدام الخاصية <code>[[CSS/perspective-origin|perspective-origin]]</code>.
== بطاقة الخاصية ==
{| class="wikitable" style="width: 100%;"
{| class="wikitable" style="width: 100%;"
|-
|-
سطر 31: سطر 19:
! scope="row" |القيمة المحسوبة
! scope="row" |القيمة المحسوبة
|كما حُدِّدَت.
|كما حُدِّدَت.
|}
|}<syntaxhighlight lang="css">
/* كلمة محجوزة */
perspective: none;
 
/* <length> قيم طولية */
perspective: 20px; 
perspective: 3.5em;
 
/* القيم العامة */
perspective: inherit;
perspective: initial;
perspective: unset;
</syntaxhighlight>العناصر ثلاثية الأبعاد التي تكون خلف المستخدم (أي التي تكون إحداثياتها على المحور z أكبر من قيمة الخاصية <code>perspective</code>) لن تُعرضَ.
 
ستوضع نقطة التلاشي (vanishing point) افتراضيًا في منتصف العنصر، لكن يمكن تغيير موضعها باستخدام الخاصية <code>[[CSS/perspective-origin|perspective-origin]]</code>.


== أمثلة ==
== أمثلة ==
سطر 187: سطر 189:
تقبل الخاصية <code>perspective</code> قيمةً واحدةً من القيمتين التاليتين.
تقبل الخاصية <code>perspective</code> قيمةً واحدةً من القيمتين التاليتين.


=== القيمة <code>none</code> ===
=== <code>none</code> ===
كلمة محجوزة تُشير إلى عدم تطبيق تأثير المنظور على العنصر.
كلمة محجوزة تُشير إلى عدم تطبيق تأثير المنظور على العنصر.


=== القيمة <code>[[CSS/length|<length>]]</code> ===
=== <code>[[CSS/length|<length>]]</code> ===
قيمة مطلقة تُحدِّد المسافة بين العنصر والمستوي z=0، وتُستخدَم هذه القيمة لتطبيق تأثير المنظور على العنصر '''ومحتواه''' (وهذا هو الفرق بين هذه الخاصية والدالة <code>perspective()‎</code> التي يمكن تطبيقها على الخاصية <code>[[CSS/transform|transform]]</code>).
قيمة مطلقة تُحدِّد المسافة بين العنصر والمستوي z=0، وتُستخدَم هذه القيمة لتطبيق تأثير المنظور على العنصر '''ومحتواه''' (وهذا هو الفرق بين هذه الخاصية والدالة <code>perspective()‎</code> التي يمكن تطبيقها على الخاصية <code>[[CSS/transform|transform]]</code>).



مراجعة 13:19، 19 أغسطس 2018

الخاصية perspective في CSS تُستخدَم لتفعيل الفضاء ثلاثي الأبعاد في العنصر، لكي نتمكن من وضع العناصر الأبناء في ذاك الفضاء، وتسمح هذه الخاصية لنا بإضفاء شعور بالعمق إلى العنصر، بجعل العناصر الأقرب إلى المستخدم تبدو وأكبر، والعناصر الأبعد تبدو أصغر.

بطاقة الخاصية

القيمة الابتدائية none
تُطبَّق على جميع العناصر.
قابلة للوراثة لا
قابلة للتحريك نعم
القيمة المحسوبة كما حُدِّدَت.
/* كلمة محجوزة */
perspective: none;

/* <length> قيم طولية */
perspective: 20px;  
perspective: 3.5em;

/* القيم العامة */
perspective: inherit;
perspective: initial;
perspective: unset;

العناصر ثلاثية الأبعاد التي تكون خلف المستخدم (أي التي تكون إحداثياتها على المحور z أكبر من قيمة الخاصية perspective) لن تُعرضَ.

ستوضع نقطة التلاشي (vanishing point) افتراضيًا في منتصف العنصر، لكن يمكن تغيير موضعها باستخدام الخاصية perspective-origin.

أمثلة

مثال يوضح تأثير قيمة الخاصية perspective على شكل العنصر في الفضاء ثلاثي الأبعاد:

<table>
  <tbody>
    <tr>
      <th><code>perspective: 250px;</code>
      </th>
      <th><code>perspective: 350px;</code>
      </th>
      <th><code>perspective: 500px;</code>
      </th>
    </tr>
    <tr>
      <td>
        <div class="container">
          <div class="cube pers250">
            <div class="face front">1</div>
            <div class="face back">2</div>
            <div class="face right">3</div>
            <div class="face left">4</div>
            <div class="face top">5</div>
            <div class="face bottom">6</div>
          </div>
        </div>
      </td>
      <td>
        <div class="container">
          <div class="cube pers350">
            <div class="face front">1</div>
            <div class="face back">2</div>
            <div class="face right">3</div>
            <div class="face left">4</div>
            <div class="face top">5</div>
            <div class="face bottom">6</div>
          </div>
        </div>
      </td>
      <td>
        <div class="container">
          <div class="cube pers500">
            <div class="face front">1</div>
            <div class="face back">2</div>
            <div class="face right">3</div>
            <div class="face left">4</div>
            <div class="face top">5</div>
            <div class="face bottom">6</div>
          </div>
        </div>
      </td>
    </tr>
  </tbody>
</table>

شيفرة CSS:

.pers250 {
  perspective: 250px;
}

.pers350 {
  perspective: 350px;
}

.pers500 {
  perspective: 500px;
}

 .container {
  width: 200px;
  height: 200px;
  margin: 75px 0 0 75px;
  border: none;
}

.cube {
  width: 100%;
  height: 100%;
  backface-visibility: visible;
  perspective-origin: 150% 150%;
  transform-style: preserve-3d;
}

.face {
  display: block;
  position: absolute;
  width: 100px;
  height: 100px;
   border: none;
  line-height: 100px;
  font-family: sans-serif;
  font-size: 60px;
  color: white;
  text-align: center;
}

.front {
  background: rgba(0, 0, 0, 0.3);
  transform: translateZ(50px);
}

.back {
  background: rgba(0, 255, 0, 1);
  color: black;
  transform: rotateY(180deg) translateZ(50px);
}

.right {
  background: rgba(196, 0, 0, 0.7);
  transform: rotateY(90deg) translateZ(50px);
}

.left {
  background: rgba(0, 0, 196, 0.7);
  transform: rotateY(-90deg) translateZ(50px);
}

.top {
  background: rgba(196, 196, 0, 0.7);
  transform: rotateX(90deg) translateZ(50px);
}

.bottom {
  background: rgba(196, 0, 196, 0.7);
  transform: rotateX(-90deg) translateZ(50px);
}

th, p, td {
  background-color: #EEEEEE;
  padding: 10px;
  font-family: sans-serif;
  text-align: left;
}

دعم المتصفحات

الميزة Chrome Firefox Internet Explorer Opera Safari
الدعم الأساسي 12.0 (مع السابقة -webkit-)

45.0

10.0 (مع السابقة -moz-)

16.0

10 15 (مع السابقة -webkit-)

23

3.1 (مع السابقة -webkit-)

9.0

البنية العامة

تقبل الخاصية perspective قيمةً واحدةً من القيمتين التاليتين.

none

كلمة محجوزة تُشير إلى عدم تطبيق تأثير المنظور على العنصر.

<length>

قيمة مطلقة تُحدِّد المسافة بين العنصر والمستوي z=0، وتُستخدَم هذه القيمة لتطبيق تأثير المنظور على العنصر ومحتواه (وهذا هو الفرق بين هذه الخاصية والدالة perspective()‎ التي يمكن تطبيقها على الخاصية transform).

إذا كانت هذه القيمة صفرًا أو عددًا سالبًا فلن يُطبَّق تأثير المنظور على العنصر.

البنية الرسمية

perspective: none | <length>;

مصادر ومواصفات