تدعم جميع المتصفحات الحديثة معايير ترميز النص التشعبي HTML5 وأنماط تصميم CCS3. وإذا كان موقعك (القالب) يدعم المعايير الحديثة، فيمكنك إجراء تغييرات على التصميم، مثل تقريب الزوايا والظلال والتعبئة المتدرجة، دون اللجوء إلى محرري الرسوم.
يستخدم مشرفو المواقع في كل مكان زوايا مستديرة على الكتل والإطارات على مواقع الويب. سأخبرك في هذه المقالة بكيفية تقريب زوايا الصور والصور الفوتوغرافية الموجودة على موقع ويب دون استخدام برامج الطرف الثالث، فقط باستخدام CSS.
لكي يتم عرض الأمثلة الواردة في المقالة بشكل صحيح على شاشتك، يجب عليك استخدام أحدث إصدارات المتصفحات، FireFox وChrome وتلك المبنية عليها: Yandex.Browser وAmigo وما إلى ذلك.
وفقًا لمعيار CSS3، فإن الكتلة DIVكان له زوايا مستديرة، فإنه يحتاج إلى التصميم نصف قطر الحدود، على سبيل المثال مثل هذا:
نصف قطر الحدود: 10 بكسل؛
من أجل الوضوح، دعونا نرسم كتلتين بزوايا مستقيمة ومستديرة:
كتلة مع الزوايا الصحيحة
كتلة ذات زوايا مستديرة
قياسا على المثال أعلاه، يمكنك تقريب زوايا الصور الموجودة على الموقع، على سبيل المثال الصور الفوتوغرافية. من أجل الوضوح، دعونا نلتف حول زوايا الصورة من الصفحة
هذه هي الصورة بدون معالجة CSS
والآن مع الزوايا الدائرية:
نصف قطر الحدود: 10 بكسل؛
ولجعلها "جميلة" حقًا، دعونا نضيف بعض الحواف من البداية...
نصف قطر الحدود: 10 بكسل؛ الحدود: 5px #ccc الصلبة؛
ثم الظلال:
نصف قطر الحدود: 10 بكسل؛ الحدود: 5px #ccc الصلبة؛ ظل الصندوق: 0 0 10 بكسل #444;
يبدو الخيار أدناه (زوايا مستديرة مع ظل بدون حدود) مشابهًا جدًا للوحة الماوس:
نصف قطر الحدود: 10 بكسل؛ ظل الصندوق: 0 0 10 بكسل #444;
وأخيرا، استهزاء كامل بالصورة
نصف قطر الحدود: 50%؛ الحدود: 5px #cfc الصلبة؛ ظل الصندوق: 0 0 10 بكسل #444;
إذا قمت بفتح الصورة في نافذة جديدة، فسترى أنها (الصورة) لم تتغير، وجميع الزوايا والظلال وما إلى ذلك هي مجرد نتيجة المعالجة CSSالأنماط بواسطة متصفحك.
أسلوب حدوديزيد حجم الصورة بمقدار الحدود. إذا تم تحديد قيمة الحدود: 5 بكسل، ستصبح الصورة النهائية أوسع وأطول بمقدار 10 بكسل. ضع ذلك في الاعتبار، في بعض الحالات قد لا يعمل تخطيط الموقع.
موضه مربع الظللا يؤثر على حجم الصورة، ويبدو أن الظل يمتد على العناصر المجاورة. عند استخدامه، لا يعاني تخطيط الموقع.
في جميع الأمثلة المذكورة أعلاه، قمت بكتابة الأنماط مباشرةً في علامات كود html. على سبيل المثال، يبدو الأخير كما يلي:
يعد هذا أمرًا جيدًا عندما تحتاج إلى إعادة ترتيب صورة أو صورة فوتوغرافية واحدة. ماذا لو كنت تريد تغيير كل شيء؟ حسنًا، لن تتمكن من التسلق إلى جميع أنحاء موقعك لتعديل عرض كل موقع. في معظم الحالات، علامة WordPress آي إم جييحدد عدة فئات النمط. واحد حسب الاسم الفريد لملف الصورة، والآخر حسب الحجم، والآخر حسب المحاذاة. يمكنك استكمال أحدها بالمعلمات المذكورة أعلاه.
على سبيل المثال، بالنسبة لجميع الصور التي لم يتم تحديد المحاذاة لها، في الملف style.cssبالنسبة لموضوع WordPress الخاص بك، أدخل ما يلي:
محاذاة ( نصف قطر الحدود: 10 بكسل؛ الحد: 5 بكسل #cfc صلب؛ ظل الصندوق: 0 0 10 بكسل #444;)
أو الطريقة الأكثر صرامة لجميع الصور الموجودة على الموقع. دعونا نعيد تعريف النمط لجميع العلامات آي إم جي:
Img ( نصف قطر الحدود: 10 بكسل; الحدود: 5 بكسل #cfc صلب; ظل الصندوق: 0 0 10 بكسل #444;)
الخيار الأخير مناسب ليس فقط لـ WordPress، ولكن لأي نظام إدارة محتوى (CMS). وحتى بالنسبة للبسيطة لغة البرمجةالصفحات في حالة وضع العلامة عند عرض الصور آي إم جيلم يتم تعيين فئات النمط. لكن كن حذرا. إذا قمت بتجاوز خيارات عرض العلامة آي إم جيسوف تقوم بتغيير مظهر جميع الصور الموجودة على الموقع!
جميع الأمثلة الواردة في المقالة مشروطة وتهدف فقط إلى توضيح بعض إمكانيات CSS لمعالجة الصور وإظهار مدى بساطتها.
تعلمنا في الدرس السابق كيفية وضع حد لعنصر ما. لقد نظرنا أيضًا إلى خصائص مثل border-color و border-style، والتي يمكنك من خلالها تخصيص لون الحدود ونمطها. ومع ذلك، جاءت جميع إطاراتنا بزوايا قائمة. سنوضح لك الآن كيفية إنشاء زوايا مستديرة للحدود في CSS.
يمكن إجراء تقريب الزوايا في CSS لأي عنصر في صفحة HTML. للقيام بذلك، تحتاج إلى تطبيق خاصية border-radius عليها بالقيمة المناسبة. في أغلب الأحيان يتم تحديد القيمة بالبكسل، ولكن يمكن أيضًا استخدام وحدات أخرى، مثل em أو النسبة المئوية (في الحالة الأخيرة، يكون الحساب متعلقًا بعرض الكتلة).
لن يكون تأثير هذه الخاصية ملحوظًا إلا إذا كان العنصر الذي يتم تصميمه له خلفية و/أو حدود ملونة. على سبيل المثال:
BorderElement (لون الخلفية: #EEDDFF؛ الحد: 6 بكسل صلب #7922CC؛ نصف قطر الحدود: 25 بكسل؛)
النمط الموضح أعلاه سوف يعطي النتيجة التالية على العنصر
يمكنك أيضًا عمل حواف مستديرة فقط للزوايا العلوية أو السفلية للعنصر، أو إعطاء كل زاوية نصف قطر دائري مختلف - مساحة كبيرة للخيال! مثال:
BorderElement ( لون الخلفية: #EEDDFF؛ الحدود: 6 بكسل صلب # 7922CC؛ نصف قطر الحدود: 25 بكسل؛ ) .borderElement1 (لون الخلفية: #FFE8DB؛ الحدود: 6 بكسل صلب #FF5A00؛ نصف قطر الحدود: 15 بكسل 100 بكسل 15 بكسل 100 بكسل؛ )
ولكن هذا ليس كل شيء: فبدلاً من الزوايا الدائرية البسيطة، يمكنك تحديد تقريب بيضاوي الشكل. للقيام بذلك، سوف تحتاج إلى تحديد قيمتين مفصولتين بشرطة مائلة (للمحاور شبه الأفقية والرأسية للقطع الناقص). لنعطي مثالاً على كتلة بحجم 150 × 450 بكسل:
BorderElement (لون الخلفية: #EEDDFF؛ الحدود: 6 بكسل صلب #7922CC؛ نصف قطر الحدود: 280 بكسل/100 بكسل؛)
يمكنك مزج القيم (أي استخدام كل من الشكل العادي والبيضاوي المدور بنفس النمط)، ويمكنك أيضًا إضافة نمط شخصي لكل زاوية باستخدام الخصائص المناسبة:
توضح الصورة أدناه كيفية حساب تقريب الزاوية في CSS. لذا، إذا تم تحديد قيمة واحدة للزاوية - على سبيل المثال، 20 بكسل - فهذا يعني أن التقريب سيحدث على طول دائرة نصف قطرها 20 بكسل. في حالة تحديد قيمتين مفصولتين بشرطة مائلة، على سبيل المثال، 30px/20px، سيتم تقريب الزوايا على طول القطع الناقص. القيمة الأولى في هذه الحالة هي طول نصف المحور الأفقي للقطع الناقص - 30 بكسل، والقيمة الثانية هي طول نصف المحور الرأسي - 20 بكسل:
خاصية border-radius لـ CSS مدعومة من قبل جميع المتصفحات الحديثة.
الزوايا الدائرية في CSSيمكن القيام بذلك بعدة طرق، والعديد جدًا، ويمكن اعتبار بعضها قديمًا، نظرًا لأن CSS 3 قدم خصائص جديدة تسمح لك بتدوير زوايا عناصر HTML. ومع ذلك، أولاً، لا تدعم المتصفحات القديمة هذه الخصائص، وثانيًا، تولد مثل هذه الأفكار أحيانًا في العقل الإبداعي للمصمم، ولا يمكن حفظها إلا بالطرق القديمة. لذلك، سننظر هنا إلى عدة خيارات مختلفة لإنشاء زوايا مستديرة في CSS: من الأبسط إلى المعقد تمامًا.
في هذه الأمثلة، يتم تقريب زوايا عناصر الكتلة الأولية، وفي بعض الأمثلة يتم استخدام هذه الكتل كعناصر مساعدة. لكن تذكر أنه يمكنك فعل الشيء نفسه بسهولة مع العناصر على مستوى السطر، عن طريق ضبطها مسبقًا باستخدام كتلة أو كتلة مضمنة إذا لزم الأمر.
يستخدم هذا المثال خصائص من CSS 3 تسمح لك بتدوير الزوايا بسهولة دون مساعدة الصور.
مثال HTML وCSS: تقريب الزوايا باستخدام CSS 3 بدون صور
الخصائص ذات البادئات ليست موجودة في مواصفات CSS، لذا فإن استخدامها سيؤدي إلى رمز غير صالح.
لا يحتوي هذا المثال أيضًا على صور، ولكنه يستخدم كتلًا إضافية. جوهر الطريقة هو أنه قبل المحتوى الرئيسي وبعده، تتم الإشارة إلى عدة كتل، والتي، عند الابتعاد عنها، يتناقص عرضها تدريجيًا باستخدام الهوامش الخارجية الجانبية. بفضل هذا، يحدث تقليد زوايا التقريب.
هذه الطريقة سيئة لأن الكود "مملوء" بكتل إضافية، ولكن لسوء الحظ، في العديد من الأمثلة ستكون هذه الكتل موجودة. عيب آخر هو أنه مع نصف قطر الانحناء الكبير، سيتعين عليك إضافة كتل أكثر من تلك المستخدمة في المثال.
مثال HTML وCSS: تقريب الزوايا دون استخدام الصور
أسهل طريقة لإظهار الزوايا الدائرية في CSS هي استخدام صورة كخلفية للعنصر. في هذه الحالة، عادةً ما يتم تحديد أبعاد العنصر بنفس حجم صورة الخلفية. عيب هذه الطريقة هو أن محتوى العنصر لا ينبغي أن يتجاوز نطاقه، أي أنه يجب أن يكون بحجم محدود معين.
مثال HTML وCSS: تقريب الزوايا باستخدام صورة واحدة
في المثال السابق، تم تثبيت حجم الكتلة ويعتمد على حجم صورة الخلفية، وهذا غير مناسب للغاية. الآن سوف نجعل عرض الكتلة لدينا قابلاً لتغيير الحجم. للقيام بذلك، قطع ثلاثة أجزاء من الصورة - الجوانب وقطعة من المركز. بعد ذلك، سنضع عنصرين بأحجام ثابتة داخل الكتلة الرئيسية، والتي، بفضل تحديد الموقع المطلق، سيتم وضعها على جانبيها. لنمنحهم نفس الأجزاء الجانبية للخلفية، والجزء المركزي للكتلة الرئيسية. سيعطينا هذا كتلة ذات زوايا مستديرة وعرض متغير.
تُستخدم هذه التقنية غالبًا لتقريب العناصر ذات السطر الواحد، مثل الروابط أو عناوين الأقسام/القوائم.
مثال HTML وCSS: تقريب الزوايا باستخدام SideBlocks
يوجد خطأ صغير في IE6 بهذه الطريقة:
إذا كان عرض "الكتلة" أو ارتفاعها غريبًا، فستظهر مسافة بادئة غير سارة بمقدار 1 بكسل بين الحافة الداخلية للكتلة والشريط الجانبي الموجود على اليمين، مما سيفسد الصورة بأكملها. يمكن إصلاح هذا الخلل باستخدام اختراق CSSبتعبير معين، لكنني لن أعطي مثل هذا المثال هنا، لأنه غالبا ما يجمد المتصفح ومن الأفضل عدم استخدامه.
دعونا نفعل ذلك بشكل مختلف. لنقم بضبط الهامش الأيسر "right_bok" (CSS) على 100% بحيث يتجاوز الحد الأيمن للكتلة الرئيسية، ثم نعيده مرة أخرى، ونحركه إلى اليسار بعدد بكسلات يساوي عرضه. يعمل IE6 بشكل صحيح مع قيم هذه الخصائص، لذلك ليس لديه خيار سوى وضع الكتلة حيث نحتاجها.
تشبه طريقة تقريب الزوايا هذه الطريقة السابقة، ولكن على عكسها، هنا ليست عناصر HTML التي يتم وضعها على الجوانب، ولكن تلك التي تتم إضافتها إلى الكتلة الرئيسية عناصر زائفة. بفضل هذا النهج، كان من الممكن التخلص من كود HTML غير الضروري للصفحة.
مثال HTML وCSS: تقريب الزوايا باستخدام العناصر الزائفة الجانبية
بالنسبة لـ IE6 وIE7، تم استخدام "العكازات" التالية في هذا المثال:
جوهر هذه الطريقة هو قطع زوايا الصورة أولاً. ثم يتم وضع عدة كتل أخرى (حسب عدد الزوايا) داخل الكتلة الرئيسية، والتي تكون متداخلة داخل بعضها البعض. يتم إعطاء كل واحد منهم زاوية صورة واحدة كخلفية. يُمنع إعادة إنتاج الصور ويتم إعطاء الإحداثيات بحيث تأخذ مكانها في زوايا الكتل. هذه هي الطريقة التي يتم بها الحصول على تأثير الزوايا الدائرية.
مثال HTML وCSS: تقريب الزوايا باستخدام Block Wrap
يمكنك ضبط عرض الكتلة بشكل صريح عن طريق تحديد الخاصية المطلوبة في class="block" ، ولكن لتغيير الارتفاع يجب عليك استخدام العنصر الأعمق (بالنسبة لنا هو "rb").
هنا أيضًا يتم قطع الزوايا للخلفية، والتي سيتم الإشارة إليها على الكتل الصغيرة. باستخدام الموضع المطلق لـ CSS، يتم وضع هذه الكتل في زوايا العنصر الرئيسي، والذي يُعطى لون الخلفية المطلوب.
مثال HTML وCSS: تقريب الزوايا باستخدام تحديد المواقع
توجد مشكلتان في هذه الطريقة في IE6:
بشكل أساسي، تقنية طريقة تقريب الزوايا هذه في CSS هي نفس التقنية السابقة، لذلك سيتم حذف التعليقات التفصيلية هنا. والفرق الوحيد هو أنه بدلاً من صور ركن الخلفية المنفصلة، يتم استخدام صورة متحركة واحدة شائعة هنا. بفضل هذا، يتم تسريع تحميل الموقع، لأن صورة واحدة "تزن" أقل من أربعة و الاستضافةهناك نداء واحد بدلا من أربعة.
العفريت عبارة عن صورة تجمع بين العديد من الصور المستخدمة كخلفية لعناصر موقع الويب. يعتمد أي جزء من الكائن الذي سيكون خلفية لعنصر HTML معين على الإحداثيات المحددة في خاصية CSS خاصة.
مثال HTML وCSS: تقريب الزوايا باستخدام تحديد المواقع والعفاريت
مع IE6 هناك نفس المشاكل كما في المثال السابق.
في هذا المثال، سنقوم بتقريب زوايا عنصر له حدود، ولكن هذه ليست ميزة محددة لهذه الطريقة تحديدًا - يمكنك بسهولة استخدام التقريب مع الحدود في الأمثلة السابقة.
سنقوم بإجراء التقريبات بنفسها باستخدام عناصر زائفة تم إنشاؤها من الكتلة الرئيسية، ولكن دون تطبيق تحديد المواقع عليها.
ولحظة واحدة. في الأمثلة السابقة، تم قطع الزوايا مع الخلفية بالداخل، وهذا ليس ضروريًا دائمًا، خاصة إذا كان من المتوقع أن تكون خلفية الكتلة ذات الزوايا المستديرة غير موحدة. لذلك، أصبحت الخلفية داخل الإطار شفافة (تنسيق PNG يسمح بذلك) وعندما تم قطع الزوايا، أصبح الجزء الداخلي منها شفافًا أيضًا. إذا لزم الأمر، يمكنك أيضًا استخدام أسلوب مماثل في الأمثلة السابقة.
مثال HTML وCSS: تقريب الزوايا باستخدام العناصر الزائفة
الخلفية وبمساعدتها نضعها على الجانب الأيمن ونحظر "الاستنساخ". هذا كل شيء، الزوايا جاهزة.
بالنسبة لـ IE6 وIE7، استخدمنا "العكازات" المألوفة بالفعل مع إدخال كود HTML هنا، نظرًا لأن هذه المتصفحات لا تفهم العناصر الزائفة المستخدمة هنا:
عيب هذه الطريقة هو أنه لا يمكنك تحديد ارتفاع الكتلة ذات الزوايا الدائرية بشكل صريح، لأنه إذا تجاوز حجم المحتوى، فلن يتم ضغط الزوايا السفلية على الحواف. يمكن تجنب ذلك إذا كنت لا تزال تحيط بالمحتوى الرئيسي في كتلة أخرى وتضبط ارتفاعه.
هذا المثال مشابه للمثال السابق، لكننا هنا نستخدم تحديد المواقع لترتيب العناصر الزائفة. بفضل هذا النهج، أصبح من الممكن تحديد ارتفاع الكتلة ذات الزوايا الدائرية بشكل واضح.
مثال HTML وCSS: زوايا مستديرة حيث يمكنك تغيير ارتفاع الكتلة
ومرة أخرى، بالنسبة لـ IE6 وIE7، نضيف عدة عناصر إضافية داخل الكتلة الرئيسية باستخدام التعبير، ونغلق الكود في التعليقات الشرطية. هذه المرة فقط لن نحاول حتى محاكاة العناصر الزائفة، ولكننا سنفعل ذلك بشكل أسهل.
بالمناسبة، في الواقع، سيكون من الأسهل محاكاة العناصر الزائفة، كما فعلنا في المثال السابق - وبهذه الطريقة سيكون هناك عدد أقل من التعليمات البرمجية الإضافية. ولكن ليس في IE6، سيحتاج هذا المتصفح إلى عدة "عكازات" أخرى، ونتيجة لذلك، سيتعين عليه كتابة اثنين منفصلين تعليقات مشروطة- بالنسبة إلى IE6 وIE7، وهذا لن يؤدي إلا إلى تضخم الكود...
في Firefox، تعمل هذه الطريقة بشكل صحيح من الإصدار 3.6، وفي Opera - من الإصدار 10.0، لم أتوصل إلى عكازات لهم، لأن هذا ليس له أهمية كبيرة.
هناك العديد من الأمثلة والبرامج التعليمية على الإنترنت لتقريب زوايا كتلة أو جدول، ولكن كقاعدة عامة، تعتمد هذه البرامج التعليمية على استخدام الصور أو استخدام كتل إضافية.
في البرنامج التعليمي اليوم سأوضح لك كيف يمكنك ذلك زوايا المائدة المستديرة باستخدام CSS فقط.
العلامات المباشرة (يختلف الجدول الثاني في تخطيط الخلايا في الصف العلوي):
خالية من الحمل. | أورنا أغسطس. | Nunc iaculis bibendum. | |
مؤقت الدهليز | لاوريت إيروس semper ut. | ||
Vivamus quis nisi lacus. | Cras id felis eu Purus tempor dictum in at lorem. | Facilisis iaculis magna diam id quam. com.eleifend. | دورة رائعة، سهلة الاستخدام |
1. قم بتدوير الزوايا مباشرة على الطاولة (علامة الجدول).
BContentTables( border:1px Solid #CCCCCC; width:100%; moz-border-radius: 10px; /* Firefox */ -webkit-border-radius: 10px; /* Safari, Google Chrome */ -khtml-border-radius : 10px; /* KHTML */ -o-border-radius: 10px; /* Opera */ -ms-border-radius: 10px; الهامش: 0.7em تلقائي؛
2. قم بإزالة أي خلفية من السطر الأول.
Tr.bCTable_Header (الخلفية: لا شيء؛)
3. باستخدام الفئة الزائفة: الطفل الأول والمدمج > حدد الخلية الأولى في الجدول. قم بتقريب الزاوية اليسرى العليا من الخلية الأولى. تتكون خلفية الصف الأول من خلفية خلايا هذا الصف.
Tr.bCTable_Header:first-child > td:first-child( border-radius:10px 0px 0 0; -webkit-border-radius:10px 0 0 0; -moz-border-radius:10px 0 0 0; -ms- نصف قطر الحدود: 10 بكسل 0 0 0; -o-border-radius:10px 0 0 0; لون الخلفية:#00843C;)
4. باستخدام الفئة الزائفة: الطفل الأخير والمدمج > حدد الخلية الأخيرة في الصف الأول. لذلك، نقرب الزاوية اليمنى العليا.
Tr.bCTable_Header:الطفل الأول > td:الأخير-الطفل( border-radius:0 10px 0 0; -webkit-border-radius:0 10px 0 0; -moz-border-radius:0 10px 0 0; -ms- نصف قطر الحدود:0 10px 0 0; -o-border-radius:0 10px 0 0;
5. قم بتدوير الزوايا السفلية للسطر الأخير. لا تنس إزالة الخلفية من السطر الأخير؛ يتم تعيين خلفية الصف بواسطة خلفية خلايا الصف الأخير.
BContentTables tr:last-child( border-radius:0 0 10px 10px; -webkit-border-radius:0 0 10px 10px; -moz-border-radius:0 0 10px 10px; -ms-border-radius:0 0 10px 10px; -o-border-radius:0 0 10px 10px;
6. ثم، قياسا على النقاط 3-4، في السطر الأخير نقوم بتقريب زوايا الخلايا الأولى والخارجية.
BContentTables tr:last-child td(background-color:#F1F1F2;) .bContentTables tr:last-child td:first-child( border-radius:0 0 0 10px; -webkit-border-radius:0 0 0 10px; -moz-border-radius:0 0 0 10px; -ms-border-radius:0 0 0 10px; -o-border-radius:0 0 0 10px; -khtml-border-radius: 0 0 0 10px;) . bContentTables tr:last-child td:last-child (border-radius:0 0 10px 0; -webkit-border-radius:0 0 10px 0; -moz-border-radius:0 0 10px 0; -ms-border- نصف القطر:0 0 10px 0; -o-border-radius:0 0 10px 0; -khtml-border-radius: 0 0 10px 0);
تحيات أصدقاء. هذه المقالة مخصصة لموضوع شائع إلى حد ما بين مشرفي المواقع المبتدئين - زوايا مدورة CSS. الأسئلة التي سأحاول تغطيتها هي كيفية عمل زوايا مستديرة لعناصر موقع الويب باستخدام CSS فقط دون اللجوء إلى استخدام أي صور.
هذه الطريقة لها إيجابيات وسلبيات. المزايا بالطبع هي أنه ليست هناك حاجة لإنشاء صور باستخدام أي محرر رسومات، وتحميلها على الخادم، ثم ترتيبها باستخدام CSS في الأماكن اللازمة لإنشاء التأثير المطلوب. في هذه الحالة، من الضروري إنشاء عناصر إضافية في كود HTML، وكذلك تحديد خصائص منفصلة لكل منها.
أما بالنسبة للسلبيات، فيمكن ملاحظة مشكلة واحدة هنا - هذه الخاصية غير مدعومة من قبل جميع متصفحات الويب، خاصة الإصدارات القديمة من المتصفحات المختلفة.
ومع ذلك، أصبح تقريب الزوايا باستخدام CSS أكثر شيوعًا. كما قد تكون قد فهمت بالفعل، سنستخدم في هذه المقالة خاصية متوفرة في CSS 3.
لذا، على سبيل المثال، سنأخذ عنصر DIV الخاص بالكتلة ونجعل زواياه مستديرة. على سبيل المثال، لنقم بإنشاء كتلة وتعيين خصائصها مباشرةً في كود HTML باستخدام سمة النمط. أولاً لدينا عنصر كتلة مملوء بخلفية بأي لون:
بالمناسبة، إذا كنت بحاجة إلى معرفة رمز اللون الموجود على موقع الويب الخاص بك أو على أي موقع ويب آخر، فسيكون هذا مفيدًا.
وهذه هي الطريقة التي سنراها في متصفح الويب:
الآن، لتقريب الزوايا، سوف نستخدم خاصية "border-radius"، والتي يمكن ترجمتها على أنها نصف قطر الحدود. نعم، هكذا بالضبط، وليس كما قد يعتقد الكثيرون، أن هذا هو نصف قطر الإطار أو كما يسمونه (الحدود). هذه الخاصية مسؤولة تحديدًا عن نصف قطر حدود العنصر، وليس عن إطاراته أو حدوده التي قد لا تكون موجودة. ومع ذلك، ستظل الخاصية تعمل دون استخدام حد على العنصر. أتمنى أن تكون قد فهمت ما أردت قوله. قيمة هذه الخاصية هي أي قيمة رقمية قابلة للتطبيق في CSS، مثل النسب المئوية والبكسل (px) والنقاط (pt) وما إلى ذلك. نعم، ويجب الأخذ في الاعتبار أن هذه الخاصية تعمل على جميع أركان العنصر الأربعة في وقت واحد، بالإضافة إلى ذلك، يمكنك تحديد نصف قطر مختلف لكل زاوية، ولكن المزيد عن ذلك لاحقًا. أولاً، دعونا نحدد نصف قطر زوايا المستطيل. دعها تساوي 5 بكسل:
ثم سيبدو العنصر هكذا:
الآن، أقترح معرفة كيفية إضافة نصف القطر الخاص بك لكل زاوية على حدة. للقيام بذلك، يمكننا استخدام خاصية يمكن تطبيقها على كل زاوية على حدة. إذا تحدثنا عن المثال السابق، فستبدو خصائص العنصر بالشكل الكامل كما يلي:
نصف قطر الحدود من أعلى اليسار: 5 بكسل؛ /* الزاوية اليسرى العليا */ border-top-right-radius:5px; /* الزاوية اليمنى العليا */ border-bottom-right-radius:5px; /* الزاوية اليمنى السفلى */ border-bottom-left-radius:5px; /* أسفل الزاوية اليسرى */
أي أننا إذا أردنا أن نضبط كل زاوية على قيمتها الخاصة، فلدينا هذه الفرصة، وللتأكد من ذلك نأخذ الكود التالي:
ومن ثم نحصل على هذه النتيجة:
كما نرى، فإن حد كل زاوية له قيمة نصف القطر الخاصة به.
بالإضافة إلى ذلك، يسمح لنا CSS بتعيين قيمة لحدود كل زاوية كمدخل قصير يبدو كالتالي:
حيث ستتبع القيم بهذا الترتيب:
نصف قطر الحدود: 5px /* الزاوية اليسرى العليا */ 10px /* الزاوية اليمنى العليا */ 15px /* الزاوية اليمنى السفلية */ 20px /* الزاوية اليسرى السفلية */;
وعليه، وبناءً على ما سبق، يصبح من الواضح أنه بنفس الطريقة يمكننا تعيين حدود نصف القطر فقط لثلاث زوايا (واحدة أو اثنتين):
وهذا ما يبدو عليه في متصفح الويب:
إذا لم تكن مرتبكًا تمامًا بعد، فلنستمر. والحقيقة هي أنه لا يمكن تحديد نصف القطر لكل حد زاوية بقيمة واحدة، كما ناقشنا أعلاه، ولكن بقيمة اثنين. أي قيمتان لكل زاوية. في هذه الحالة، القيمة الأولى ستحدد نصف القطر للزاوية أفقيًا، والقيمة الثانية ستحدد نصف القطر عموديًا. لنبدأ بزاوية واحدة أولاً:
في هذا المثال، أثرنا فقط على الزاوية اليسرى العليا من العنصر:
إذا قمت بعكس القيم، فسيبدو العنصر كما يلي:
ويبدو أن الأمر كان من الممكن أن ينتهي عند هذا الحد، لكن لا. هناك خدعة أخرى. في قيمة الخاصية، يمكننا استخدام شرطة مائلة (/) بين القيم. يمكن أن تساعدنا الشرطة المائلة في دمج القيم مع القيم الأخرى. بشكل عام، إظهار الأمر أسهل من إخباره. لنبدأ بشيء بسيط. لنفترض أننا نريد أن يكون نصف القطر الأفقي 35 بكسل ونصف القطر الرأسي 5. علاوة على ذلك، يجب أن تنطبق هذه القيم على جميع الزوايا. ثم يمكننا أن نكتب مثل هذا:
والحصول على هذه النتيجة:
الآن دعونا نلقي نظرة على مثال أكثر تعقيدًا:
في هذه الحالة، سترتبط القيمة قبل علامة الشرطة المائلة (/) بنصف القطر الأفقي للزاوية، وبعد الإشارة بالقيمة الرأسية. في هذه الحالة سترتبط القيم ببعضها البعض بهذه الطريقة:
نصف قطر الحدود من أعلى اليسار: 20 بكسل 15 بكسل؛ نصف القطر من أعلى اليمين: 10 بكسل 25 بكسل؛ نصف القطر من أسفل إلى يمين: 40 بكسل 15 بكسل؛ نصف القطر من أسفل إلى يسار: 10 بكسل 25 بكسل؛
وستكون النتيجة هكذا:
وفي نهاية المقال سنتحدث عن دعم هذه الخاصية من قبل المتصفحات المختلفة.
ومن الجدير بالذكر هنا أن هذه الخاصية غير مدعومة في جميع إصدارات المتصفح. الخاصية مدعومة في IE9+، Firefox 4+، Chrome، Safari 5+، وOpera.
لكن بالنسبة لبعض إصدارات المتصفح التي لا تدعم هذه الخاصية، هناك خصائص غير قياسية تضيف ما يسمى بالبادئة أو البادئة إلى الخاصية.
يستخدم Chrome قبل الإصدار 4.0، وSafari قبل الإصدار 5.0، وiOS الخاصية غير القياسية -webkit-border-bottom-left-radius.
يستخدم Firefox قبل الإصدار 4.0 الخاصية غير القياسية -moz-border-radius-bottomleft.
في هذه الحالة، سيتعين علينا تكرار الخاصية باستخدام هذه البادئات. على سبيل المثال، إذا قمنا بتعيين خاصية حد الزاوية اليسرى العليا بقيمة خمسة بكسلات:
نصف قطر الحدود من أعلى اليسار: 5 بكسل؛
ثم ستبدو الخاصية، بتكرارها باستخدام البادئات، كما يلي:
Webkit-border-bottom-left-radius:5px; -moz-border-radius-bottomleft:5px; نصف قطر الحدود من أعلى اليسار: 5 بكسل؛
آمل حقًا أن أكون قادرًا على شرح كل شيء بوضوح وأنك تفهم الآن كيفية إنشاء زوايا مستديرة باستخدام CSS فقط.
كل التوفيق لك!