The CSS Podcast - 014: Pseudo-elements
إذا كانت لديك مقالة محتوى وتريد أن يكون الحرف الأول حرفًا كبيرًا مميّزًا أكبر حجمًا بكثير، كيف يمكنك تحقيق ذلك؟
في CSS،
يمكنك استخدام العنصر الصوري ::first-letter
لتحقيق هذا النوع من تفاصيل التصميم.
p::first-letter {
color: blue;
float: left;
font-size: 2.6em;
font-weight: bold;
line-height: 1;
margin-inline-end: 0.2rem;
}
يشبه العنصر الزائف إضافة عنصر إضافي أو استهدافه بدون الحاجة إلى إضافة المزيد من علامات HTML.
هذا المثال على الحلّ، الذي يستخدم العنصر ::first-letter
،
هو أحد العناصر الزائفة العديدة.
لها مجموعة من الأدوار،
وفي هذا الدرس، ستتعرّف على العناصر الزائفة المتاحة وكيفية استخدامها.
::before
و::after
ينشئ كل من العنصرَين الصوريَين
::before
و::after
عنصرًا ثانويًا داخل أحد العناصر فقط إذا حدّدت السمة content
.
.my-element::before {
content: "";
}
.my-element::after {
content: "";
}
يمكن أن يكون الرمز content
أي سلسلة
، حتى سلسلة فارغة،
ولكن يُرجى العِلم أنّه من المحتمل أن يُعلن قارئ الشاشة عن أي محتوى آخر غير سلسلة فارغة.
يمكنك إضافة صورة url
،
وسيتم إدراج الصورة بأبعادها الأصلية،
ولن تتمكّن من تغيير حجمها.
يمكنك أيضًا إدراج
counter
.
بعد إنشاء عنصر ::before
أو ::after
،
يمكنك تصميمه بالطريقة التي تريدها بدون حدود.
لا يمكنك إدراج عنصر ::before
أو ::after
إلا في عنصر يقبل العناصر الفرعية
(العناصر التي تحتوي على شجرة مستند)،
لذلك لن تعمل عناصر مثل <img />
و<video>
و<input>
.
::first-letter
لقد تعرّفنا على هذا العنصر الاصطناعي في بداية الدرس.
يُرجى العِلم أنّه لا يمكن استخدام جميع خصائص CSS عند استهداف
::first-letter
.
في ما يلي السمات المتاحة:
color
- مواقع
background
(مثلbackground-image
) - مواقع
border
(مثلborder-color
) float
- مواقع
font
(مثلfont-size
وfont-weight
) - سمات النص (مثل
text-decoration
وword-spacing
)
p::first-letter {
color: goldenrod;
font-weight: bold;
}
::first-line
سيتيح لك العنصر النائب ::first-line
تنسيق السطر الأول من النص
فقط إذا كان العنصر الذي تم تطبيق ::first-line
عليه يحتوي على قيمة display
من block
أو
inline-block
أو list-item
أو table-caption
أو table-cell
.
p::first-line {
color: goldenrod;
font-weight: bold;
}
مثل العنصر الصوري ::first-letter
،
تتوفّر مجموعة فرعية فقط من خصائص CSS التي يمكنك استخدامها:
color
background
مكانًا للإقامةfont
مكانًا للإقامةtext
مكانًا للإقامة
::backdrop
إذا كان لديك عنصر معروض في وضع ملء الشاشة،
مثل <dialog>
أو <video>
،
يمكنك تصميم الخلفية، أي المساحة بين العنصر وبقية الصفحة، باستخدام العنصر الزائف
::backdrop
:
video::backdrop {
background-color: goldenrod;
}
::marker
يتيح لك العنصر النائب ::marker
تصميم الرمز النقطي أو الرقم لعنصر قائمة أو السهم لعنصر <summary>
.
::marker {
color: hotpink;
}
ul ::marker {
font-size: 1.5em;
}
ol ::marker {
font-size: 1.1em;
}
summary::marker {
content: '\002B'' '; /* Plus symbol with space */
}
details[open] summary::marker {
content: '\2212'' '; /* Minus symbol with space */
}
تتوفّر مجموعة فرعية صغيرة فقط من خصائص CSS في ::marker
:
color
content
white-space
font
مكانًا للإقامة- الموقعان
animation
وtransition
يمكنك تغيير رمز العلامة باستخدام السمة content
. يمكنك استخدام هذا الإجراء لضبط رمزَي الجمع والطرح للحالات المغلقة والفارغة للعنصر <summary>
، على سبيل المثال.
::selection
يتيح لك العنصر النائب ::selection
تصميم مظهر النص المحدّد.
::selection {
background: green;
color: white;
}
يمكن استخدام هذا العنصر الزائف لتنسيق كل النص المحدّد كما هو موضّح في العرض الترويجي أعلاه. ويمكن أيضًا استخدامه مع أدوات اختيار أخرى للحصول على نمط اختيار أكثر تحديدًا.
p:nth-of-type(2)::selection {
background: darkblue;
color: yellow;
}
كما هو الحال مع العناصر الزائفة الأخرى، يُسمح فقط بمجموعة فرعية من خصائص CSS:
color
background-color
ولكن ليسbackground-image
text
مكانًا للإقامة
::placeholder
يمكنك إضافة تلميح مساعد إلى عناصر النموذج،
مثل <input>
مع سمة placeholder
.
يتيح لك العنصر النائب ::placeholder
تنسيق هذا النص.
input::placeholder {
color: darkcyan;
}
لا يتيح ::placeholder
سوى مجموعة فرعية من قواعد CSS:
color
background
مكانًا للإقامةfont
مكانًا للإقامةtext
مكانًا للإقامة
::cue
آخر عنصر في هذه الجولة حول العناصر الزائفة هو العنصر الزائف
::cue
.
يتيح لك ذلك تصميم إشارات WebVTT،
وهي مقاطع الترجمة والشرح لعنصر <video>
.
يمكنك أيضًا تمرير أداة اختيار إلى ::cue
،
ما يتيح لك تصميم عناصر معيّنة داخل الترجمة والشرح.
video::cue {
color: yellow;
}
video::cue(b) {
color: red;
}
video::cue(i) {
color: lightpink;
}
التحقّق من فهمك
اختبِر معلوماتك عن العناصر الزائفة
أيّ مما يلي ليس عنصرًا زائفًا؟
::before
content: '';
.::first-paragraph
::after
content: '';
.::marker
::pencil
:active
يمكن العثور على العناصر الزائفة في ملف HTML.