نموذج بريدي ب css

هذا الدرس يتحدث عن تصميم form بريدي، سواء للاتصال بالموقع، أو لإضافة تعليق او شيء آخر مثل اضافة محتويات الى قواعد البيانات ..

سنتعمل (كما يمكن الاستغناء) ما يلي:

 form, label, input, textarea, select ..

إدراج form بريدي ب xhtml سهل وبسيط ..

<form method="post" action="#">
 name<br />
 <input type="text" name="name" /><br />		     
 email<br />
 <input type="text" name="email" /><br />		     
 <input type="submit" value="send" />
 </form>

ساحصل على form به حقلين هما الاسم والبريد الالكتروني مع زر الارسال، سيظهر كل حقل تحت الاخر لانني استعملت br لكي انقز سطرا واحدا
كما في الصورة التالية:

screen

ملاحظة:
يمكن استعمال كل من: ul li بحيث يظهر كل حقل بين li كما يمكن استعمال p لكل حقل ..

سأضيف الوسم label لكي أنسق كل من الاسم والبريد الالكتروني:

<label>name</label> 
<label>email</label>

ثم أضيف بعض الخصائص بعد ان اكتب الكلاس الجديد الخاص بهذا الجزء والذي سيكون كالتالي:

/* si, j'ai le classe #main */
#main form label {
}
 
form label {
}

التعليق الذي أضفته يشرح فائدة #main حيث انني وضعت form بين class كما يلي:

<form method="post" action="#">
 <label>name</label><br />
 <input type="text" name="name" /><br />		     
 <label>email</label><br />
 <input type="text" name="email" /><br />		     
 <input type="submit" value="send" />
 </form>

وبالتالي سأضيف تاثيرات تظهر على جميع form الموجودة ضمن main، بحيث اذا اضفت form اخر بعد نهاية class لن تظهر عليه هذه التاثيرات ..
لك الاختيار عزيزي المطور في استعمال ما تريد، حذف، إضافة class .. فلا يوجد قيود ابدا .. طالما انك تدرك ما انت بصدد القيام به

نعود الى الوسم label، اضفت له خلفية بلون رمادي ..

#main form label {
	background: #eee;
}

ملاحظة:
يمكنك حفظ بعض الالوان لاستعمالها عند التصميم، مثل درجات الرمادي وهي سهلة جدا ..

ما دمت استعملت br فلماذا لا اضيف لها خصائص في css ؟ br لها خصائص معينة تأتي افتراضا او default مثل margin مثلا ..
على كل ساضيف لها خصائص وطبعا لل br التابعة ل form التابع ل main
حتى لا تظهر الخصائص على باقي br المستعملة في باقي الموقع، ان كان لديك محتوى اسفل form او شيء آخر

#main form br {
		margin: 10px 0;
}

ساخذف لون الخلفية من label كان الهدف هو ان اوضح اين هي label في form ..
وبدلا من ذلك أضفت لون للكتابة وغيرت شكل الحروف حيث الحرف الاول في العبارة سيكون Capital (لا تستعمل مع العربية)

#main form label {
 color:#919191;
 text-transform: capitalize;	
}

لحد الان، ال form البريدي يبدو بهذا الشكل:

screen

سأضيف أيضا بعض الخصائص للحقول input، جميع الحقول التي على شكل input (الاخرى هي textarea, select ..) ستأخذ هذه الخصائص ..

#main form input {
		padding: .2em;
		color:#2066BC;
}

اذا اردت ان اغير خصائص حقل واحد او حقول معينة سأضيف لها class كالتالي:

<input type="text" name="name" class="name" /><br />

وفي كود css سيكون لدي ما يلي:

#main form input.name {
		padding: .2em;
		color:#2066BC;
}

وبالتالي سيظهر اللون الازرق و padding على حقل الاسم فقط ..

بالنسبة لي، ساضيف class بهذه الطريقة

<input type="submit" value="send" class="submit" />

وكذلك

<input type="text" name="name" class="text" /><br />
<input type="text" name="email" class="text" /><br />

كود css:

#main form input.text {
 padding: .2em;
 color:#2066BC;
 width: 320px;
 border: 2px solid #eee
 
}
#main form input.submit {
 margin: 10px 0 0;
 
}

بالنسبة لحقلي الام والبريد، وضعت لهما عرض جديد 320 px و border بقيمة 2px بلون رمادي فاتح ..
أما زر الارسال فتركته كما هو، فقط اضفت له قيمة 10px لينزل قليلا عن الحقل ..

ملاحظة:
تذكر انك لست ملزما بالتقيد بما اختاره من شكل والوان، وان الهدف هو ان تقوم بنفسك باختيار تنسيق والوان مختلفة حسب رغبتك ..

