onclick لفتح روابط في نوافذ جديدة، مما يزيد من تفاعل المستخدم وفائدة الأزرار.
|
| كيفية تصميم أزرار مرنة باستخدام HTML و CSS |
السلام عليكم ورحمة الله وبركات
تعتبر الأزرار من العناصر التفاعلية الهامة في مواقع الويب، حيث تتيح للمستخدمين تنفيذ العديد من الإجراءات مثل الانتقال إلى صفحات أخرى أو إرسال بيانات. في هذا المقال، سنناقش كيفية تصميم أزرار مرنة باستخدام HTML وCSS بحيث يمكن توسيطها أو استخدامها دون توسيط، مع التركيز على كيفية استخدام خاصية onclick لإضافة تفاعل مع الأزرار.
تصميم الأزرار باستخدام CSS
في هذا المقال سأقدم لك مجموعة من الأنماط للأزرار مخصصة باستخدام CSS. ستضمن هذه الأنماط أن تكون الأزرار جذابة وتفاعلية عند التفاعل معها.
الشيفرة CSS
هذه الشيفرة CSS تبدو جيدة، وهي تحتوي على مجموعة من الأنماط التي تُطبق على أزرار عند التفاعل معها (عند تمرير المؤشر فوقها أو عند التركيز عليها). الشيفرة تعتمد على استخدام المتغيرات CSS لتحديد الألوان وتأثيرات التفاعل، مما يسهل عملية تعديل الأنماط لاحقًا.
<style type="text/css">
.fill:hover,.fill:focus{box-shadow:inset 0 0 0 2em var(--hover)}
.close:hover,.close:focus{box-shadow:inset -3.5em 0 0 0 var(--hover),inset 3.5em 0 0 0 var(--hover)}
.raise:hover,.raise:focus{color:#ffec48;box-shadow:0 0.5em 0.5em -0.4em var(--hover);transform:translateY(-0.25em)}
.up:hover,.up:focus{box-shadow:inset 0 -3.25em 0 0 var(--hover)}
.slide:hover,.slide:focus{box-shadow:inset 6.5em 0 0 0 var(--hover)}
.offset{box-shadow:0.3em 0.3em 0 0 var(--color),inset 0.3em 0.3em 0 0 var(--color)}
.offset:hover,.offset:focus{box-shadow:0 0 0 0 var(--hover),inset 6em 3.5em 0 0 var(--hover)}
.fill{--color:#a972cb;--hover:#cb72aa}
.close{--color:#ff7f82;--hover:#ffdc7f}
.raise{--color:#ffa260;--hover:#ffec48}
.up{--color:#e4cb58;--hover:#94e458}
.slide{--color:#8fc866;--hover:#66c887}
.offset{--color:#19bc8b;--hover:#1973bc}
button{color:var(--color);transition:0.25s}
button:hover,button:focus{border-color:var(--hover);color:#fff}
button{background:none;border:2px solid;font:inherit;line-height:1;cursor:pointer;padding:1em 2em}
</style>
تركيب الكود على بلوجر
الخطوة 2 :- ✦ انتقل إلى لوحة تحكم بلوجر واختر "المظهر".
الخطوة 3 :- ✦ انقر على السهم بجانب التخصيص اختر تعديل
HTMLالخطوة 4 :- ✦ بعد ذلك، ابحث عن علامة
</body> وألصق الكود (الموجود في صندوق الاكواد اعلاه) فوقها.الخطوة 5 :- ✦ بمجرد لصق الكود، احفظ التغييرات بالنقر فوق هذا الرمز .
تنبيه مهم
عند إضافة الشفرات إلى قالب موقعك أو مدونتك، من الحكمة أخذ نسخة احتياطية وتوثيق الشفرات لضمان عدم فقدان أو تلف البيانات. إليك بعض النصائح لذلك:
- أخذ نسخة احتياطية:
قبل تعديل أي شيء في قالب موقعك أو مدونتك، تأكد من أخذ نسخة احتياطية للقالب الحالي. يمكنك فعل ذلك عن طريق الانتقال إلى قسم القالب في لوحة التحكم واختيار خيار "نسخ القالب" أو "حفظ نسخة احتياطية"، أو يمكنك ببساطة نسخ الكود وحفظه في ملف نصي على جهاز الكمبيوتر الخاص بك. - توثيق الشفرات:
قبل إضافة أي شيفرة جديدة، قم بتوثيق الشفرة الحالية بشكل جيد. يمكنك ذلك عن طريق إنشاء تعليقات في الشفرة توضح وظيفة كل جزء منها وكيفية عمله. هذا يسهل علىك فهم الشفرة في المستقبل والتعديل عليها بشكل أفضل مثلا فتح و غلق التوثيق<!--[ open adds code]-->و<!--[ close adds code]-->. - الاختبار الشامل:
بعد إضافة الشفرات الجديدة، قم بإجراء اختبار شامل لموقعك أو مدونتك للتأكد من عمل الشفرات بشكل صحيح وعدم وجود أي مشاكل. قم بفحص صفحات متعددة من الموقع للتأكد من تأثير الشفرات على جميع الصفحات. - التوثيق المستقبلي:
بمجرد إضافة الشفرات بنجاح والتأكد من عملها بشكل صحيح، قم بتوثيقها في ملف مستقل يحتوي على جميع الشفرات المستخدمة في الموقع مع شرح وظيفة كل منها. هذا يساعدك في المراجعة المستقبلية وإجراء التعديلات عند الحاجة.
باتباع هذه النصائح، يمكنك الحفاظ على سلامة موقعك وتأمين الشفرات المستخدمة فيه.
شرح مفصل
الأنماط والتأثيرات على الأزرار عند التفاعل (Hover, Focus)
.fill:hover, .fill:focus:
- عند التفاعل مع العنصر ذو الفئة.fill، يتم إضافةbox-shadowداخلي بسمك 2em ولونvar(--hover)..close:hover, .close:focus:
- عند التفاعل مع العنصر ذو الفئة.close، يتم إضافةbox-shadowداخلي على الجانبين الأيمن والأيسر بسمك 3.5em ولونvar(--hover)..raise:hover, .raise:focus:
- عند التفاعل مع العنصر ذو الفئة.raise، يتغير لون النص إلى#ffec48، ويتم إضافةbox-shadowبارتفاع0.5emويبدو كأنه مظلل، بالإضافة إلى تأثير الحركة باستخدامtransformلإنزاله قليلاً..up:hover, .up:focus: - عند التفاعل مع العنصر ذو الفئة.up, يتم إضافةbox-shadowداخلي في الجزء السفلي بسمك3.25emولونvar(--hover)..slide:hover, .slide:focus: - عند التفاعل مع العنصر ذو الفئة.slide, يتم إضافةbox-shadowداخلي على الجانب الأيمن بسمك6.5emولونvar(--hover)..offset:
- العنصر ذو الفئة.offsetله تأثيرbox-shadowخارجي وداخلي بسمك0.3emولونvar(--color)..offset:hover, .offset:focus:
- عند التفاعل مع العنصر ذو الفئة.offset, يتم إضافةbox-shadowداخلي بسمك6emعلى الجانب الأيمن و3.5emمن الأعلى ولونvar(--hover).
.fill:hover, .fill:focus {
box-shadow: inset 0 0 0 2em var(--hover);
}
.close:hover, .close:focus {
box-shadow: inset -3.5em 0 0 0 var(--hover), inset 3.5em 0 0 0 var(--hover);
}
.raise:hover, .raise:focus {
color: #ffec48;
box-shadow: 0 0.5em 0.5em -0.4em var(--hover);
transform: translateY(-0.25em);
}
.up:hover, .up:focus {
box-shadow: inset 0 -3.25em 0 0 var(--hover);
}
.slide:hover, .slide:focus {
box-shadow: inset 6.5em 0 0 0 var(--hover);
}
.offset {
box-shadow: 0.3em 0.3em 0 0 var(--color), inset 0.3em 0.3em 0 0 var(--color);
}
.offset:hover, .offset:focus {
box-shadow: 0 0 0 0 var(--hover), inset 6em 3.5em 0 0 var(--hover);
}
تعريف الألوان الخاصة بكل فئة
.fill {
--color: #a972cb;
--hover: #cb72aa;
}
.close {
--color: #ff7f82;
--hover: #ffdc7f;
}
.raise {
--color: #ffa260;
--hover: #ffec48;
}
.up {
--color: #e4cb58;
--hover: #94e458;
}
.slide {
--color: #8fc866;
--hover: #66c887;
}
.offset {
--color: #19bc8b;
--hover: #1973bc;
}
يتم تعريف الألوان الأساسية --color وألوان التفاعل --hover لكل فئة من الفئات .fill, .close, .raise, .up, .slide, و .offset.
الأنماط العامة للأزرار
button {
color: var(--color);
transition: 0.25s;
}
button:hover, button:focus {
border-color: var(--hover);
color: #fff;
}
button {
background: none;
border: 2px solid;
font: inherit;
line-height: 1;
cursor: pointer;
padding: 1em 2em;
}
- الأنماط العامة للأزرار تشمل:
- - لون النص يكون بناءً على
var(--color). - - انتقال سلس لتأثيرات التفاعل لمدة
0.25ثانية. - - عند التفاعل، يتغير لون الحدود إلى
var(--hover)ولون النص إلى الأبيض#fff. - - الخلفية تكون شفافة (
none). - - الحدود بسمك 2 بكسل.
- - استخدام الخط الموروث من العنصر الأب (
font: inherit). - - ارتفاع السطر 1.
- - مؤشر الفأرة يتغير إلى
pointer. - - المساحة الداخلية (
padding) تكون1emعموديًا و2emأفقيًا.
هذه الشيفرة تتيح تصميم أزرار تفاعلية وجذابة، مما يحسن تجربة المستخدم بشكل كبير.
إليك بعض الملاحظات:
- استخدام المتغيرات:
- استخدام المتغيرات--colorو--hoverيعطي مرونة في تغيير الألوان بسهولة في مكان واحد دون الحاجة لتكرار القيم في كل مكان. - التأثيرات المتنوعة:
- هناك مجموعة متنوعة من التأثيرات مثلfill,close,raise,up,slide, وoffset. كل تأثير يستخدمbox-shadowبطرق مختلفة لتحقيق تأثير بصري معين. - انتقالات سلسة:
- يتم استخدامtransitionلجعل التغييرات سلسة عند التفاعل مع الأزرار، مما يحسن من تجربة المستخدم. - تحديد الأنماط للأزرار:
- جميع الأزرار تستخدم نفس الأنماط الأساسية مثلbackground:none,border:2px solid,font:inherit,line-height:1,cursor:pointer, وpadding:1em 2em. هذا يضمن تنسيقًا موحدًا لكل الأزرار مع إمكانية تخصيص التأثيرات عند التفاعل.
بشكل عام، الشيفرة نظيفة ومنظمة، وتوفر تأثيرات مرئية لطيفة تجعل الأزرار أكثر جاذبية وتفاعلية.
ثصميم ازرار على صفحات الويب الخاصة بك تتطلب انماط عامة مثالية لتجربة مستخدم فريدة و جمالية لواجهة المستخدم لموقعك تعلم css من الخطوات المهمة لتنسيق ذلك.جمال الحزازي
استخدام الأزرار في HTML
لمعاينة الازرارا معاينة حية و فهم الالية انقر على زر معاينة Unplug اسفله
زر "Fill In"
<button class="fill" onclick="window.open('https://www.siwane.xyz/', '_blank')" target="blank" title="SiwaneXYZ">Fill In</button>
- ✦ الفئة:
fill - ✦ النمط: عند التفاعل (Hover أو Focus)، يتم ملء الزر بلون
var(--hover)بشكل داخلي. - ✦ لون الزر الأساسي:
#a972cb - ✦ لون التفاعل:
#cb72aa - ✦ النص: "Fill In"
- ✦ تأثير: عند التفاعل، يظهر تأثير
box-shadowداخلي يعم الزر بلون--hover.
زر "Close"
<button class="close" onclick="window.open('https://www.siwane.xyz/', '_blank')" target="blank" title="SiwaneXYZ">Close</button>
- ✦ الفئة:
close - ✦ النمط: عند التفاعل، يتم ملء جانبي الزر بلون
var(--hover). - ✦ لون الزر الأساسي:
#ff7f82 - ✦ لون التفاعل:
#ffdc7f - ✦ النص: "Close"
- ✦ تأثير: عند التفاعل، يظهر تأثير
box-shadowعلى الجانبين الأيمن والأيسر بسمك3.5emبلون--hover.
زر "Raise"
<button class="raise" onclick="window.open('https://www.siwane.xyz/', '_blank')" target="blank" title="SiwaneXYZ">Close</button>
- ✦ الفئة:
raise - ✦ النمط: عند التفاعل، يتم رفع الزر قليلاً وتغيير لون النص.
- ✦ لون الزر الأساسي:
#ffa260 - ✦ لون التفاعل:
#ffec48 - ✦ النص: "Raise"
- ✦ تأثير: عند التفاعل، يتغير لون النص إلى
#ffec48، ويظهر تأثيرbox-shadowكأنه ظل مع رفع الزر قليلاً عن طريقtransform.
زر "Fill Up"
<button class="up" onclick="window.open('https://www.siwane.xyz/', '_blank')" target="blank" title="SiwaneXYZ">Close</button>
- ✦ الفئة:
up - ✦ النمط: عند التفاعل، يتم ملء الزر من الأسفل بلون
var(--hover). - ✦ لون الزر الأساسي:
#e4cb58 - ✦ لون التفاعل:
#94e458 - ✦ النص: "Fill Up"
- ✦ تأثير: عند التفاعل، يظهر تأثير
box-shadowداخلي من الأسفل بسمك3.25emبلون--hover.
زر "Slide"
<button class="slide" onclick="window.open('https://www.siwane.xyz/', '_blank')" target="blank" title="SiwaneXYZ">Close</button>
- ✦ الفئة:
slide - ✦ النمط: عند التفاعل، يتم ملء الزر من اليسار إلى اليمين بلون
var(--hover). - ✦ لون الزر الأساسي:
#8fc866 - ✦ لون التفاعل:
#66c887 - ✦ النص: "Slide"
- ✦ تأثير: عند التفاعل، يظهر تأثير
box-shadowداخلي من اليسار بسمك6.5emبلون--hover.
زر "Offset"
<button class="offset" onclick="window.open('https://www.siwane.xyz/', '_blank')" target="blank" title="SiwaneXYZ">Close</button>
- ✦ الفئة:
offset - ✦ النمط: عند التفاعل، يتم تغيير تأثير الظل الداخلي والخارجي.
- ✦ لون الزر الأساسي:
#19bc8b - ✦ لون التفاعل:
#1973bc - ✦ النص: "Offset"
- ✦ تأثير: عند التفاعل، يتغير تأثير
box-shadowالداخلي إلى عرض أكبر بسمك6emعلى الجانب الأيمن و3.5emمن الأعلى بلون--hover.
التأثيرات العامة على الأزرار
جميع الأزرار تتبع الأنماط العامة لشيفرة CSS اعلاه:
- ✦ اللون الأساسي: اللون المحدد بـ
var(--color)حسب الفئة. - ✦ الانتقال: الانتقال السلس لمدة 0.25 ثانية.
- ✦ التفاعل: عند التفاعل، يتغير لون الحدود إلى
var(--hover)ولون النص إلى الأبيض#fff. - ✦ الخلفية: شفافة (
none). - ✦ الحدود: بسمك 2 بكسل.
- ✦ الخط: استخدام الخط الموروث من العنصر الأب (
font: inherit). - ✦ ارتفاع السطر: 1.
- ✦ مؤشر الفأرة: يتغير إلى
pointer. - ✦ المساحة الداخلية: 1em عموديًا و2em أفقيًا.
هذا التفسير يوفر فهمًا شاملًا لكيفية عمل الأزرار المختلفة وتأثيراتها عند التفاعل.
سأقدم مثالًا واحدًا على زر لشرحه خاصية onclick، مع توضيح كيفية إضافته وسبب إضافته.
الشيفرة مع تخصيص onclick
لنأخذ زر "Fill In" كمثال:
شرح مفصل
زر "Fill In" مع onclick
<button class="fill" onclick="window.open('https://www.siwane.xyz/', '_blank')" target="blank" title="SiwaneXYZ">Fill In</button>
- ✦ الفئة:
fill - ✦ النص: "Fill In"
- ✦ تأثير CSS: عند التفاعل (Hover أو Focus)، يتم ملء الزر بلون
var(--hover)بشكل داخلي. - ✦ السلوك عند النقر: فتح موقع
https://www.siwane.xyz/في نافذة أو تبويب جديد.
كيفية إضافة onclick
- إضافة الخاصية
onclick:
✦ نضيف الخاصيةonclickداخل وسم<button>.
✦ الكود داخلonclickهوwindow.open('https://www.siwane.xyz/', '_blank').
✦ هذا الكود يقوم بفتح الرابط المحدد في نافذة أو تبويب جديد عند النقر على الزر. - سبب إضافته:
✦ نستخدمonclickلإضافة وظيفة تفاعلية للزر.
✦ في هذا المثال، عند نقر المستخدم على الزر، يتم فتح موقعhttps://www.siwane.xyz/في نافذة أو تبويب جديد.
✦ هذه الوظيفة مفيدة إذا كنا نرغب في توجيه المستخدمين إلى موقع معين عند نقرهم على الزر دون أن ينتقلوا من الصفحة الحالية.
مثال بسيط بدون onclick:
<center><button class="fill" title="SiwaneXYZ">Fill In</button></center>
- ✦ في هذا المثال، الزر لن يقوم بأي فعل عند النقر عليه، وسيكون وظيفته مقتصرة على التفاعل البصري فقط (التأثيرات عند التفاعل Hover وFocus).
الخلاصة
إضافة خاصية onclick إلى زر معين تعطيه وظيفة إضافية تمكنه من تنفيذ تعليمات جافا سكريبت محددة عند النقر عليه. في مثالنا، جعلنا الزر يفتح رابطًا معينًا في نافذة أو تبويب جديد عند النقر عليه، مما يعزز من تفاعل المستخدم ويضيف فائدة عملية للزر. يمكنك تطبيق نفس الطريقة لأي زر آخر ترغب في إضافة وظيفة تفاعلية له.
لتجعل الزر مرنًا بحيث يمكن إدراجه مع أو بدون وسم التوسيط، يمكن استخدام CSS لتحقيق ذلك. سنقوم بإعداد الزر ليكون مستقلًا عن وسم التوسيط بحيث يمكن استخدامه كما هو، وسيظل يظهر بشكل مناسب سواءً كان داخل وسم التوسيط أم لا.
الاستخدام المرن
بدون وسم التوسيط
- ✦ إذا لم تكن هناك حاجة لتوسيط الزر، يمكنك ببساطة إدراج الزر في مكانه المطلوب:
<button class="fill" onclick="window.open('https://www.siwane.xyz/', '_blank')" title="SiwaneXYZ">Fill In</button>
مع وسم التوسيط
- ✦ إذا كنت ترغب في توسيط الزر، يمكنك استخدام وسم التوسيط
center:
<center>
<button class="fill" onclick="window.open('https://www.siwane.xyz/', '_blank')" title="SiwaneXYZ">Fill In</button>
</center>
بهذه الطريقة، يمكنك اختيار إدراج الزر مع أو بدون توسيط حسب حاجاتك بينما يظل الزر يحتفظ بجميع الأنماط والتفاعلات المحددة في CSS.
الخلاصة
باستخدام CSS، يمكنك تصميم أزرار مرنة وجذابة تلبي احتياجات التصميم المختلفة. يمكنك استخدام HTML لإدراج الأزرار سواء مع توسيط أو بدونه، وإضافة خاصية onclick لإضافة تفاعلية أكبر للأزرار. باستخدام هذه الأساليب، يمكنك ضمان أن تكون الأزرار مرنة وسهلة الاستخدام في أي سياق تصميمي.
سؤال: كيف يمكنني تغيير لون الزر عند التحويم عليه؟
✦ جواب: يمكنك استخدام خاصيتي :hover و :focus في CSS لتغيير لون الزر عند التحويم عليه أو عند التركيز عليه. هذا يضيف تفاعلًا مرئيًا يجعل الزر يبدو أكثر تفاعلية.
سؤال: ما هي الطريقة المثلى لتوسيط زر في الصفحة؟
✦ جواب: الطريقة المثلى لتوسيط زر في الصفحة هي استخدام Flexbox في CSS، حيث يمكنك بسهولة توسيط الزر أفقيًا وعموديًا داخل عنصر حاوية.
سؤال: كيف يمكنني إضافة رابط لزر بحيث يفتح في نافذة جديدة؟
✦ جواب: يمكنك استخدام خاصية onclick مع الدالة window.open() في HTML. هذه الطريقة تتيح لك فتح الرابط في نافذة أو تبويب جديد عند النقر على الزر.
سؤال: هل من الأفضل استخدام وسم <center> لتوسيط العناصر؟
✦ جواب: لا يُنصح باستخدام وسم <center> لأنه قديم وغير مدعوم في HTML5. بدلاً من ذلك، يُفضل استخدام CSS لتوسيط العناصر، مثل استخدام Flexbox أو خصائص text-align في الحاويات.
خاتمة
باستخدام تقنيات HTML وCSS الحديثة، يمكنك تصميم أزرار مرنة وجذابة تلبي احتياجات التصميم المختلفة وتزيد من تفاعل المستخدمين. سواء كنت ترغب في توسيط الأزرار أو إبقائها دون توسيط، فإن استخدام أنماط CSS الديناميكية وخاصية onclick يتيح لك تحقيق ذلك بسهولة وفعالية. بهذه الطريقة، يمكنك تحسين تجربة المستخدم وتعزيز جاذبية موقعك الإلكتروني.
المشاركات ذات الصلة
شكرًا لمساعدة ChatGPT في إعداد هذا المقال
المصادر:
SiwaneXYZ©
https://www.siwane.xyz/2024/06/how-to-design-flexible-buttons-using.html