Karibuni sana marafiki katika sehemu hii tutajifunza kidogo kuhusu vipengele na sifa za form za html.
FORM ZA HTML
Form za html zinatumika kukusanya user inputs.
Kipengele cha <form>
Kipengle cha <form> kinaeleza form ya HTML.
Mfano
<form>
.
vipengele vya form
.
</form>
Form za HTML zina vipengele vya form.
Vipengele vya form vina aina tofauti tofauti ya vipengele vya input, checkboxes, radio buttons,text, submit nk.
Kipengele cha <input>
Kipengele cha <input> ni cha muhimu sana katika form.
Kipengele cha <input> kina tofauti nyingi, inategemea na aina ya attribute(sifa).
Hizi ni baadhi ya aina.
Text: inaeleza maandishi ya kawaida ya input.
Radio: inaeleza radio button ya input(kwaajiri ya chaguo moja kati ya mengi).
Submit: inaeleza submit button(kwaajiri ya kuwasirisha form).
Text input
<input type=”text”> inaeleza mstari mmoja wa uwanja wa input kwaajiri ya input text;
Mfano
<!DOCTYPE html>
<html>
<body>
<form>
Jina la kwanza:<br>
<input type="text" name="jinalakwanza">
<br>
Jina la mwisho:<br>
<input type="text" name="jinalamwisho">
</form>
</body>
</html>
Note : form yenyewe haionekani.
Note: upana wa kawaida wa uwanja wa maandishi ya input ni herufi 20.
Radio Button input
<input type=”radio”> inaeleza radio button.
Radio button inamfanya mtumiaji achague chaguo moja katika ya machaguo yalio kuwepo.
Mfano
<!DOCTYPE html>
<html>
<body>
<form>
<input type="radio" name="gender" value="male" checked> Mme <br>
<input type="radio" name="gender" value="female"> Mke<br>
<input type="radio" name="gender" value="other"> Mengine
</form>
</body>
</html>
Note: jina(
name attribute) la chaguo lakwanza hadi la mwisho tabidi liwe sawa kama halipo sawa itakubali machaguo yote yalio kuwepo.
Mfano
<!DOCTYPE html>
<html>
<body>
<form>
<input type="radio" name="male" value="male" checked> Mme<br>
<input type="radio" name="female" value="female"> Mke<br>
<input type="radio" name="gender" value="other"> Mengine
</form>
</body>
</html>
Submit button
<input type=”submit”> inaweka kutufe cha kubonyeza kwaajiri ya kuwasirisha form kwa
form handler.
Form handler kwa kawaida ni kurasa ya server ikiwa na script(codes) kwaajiri ya kuprocess taarifa zilizo ingizwa kwenye input field.
Form handler au faili ambalo lina process input data inaelezwa katika form’s
action attribute
Mfano
<!DOCTYPE html>
<html>
<body>
<form action="formHanler.php" >
<h4>Andika jina lolote na ubonyeze submit uwone kinacho tokea</h4>
Jina la kwanza:<br>
<input type="text" name="jinalakwanza" >
<br>
Jina la Mwisho:<br>
<input type="text" name="jinalamwisho" >
<br><br>
<input type="submit" value="Submit">
</form>
<p>Taarifa zitatumwa katika faili formHanlder.php </p>
</body>
</html>
Action Attribute
Action attribute inaeleza action ambayo itakayo fanyika endapo form itakuwa imewasirishwa(submitted)
Njia ya kawaida ya kuwasirisha form kwenye server ni kwa kutumia submit button.
Kwa kwaida form inawasirishwa kwenye kurasa ambayo ipo kwenye server.
Kama action haijawekwa basi action itawekwa by default kwenye kurasa ile ile iliyo kuwepo form.
Method Attribute
Method attribute inaeleza njia ya HTTP(GET,POST) itakayo tumika endapo form itakuwa inawasirishwa.
Mfano
<form action=”formHandler.php” method=”GET”></form>
Au
<form action=”formHandler.php” method=”POST”></form>
Kipindi Gani Cha kutumia GET ?
Unaweza kutumia GET kama uwasirishwaji wa form ni wakawaida yani hauna taarifa nyeti kama (query za injini tafutaji)
Ukitumia GET,Taarifa za form zitakuwa zinaonekana kwenye address bar ya browser yako.
Kama
formHandler.php?firstname=frank&lastname=galos
Note tumia GET kama una taarifa chache zinazoitajika kuwasirishwa.
Kipindi Gani Cha Kutumia POST ?
Tumia POST kama form yako ina update taarifa, au inataarifa nyeti kama(password).
POST inatoa urinzi wakutosha kwani taarifa zinazo wasilishwa hazionekani kwenye address bar ya browser.
Name Attributte
Ili form iweze kuwasirishwa vizuri lazima kila uwanja wa input uwe na name attribute.
Unaweza usiweke name na badala yake unaweka id kwaajiri ya javascript ajax library kuweza kutuma / kupokea taarifa kwenye server.
Mfano
<!DOCTYPE html>
<html>
<body>
<form action="formHandler.php" method=”post”>
jina la kwanza:<br>
<input type="text" name “jinalakwanza">
<br>
jina la mwisho:<br>
<input type="text" >
<br><br>
<input type="submit" value="Submit">
</form>
</body>
</html>
Mfano hapo juu uta wasirisha taarifa za jina la kwanza tu. Kwasababu thamani ya uwanja wa jina la mwisho haina name attribute.
Kama utabonyeza submit taarifa zako zitatumwa katika faili linaloitwa
Kuweka Taarifa za Form kwenye makundi na <fieldset>
Kipengele cha
<fieldset> kinaweka taarifa za form zinazofana kwenye makundi.
Kipengele cha
<legend> kinaweka maelezo(caption) kwaajiri ya kipengele cha
<fieldset>
Mfano
<!DOCTYPE html>
<html>
<body>
<form action="formHandler.php" method = “POST”>
<fieldset>
<legend>Taarifa za kibinafsi:</legend>
First name:<br>
<input type="text" name="jinalakwanza" >
<br>
Last name:<br>
<input type="text" name="jinalamwisho" >
<br><br>
<input type="submit" value="Submit">
</fieldset>
</form>
</body>
</html>
Sifa za FORM (form attributes)
Form ikiwana sifa zote itaonekana ivi.
<form action="formHandler.php" method="post" target="_blank" accept-charset="UTF-8"
enctype="application/x-www-form-urlencoded" autocomplete="off" novalidate>
.
vipengele vya form
.
</form>
Orodha ya attributes za Form
accept-charset : inaeleza charset itakayotumika wakati wa kuwasirisha form.
Action : inaeleza anuani ambayo form itakuwa inawasirishwa .
Autocomplete: inaelaza kama form iwe autocomplete (default ni
on);
Enctype: inaeleza encoding ya taarifa zilizo wasilishwa(default ni url-encoded).
Method: inaeleza njia ya HTTP iliyotumika wakati wa kuwasirisha form(default ni GET).
Name: inaeleza jina lililotumika kuitambua form.
Novalidate: inaeleza kuwa browser haitahi kuihalisha form.
Target: inaeleza lengo la anuani kwenye sifa ya action(action attribute) default ni _self.
Note : Tutajifunza Zaidi kuhusu Attribute na input types baadae.
Mfano Zaidi Tuma mail kupitia form na kuweka mtindo wa css
<!DOCTYPE html>
<html>
<style>
body{
background:#fff;
margin:0px;
padding:0px;
font-family:Tahoma,sans-serif;
}
h2{
background:cornflowerblue;
padding:10px;
margin:0px;
}
form{
width:100%;
height:350px;
color:#099;
margin:10px 0 0 20px;
padding:0px;
display:inline-block;
}
form > input#name{
padding:8px;
height:auto;
width:270px;
margin:5px 0 0 0;
display:block;
border:1px solid #ffa500;
border-radius:2px;
}
form > input#mail{
padding:8px;
height:auto;
width:270px;
margin:5px 0 0 0;
display:block;
border:1px solid #ffa500;
border-radius:2px;
}
form > textarea{
border:1px solid #ffa500;
border-radius:2px;
width:270px;
height:90px;
margin:10px 0 0 0;
padding:0px;
display:block;
resize:none;
overflow:none;
}
form > #submit{
padding:10px;
margin:10px 0 0 20px;
border:1px solid #ffa500;
border-radius:2px;
display:inline-block;
background:#fff;
}
form > #reset{
padding:10px;
margin:10px 0 0 20px;
border:1px solid #ffa500;
border-radius:2px;
background:#fff;
display:inline-block;
}
form > #reset:hover{
border-color:cornflowerblue;
color:#ffa500;
cursor
😛ointer;
transition:0.5s linear 0s;
}
form > #submit:hover{
border-color:cornflowerblue;
color:#ffa500;
cursor
😛ointer;
transition:0.5s linear 0s;
}
</style>
<body>
<h2>Tuma Email kwa
frankgalos@ymail.com:</h2>
<form action="MAILTO: frankgalos@ ymail.com" method="post" enctype="text/plain">
jina:<br>
<input type="text" id="name" name="name" placeholder ="jina lako">
Barua pepe:<br>
<input type="text" id = "mail" name="mail" placeholder="Barua pepe">
Maoni:<br>
<textarea type="text" name="comment" placeholder="Maoni yako" size="50"></textarea>
<input id="submit" type="submit" value="Send">
<input id ="reset" type="reset" value="Reset">
</form>
</body>
</html>
Alama ya
> ni css combinatory ambayo ina hashiria kuwa kuna husiano kati ya selector na selector.
Kuna aina tatu ya
CSS3 combinator nazo.
· Descendant selector(space);
· Child selector(>)
· Adjacent sibling selector(+)
· General sibling selector(~)
Niki pata nafasi tutazijua kuindani.
Margin:0px 0px 0px 0px;
Inaeleza :
Margin-top:0px;
Margin-left:0px;
Margin-bottom:0px;
Margin-right:0px;
Kwa ujumla ili kuwepuka kuweka code nyingi katika kurasa zetu ni vizuri tukatumia huu mfumo,
Margin:0px 0px 0px 0px;
Ilikuweka left,right,top,bottom = 0px; unajua kuweka
Margin:0px;
Kama unataka kuweka margin sehem moja au mbili ndo una apply hii kitu.
Margin:10px 0px 0px 10px;
Pia
padding inafata sharia hii
padding:10px 0px 0px 10px;
padding:10px;
left,right,bottom,top = 10px;
padding:0px;
left,right,bottom,top = 0px;
transition ni CSS3 transition ambayo inakupa uwezo kubadilisha thamani ya kitu vizuri (kutoka thamani moja hadi nyingine) kwa mda uliopewa.
Kwakutumia CSS3 transition unaweza kubadilisha kitu chochote cha HTML kama div,span,h1 …h6,a, nk.
Kwakuweka tu hivi vitu.
Transition:0.5s linear 0s;
0.5s ni sekunde za duration na 0s ni sekunde za ku delay
Linear ni
transition timing function
Zipo aina sita za timing function ambazo zina weka spidi curve.
·
ease – inaweka effect ya transition kwa kuanza pole pole, pia halaka na mwisho pole pole.
·
linear – inaweka effect ya transition kwa spidi sawa ya kuanzia na ya kuishia.
·
ease-in – inaweka effect ya transition kwa kuanza pole pole.
·
ease-out – inaweka effect ya transition kwa kuishia pole pole.
·
easein-out – inaweka effect ya transition kwa kuanza pole pole na kuisha pole pole
·
cubic-bezier(n,n,n,n) - inakupa nafasi ya kuweka thamani zakwako mwenyewe kwenye cubic-bezie function
Mfano
<!DOCTYPE html>
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
background: red;
-webkit-transition: width 2s; /* Safari */
transition: width 2s;
}
/* kwaajiri ya Safari 3.1 to 6.0 */
#div1 {-webkit-transition-timing-function: linear;}
#div2 {-webkit-transition-timing-function: ease;}
#div3 {-webkit-transition-timing-function: ease-in;}
#div4 {-webkit-transition-timing-function: ease-out;}
#div5 {-webkit-transition-timing-function: ease-in-out;}
/* Standard syntax */
#div1 {transition-timing-function: linear;}
#div2 {transition-timing-function: ease;}
#div3 {transition-timing-function: ease-in;}
#div4 {transition-timing-function: ease-out;}
#div5 {transition-timing-function: ease-in-out;}
div:hover {
width: 300px;
}
</style>
</head>
<body>
<p><b>Note:</b> Huu mfano haufanyi kazi kwenye internet explorer 9 na za mwanzo .</p>
<div id="div1">linear</div><br>
<div id="div2">ease</div><br>
<div id="div3">ease-in</div><br>
<div id="div4">ease-out</div><br>
<div id="div5">ease-in-out</div><br>
<p>peleka mouse yako kwenye div. kuona spidi ya curves</p>
</body>
</html>
Richa ya kuweka transition: width 2s linear 0s unaweza kuweka ikiwa moja moja kama.
transition-property: width;
transition-duration: 2s;
transition-timing-function: linear;
transition-delay: 1s;
Itaendelea ….