شكل form الجديد:

screen

شخصيا، احب إضافة تاثيرات لكل ما اقوم بانجازه ..

#main form input.text:focus {
  border:2px solid #96CFE9
}

اذا كان لديك حقول اخرى من نوع password مثلا عليك تحديد ذلك هكذا:

#main form input[type=text]:focus {
  border:2px solid #96CFE9
}
#main form input[type=password]:focus {
  border:2px solid #96CFE9
}

ملاحظة:
ستضيف [type=text] للحقل، في حالتي لم استعمله لان كل الحقول من نوع text ولا يوجد لدي حقل من نوع password ..
للاسف هذا التأثير لن يظهر على IE6 و IE7 .. لكنه يظهر على جميع اصدارات FF، كما توجد طريقة ب javascript لصنع نفس التأثير على ie

التاثير الذي اضفته يجعل إطار الحقل يتغير عند الضغط عليه لكتابة شيء فيه ..
صورة توضيحية:

screen

بعد ذلك يمكن إضافة خصائص لزر الارسال:

#main form input.submit {
  margin: 10px 0 0;
  background: url(images/submit.gif) repeat-x left center;
  border: 1px solid #eee;
  padding: .2em;
  color:#ccc;
}

ومرة أخرى، اضيف تأثيراً لزر الارسال، (يعمل على FF و IE7 بينما غير متوافق مع IE6)

#main form input.submit:hover {
 color:#333;	
 border: 1px solid #C3C3C3;
}

كما اضفت تاثيرا اخر بحيث عند المرور على زر الارسال بالفأرة تظهر اليد وكأنه رابط:

#main form input.submit {
  cursor: pointer;	
}

ملاحظة: كثير من الناس لا يستعملون :focus و :hover، ربما تكون هذه بداية لاستعمالها في اشياء كثيرة جدا

صورة:

screen

حقوق الدرس ل cssbit

  1. مبتدئ:

    شكرا و بارك الله فيك

    درس مفيد ورائع و نترقب المزيد من فيضك التقني
    ولكن اريد أن اقترح عليك ان تنضم دروس مترابطة في التصميم تشمل كل الأدوات و الحيل في فن التصميم حتى تسهل المتابعة و تزيد الفائدة

    ولك الشكرا الجزيل

  2. cssbit:

    مبتدئ
    بكل سرور عزيزي، ان كنت تقصد التصميم ب css و xhtml وليس الفوتوشوب .. طبعا

  3. عادل:

    كلمة الشكر قليله في حقك على ما تقدم لنا من دروس جزاك الله عنا كل خير
    وشكرا على مدونتك الشخصية

  4. cssbit:

    عادل:
    العفو يا رجل
    لم افعل شيئا يستحق الشكر :)

  5. عبد الهادي:

    السلام عليكم ورحمة الله وبركاته..
    بارك الله فيك أخي نعيم، فدرس اليوم رائع، سهل ومفيد.. فلقد شرحت تقريبا كل صغيرة وكبيرة، وبالتالي بات الأمر مفيدا للمبتدئ والمحترف على حد سواء..
    رائع ذلك التأثير على حقول النصوص لكن هذا الإكسبلورر لنا بالمرصاد..
    أضحكتني بقولك:
    “لكي انقز سطرا واحدا”
    ^_^
    يجب أن تقفز يا رجل وليس أن تنقز ^_^ (أحيانا تنفلت لنا اللهجات المحلية لتحشر نفسها مع العرب ^_^)
    بالتوفيق أخي ومني لك أرق تحية..

  6. cssbit:

    بصراحة عندما وصلت الى هذه العبارة، ترددت خصوصا ان كلمة تقفز تبدو متوحشة مع css اللطيفة والانيقة
    لذلك وضعت: تنقز والتي اعتقد انها باللهجة المغربية هههه

    اعتذر
    :)

  7. مدوّنة cssbit حيث مطوّرالويب يجب أن يعمل مطوّر ويب !! « كتوم:

    [...] أجزاء معينة في الصفحات بواسطة CSS مثل عمل footer بـ CSS، ونموذج بريدي، وحقل البحث، علاوة أيضا على كثير من الدروس أو لنعتبرها [...]

  8. مصطفي خاطر:

    جزاك الله كل خير يا أخي , وبارك الله فيك , وجعله إن شاء الله في ميزان حسناتك

    وأرجو منك مراسلتي علي بريدي الإلكتروني للإستفسار عن بعض الأشياء المهمة
    khater_1992@yahoo.com
    وشكراً جزيلاً لكـ

أضف تعليقاً