HTML & CSS for nybegynnere

HTML & CSS for nybegynnere (Del 46): Kontaktskjemaet (1)

Alle videoer i opplæringen HTML & CSS for nybegynnere

Jeg går her ut fra at du oppretter en ekstra HTML-fil. Jeg lagrer den i alle fall under navnet kontakt.html. Kontakt.html-filen befinner seg på samme nivå som den allerede kjente index.html-filen.

I denne første delen skal de grunnleggende innstillingene på skjemaet gjøres. Ting som runde hjørner, fargeoverganger osv. følger så i neste veiledning.

Inne i kontakt.html-filen oppretter man skjemaet. Skjemaet defineres innenfor div-området med klassen content. Deretter bør dere tenke gjennom hvilke felt som skal opprettes. Jeg har valgt å spørre om følgende informasjon:

• Navn
• E-postadresse
• Kommentar

Dere må selvfølgelig selv bestemme hvilken informasjon dere vil innhente. Generelt sett anbefaler jeg imidlertid å kun be om de faktisk nødvendige dataene. De fleste besøkende på nettsider unngår nemlig omfattende skjemaer. Så hold det enkelt.

Grunnstrukturen til skjemaet mitt ser slik ut:

<div class="content">
   <formclass="form" action="#" method="post">
   <fieldset>
   <legend>Kontakt oss</legend>
   <ol>
      <li>
      <label for="name">Navn:</label>
      <input type="text" name="name"id="name" value="" />
      </li>
      <li>
      <label for="email">E-postadresse:</label>
      <input type="text" name="email" id="email"value="" />
      </li>
      <li>
      <label for="comment">Kommentar:</label>
      <textarea cols="32" rows="7"name="content" id="content"></textarea>
      </li>
      <li class="button">
      <input type="submit" name="submit"id="submit" value="Send" />
      </li>
   </ol>
   </fieldset>
   </form>
</div>

Skjemaet inneholder ikke noen spesielle ting ennå. En fieldset-definisjon er brukt rundt skjemafeltene. Hvordan man oppretter skjemafelt og hva label-elementene innebærer er allerede beskrevet i tilstrekkelig detalj. Her bør fokus derfor være på formutforming.

Når resultatet vises i nettleseren, vil man først se et skjema som ikke er spesielt tiltalende.

HTML og CSS for nybegynnere (Del 46): Kontaktskjemaet (1)



Her er det selvfølgelig rom for forbedringer.

Først oppgis grunnleggende opplysninger om skjemaet.

form {
   padding: 3px 0 0;
   margin: 10px auto;
   width: 550px;
 }



Her defineres ytter- og indre avstander. I tillegg settes en bredde på 550 piksler for skjemaet.

Deretter fortsetter det med utformingen av fieldset.

fieldset {
   padding: 10px 20px 25px;
 }



Også her defineres avstandene.

Skjemafeltene er satt opp innenfor en ol-liste.

ol {
   list-style-type: none;
   margin: 0;
   padding: 0;
 }



For at denne listen ikke skal se ut som en liste, brukes list-style-type: none;. I tillegg er grensene og indre avstandene satt til 0 hver for seg.

Neste skritt er å definere listeelementene. Disse flyter til venstre og har en indre avstand på 10 piksler.

li {
   float: left;
   padding: 10px;
 }



Det er en spesiell ting når det gjelder knappen som står under skjemaet. Den skal justeres til høyre.

li.button {
   float: none;
   clear: both;
   text-align: right;
 }

Skjemaoverskriften

Nå tar vi for oss legend-elementet. Skjemaoverskriften defineres ved hjelp av dette.

HTML & CSS for nybegynnere (Del 46): Kontaktskjemaet (1)



Definisjonen av overskriften ser slik ut:

fieldset legend {
   font-weight: bold;
   font-size: 22px;
   margin: 20px 0 0 10px;
 }

Tekstnedleggelsene

label-elementet har du også allerede møtt i løpet av denne serien. Gjennom dette elementet skapes en logisk sammenheng mellom feltetiketten og selve skjemafeltet. Når det gjelder CSS-definisjonen, finnes det faktisk en spesiell ting her.

label {
   display:block;
   cursor: pointer;
   font-weight: bold;
   line-height: 24px;
 }



Jeg utstyres label-elementet blant annet med en cursor-angivelse. Dette signaliserer at besøkende kan klikke på feltetiketter. Hvis de da faktisk klikker på en feltbeskrivelse, settes markøren automatisk i det tilhørende feltet.

HTML & CSS for nybegynnere (Del 46): Kontaktskjemaet (1)

Utforming av skjemafeltene

Neste steg er å designe de faktiske skjemafeltene. Først oppgis generelle opplysninger om input og textarea.

input, textarea {
   color: #3399FF
   border: 1px solid #3399FF;
   font: 13px Helvetica, Arial, sans-serif;
   padding: 8px 10px;
   width: 190px;
 }



Dette er utelukkende designelementer. Spesiell oppmerksomhet bør rettes mot rammene. Så snart du plasserer markøren i et felt, endres rammens farge. Dette er faktisk ikke bare en estetisk faktor. Det hjelper faktisk også besøkende med å fylle ut skjemaet. På denne måten ser de alltid umiddelbart hvilket felt markøren er i.

Nå følger noen opplysninger om flerlinje tekstfelt.

textarea {
   width: 430px;
   overflow: auto;
 }



Bredden på dette feltet er satt til 430 piksler. Noe som kanskje virker merkelig ved første øyekast, er instruksjonen overflow: auto i forbindelse med flerlinje inndatafelt. Denne linjen skyldes eldre versjoner av Internet Explorer. Faktisk viste denne nettleseren rullefelt til og med i flerlinje inndatafelt når det egentlig ikke var nødvendig. Ved å bruke overflow: auto kan dette skjønnhetsproblemet unngås.

Designe Send-knappen

Foreløpig ser Send-knappen ganske enkel ut. Dette vil nå endre seg. Resultatet vil se slik ut:

HTML & CSS for nybegynnere (Del 46): Kontakt skjemaet (1)



Forskjellige egenskaper vil bli tilordnet knappen.

• Bakgrunnsfarge

• Skriftutseende

• Ramme

• Avstander

CSS-syntaksen for dette ser slik ut:

input[type="submit"] {
   background-color: #3399FF;
   color: #fff;
   cursor: pointer;
   font: bold 1em/1.2 Georgia, "Times New Roman ", serif;
   border: 1px solid #000;
   padding: 5px 10px;
   width: auto;
 }



Merkverdig kanskje er oppgaven input[type="submit"]. Gjennom denne velgeren får du tilgang til input-elementer som har attributt-verdi-kombinasjonen type="submit".