كيفية إنشاء مربع بحث يظهر عند النقر على أيقونة بحث باستخدام CSS
يُعتبر إنشاء واجهات مستخدم تفاعلية من أهم عناصر تصميم الويب الحديث، حيث يسعى المطورون إلى تقديم تجربة مستخدم سلسة وجذابة مع تبسيط الاستخدام. من بين هذه العناصر التفاعلية شائعة الاستخدام، هي مربعات البحث التي تظهر أو تختفي بحسب تفاعل المستخدم، وتحديداً مربع البحث الذي يظهر عند النقر على أيقونة البحث. هذا التصميم يساهم في توفير مساحة على الصفحة وتحسين جمالية التصميم، بالإضافة إلى تعزيز سهولة الوصول إلى وظيفة البحث.
في هذا المقال سوف نستعرض شرحًا مفصلاً وموسعًا عن كيفية إنشاء مربع بحث يظهر عند النقر على أيقونة بحث باستخدام CSS فقط، مع توضيح المبادئ الأساسية وراء هذا التصميم، خطوات التطبيق، وأمثلة عملية توضح كافة التفاصيل اللازمة لدمج هذه الخاصية في أي مشروع ويب.
أهمية مربع البحث التفاعلي في تصميم المواقع
في العصر الرقمي الحالي، تُعد خاصية البحث من أكثر الأدوات استخدامًا داخل المواقع والتطبيقات الإلكترونية، حيث تمكن المستخدمين من الوصول السريع إلى المحتوى أو المنتجات أو المعلومات التي يبحثون عنها. ولكن وجود مربع بحث ظاهر دائمًا على الصفحة قد يؤثر سلبًا على تصميم الواجهة، خصوصًا في الشاشات الصغيرة مثل الهواتف الذكية.
لذلك، فكرة ظهور مربع البحث عند الضغط على أيقونة بحث هي حل مثالي يدمج بين توفير المساحة والحفاظ على تجربة المستخدم مريحة وفعالة. استخدام هذه التقنية يعكس احترافية في التصميم ويزيد من جاذبية الموقع، بجانب تقليل التشتت البصري.
المبادئ الأساسية لإنشاء مربع بحث يظهر عند النقر على أيقونة بحث باستخدام CSS
الأساس في هذه التقنية هو التحكم في ظهور وإخفاء مربع البحث بواسطة CSS دون الحاجة إلى جافاسكريبت، وهو ما يمكن تحقيقه باستخدام بعض الخصائص البسيطة مثل:
-
خاصية checkbox hack وهي تقنية تستخدم عنصر إدخال من نوع checkbox مخفي للتحكم في عرض أو إخفاء العناصر عبر اختيار أو عدم اختيار هذا الـ checkbox.
-
استخدام خاصية :checked في CSS لاستهداف العناصر بناءً على حالة checkbox (محدد أو غير محدد).
-
خاصية التحولات (transitions) لجعل ظهور واختفاء مربع البحث سلسًا وجميلاً.
-
تنسيق أيقونة البحث بشكل مناسب لتعمل كزر للتحكم.
خطوات بناء مربع بحث يظهر عند النقر على أيقونة بحث باستخدام CSS
1. الهيكل الأساسي للـ HTML
لإنشاء مربع بحث يظهر عند النقر على الأيقونة، نحتاج إلى:
-
عنصر إدخال checkbox مخفي.
-
أيقونة البحث (يمكن أن تكون رمز SVG أو أيقونة من خطوط أيقونات مثل FontAwesome).
-
مربع البحث (input من نوع text).
في ما يلي نموذج مبسط للهيكل:
html<div class="search-container">
<input type="checkbox" id="toggle-search" hidden>
<label for="toggle-search" class="search-icon">
🔍
label>
<input type="text" class="search-box" placeholder="ابحث هنا...">
div>
في هذا المثال:
-
عنصر checkbox مخفي، وهو الذي سيتحكم في حالة ظهور مربع البحث.
-
علامة
مرتبطة بالـ checkbox بواسطة الخاصيةfor، وهي تمثل أيقونة البحث التي ينقر عليها المستخدم. -
مربع البحث الذي يتم إظهاره وإخفاؤه بناءً على حالة checkbox.
2. تصميم الـ CSS الأساسي
يتم إخفاء مربع البحث بشكل افتراضي، وإظهاره عند تحديد checkbox. كذلك نضبط التنسيق ليبدو مريحًا وجذابًا.
css.search-container {
position: relative;
display: inline-block;
}
.search-icon {
cursor: pointer;
font-size: 24px;
user-select: none;
padding: 8px;
border-radius: 4px;
transition: background-color 0.3s ease;
}
.search-icon:hover {
background-color: #f0f0f0;
}
.search-box {
position: absolute;
top: 100%;
right: 0;
width: 0;
opacity: 0;
padding: 8px;
font-size: 16px;
border: 1px solid #ccc;
border-radius: 4px;
box-sizing: border-box;
transition: width 0.4s ease, opacity 0.4s ease;
pointer-events: none; /* لتعطيل التفاعل عندما يكون مخفي */
}
/* عند تحديد checkbox - إظهار مربع البحث */
#toggle-search:checked ~ .search-box {
width: 200px;
opacity: 1;
pointer-events: auto; /* تفعيل التفاعل عند الإظهار */
}
بهذا التنسيق:
-
مربع البحث مخفي عن طريق ضبط العرض إلى 0 وشفافيته إلى 0.
-
عند تحديد checkbox (أي عند النقر على الأيقونة)، يتم تغيير العرض والشفافية ليظهر مربع البحث بشكل سلس.
-
إضافة مؤثرات انتقال (transition) لتعطي انسيابية في ظهور واختفاء مربع البحث.
3. تحسينات على التصميم
يمكن إضافة المزيد من التحسينات مثل:
-
ضبط اتجاه مربع البحث ليظهر يسار أو يمين الأيقونة حسب التصميم.
-
إضافة ظل خفيف لمربع البحث لتمييزه عن الخلفية.
-
زيادة حجم مربع البحث عند التركيز عليه.
-
إضافة زر لإغلاق مربع البحث (اختياري).
مثال على تحسينات CSS إضافية:
css.search-box {
box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.search-box:focus {
outline: none;
border-color: #007BFF;
box-shadow: 0 0 5px #007BFF;
}
4. التحكم بإغلاق مربع البحث عند النقر خارجه (ملاحظة)
باستخدام CSS فقط، لا يمكن إغلاق مربع البحث تلقائيًا عند النقر خارج المنطقة بسهولة. هذه الوظيفة تحتاج إلى جافاسكريبت. ولكن في كثير من الحالات، النقر على الأيقونة مرة أخرى (toggle) سيخفي مربع البحث.
أمثلة متقدمة ومميزات إضافية
استخدام أيقونة SVG بدلًا من النص
يمكن استخدام أيقونة بحث أكثر احترافية بدلًا من النص “🔍”، مثل رمز SVG خاص:
html<label for="toggle-search" class="search-icon">
<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" fill="#333">
<path d="M15.5 14h-.79l-.28-.27A6.471 6.471 0 0016 9.5 6.5 6.5 0 109.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zM9.5 14C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>
svg>
label>
هذا يمنح مظهرًا أكثر أناقة واحترافية.
تضمين مربع البحث في شريط التنقل
يمكن دمج هذا التصميم ضمن شريط التنقل الرئيسي، بحيث لا يظهر مربع البحث إلا عند الحاجة، مما يحافظ على بساطة الشريط ويزيد من تركيز المستخدم.
مقارنة بين استخدام CSS فقط وجافاسكريبت في إظهار مربع البحث
| الميزة | CSS فقط | جافاسكريبت |
|---|---|---|
| سهولة التنفيذ | عالية | متوسطة |
| التحكم في إظهار/إخفاء | يعتمد على checkbox أو hover فقط | تحكم كامل باستخدام الأحداث والبرمجة |
| إمكانية إغلاق عند النقر خارج | غير متاحة بسهولة | متاحة باستخدام أحداث النقر خارج العنصر |
| توافق مع المتصفحات | ممتاز | ممتاز |
| الأداء | سريع جدًا | قد يؤثر قليلاً حسب حجم الكود |
باستخدام CSS فقط، نحقق بساطة وأداء عالي، لكن محدودية في بعض التفاعلات المتقدمة.
نصائح لضمان أفضل تجربة استخدام
-
تأكد من أن حجم مربع البحث مناسب وسهل الاستخدام على جميع الأجهزة.
-
ضع مربع البحث في مكان واضح ومرئي عند ظهوره.
-
اجعل الأيقونة كبيرة بما يكفي لتسهيل النقر.
-
استخدم ألوان متناسقة مع تصميم الموقع.
-
اجعل الانتقالات سلسة وغير مزعجة للمستخدم.
-
اختبر التصميم على مختلف المتصفحات والأجهزة.
خاتمة مفصلة
إن إنشاء مربع بحث يظهر عند النقر على أيقونة بحث باستخدام CSS فقط، يمثل حلًا ذكيًا وعمليًا لتصميم واجهات مستخدم أنيقة وعملية. يستند هذا الأسلوب على استخدام تقنيات CSS الحديثة مثل حالة :checked، والتحولات، والتحكم في العرض والشفافية، مما يسمح بتحقيق تفاعل جيد دون الحاجة إلى جافاسكريبت.
هذا النهج يوفر عدة مزايا منها تبسيط الكود، تحسين الأداء، وتقليل الاعتماد على السكريبتات الخارجية، مما يجعل الموقع أخف وأسرع. كما يسهل الصيانة والتعديل المستقبلي للواجهة.
بالمقابل، فإن هذا الأسلوب يتطلب التفكير الدقيق في التصميم ليغطي احتياجات المستخدمين بشكل متكامل، مع الأخذ في الاعتبار أن بعض الوظائف المتقدمة قد تتطلب دمج جافاسكريبت لإكمال التجربة.
بذلك، يعد هذا التصميم خيارًا مثاليًا للكثير من المشاريع التي تسعى إلى تقديم تجربة مستخدم متميزة وعصرية، مع الحفاظ على بساطة التنفيذ وفاعلية الأداء.
المصادر والمراجع
-
CSS-Tricks. “Checkbox Hack for CSS Toggling.” css-tricks.com
-
MDN Web Docs. “Using the :checked pseudo-class.” developer.mozilla.org

