---
id: 587d78a6367417b2b2512ade
title: Create a More Complex Shape Using CSS and HTML
challengeType: 0
videoUrl: ''
localeTitle: إنشاء شكل أكثر تعقيدًا باستخدام CSS و HTML
---
## Description
واحدة من أكثر الأشكال شعبية في العالم هي شكل القلب ، وفي هذا التحدي عليك إنشاء واحد باستخدام CSS النقي. ولكن أولا ، تحتاج إلى فهم ::before
و ::after
pseudo-elements. يتم استخدام هذه العناصر الزائفة لإضافة شيء ما قبل أو بعد عنصر محدد. في المثال التالي ، يتم استخدام العنصر ::before
pseudo-element لإضافة مستطيل إلى عنصر به heart
الفئة: .heart :: before {
يحتوى: ""؛
لون الخلفية: أصفر.
نصف قطر الحدود: 25٪ ؛
الموقع: مطلقة
الارتفاع: 50 بكسل ؛
العرض: 70 بكسل
أعلى: - 50 بكسل
اليسار: 5 بكسل ؛
}
بالنسبة لـ ::before
و ::after
pseudo-elements لتعمل بشكل صحيح ، يجب أن يكون لها خاصية content
محددة. يتم استخدام هذه الخاصية عادةً لإضافة أشياء مثل صورة أو نص إلى العنصر المحدد. عندما يتم استخدام الـ ::before
و ::after
pseudo-elements لجعل الأشكال ، فإن خاصية content
لا تزال مطلوبة ، لكن يتم ضبطها على سلسلة فارغة. في المثال أعلاه، عنصر مع فئة من heart
لديه ::before
الزائفة العنصر الذي ينتج مستطيل أصفر مع height
و width
من 50px 70px و، على التوالي. يحتوي هذا المستطيل على زوايا دائرية نظرًا لنصف قطره 25٪ ويتم وضعه تمامًا عند 5 بكسل من left
و 50 بكسل فوق الجزء top
من العنصر.
## Instructions
تحويل العنصر على الشاشة إلى القلب. في heart::after
الاختيار ، قم بتغيير background-color
الوردي و border-radius
إلى 50٪. بعد ذلك ، استهدف العنصر heart
الطبقة ( heart
فقط) واملأ خاصية transform
. استخدم وظيفة rotate()
مع -45 درجة. (يعمل rotate()
بنفس الطريقة التي يعمل بها skewX()
و skewY()
). وأخيراً ، في heart::before
selector ، قم بتعيين خاصية content
الخاصة به إلى سلسلة فارغة.
## Tests
```yml
tests:
- text: 'يجب أن تكون الخاصية background-color
heart::after
محدد الوردي.'
testString: 'assert(code.match(/\.heart::after\s*?{\s*?background-color\s*?:\s*?pink\s*?;/gi), "The background-color
property of the heart::after
selector should be pink.");'
- text: 'يجب أن يكون border-radius
الحد heart::after
محدد 50 ٪.'
testString: 'assert(code.match(/border-radius\s*?:\s*?50%/gi).length == 2, "The border-radius
of the heart::after
selector should be 50%.");'
- text: يجب أن تستخدم خاصية transform
لفئة heart
الدالة rotate()
إلى -45 درجة.
testString: 'assert(code.match(/transform\s*?:\s*?rotate\(\s*?-45deg\s*?\)/gi), "The transform
property for the heart
class should use a rotate()
function set to -45 degrees.");'
- text: 'يجب أن يكون content
heart::before
محدد سلسلة فارغة.'
testString: 'assert(code.match(/\.heart::before\s*?{\s*?content\s*?:\s*?("|")\1\s*?;/gi), "The content
of the heart::before
selector should be an empty string.");'
```
## Challenge Seed
## Solution
```js
// solution required
```