--- 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
```html
```
## Solution
```js // solution required ```