Artykuły:

  • data publikacji: 03.06.2010

    Jak za pomocą js poprawić wygląd formularzy

    kategoria: Skrypty client-side, XHTML/CSS autor: palmiak

    niceforms

    Tworząc strony dość często trzeba powojować z formularzami. Niestety dość często się zdarza współpraca z grafikiem, który o htmlu to za dużo nie wie, a wizje formularzy ma dość... finezyjne (np. ostylowany button przy input type="file"). Wtedy możemy albo zacząć ostro kombinować (background, js, pełna przezroczstość... po prostu cuda) albo powiedzieć, że się nie da. Ostatecznie pozostaje nam użyć Niceforms, czyli skryptu, w którym autor ostro pokombinował za nas.

    demo

    Jak to działa?

    Dla usera - po prostu banalnie. Całość ogranicza się do dopisania linijki (załączenie skryptu) oraz dopisania class="niceform". Dodatkowo jeżeli chcemy zmienić wygląd formatek należy zedytować pliczek psd załączony do archiwum i zapisać obrazki.

    Pod maską już się dzieje o wiele więcej rzeczy. Najprościej mówiąc wszystko działa na zasadzie ukrycia pola formularza, utworzenia nowego obiektu, który służy głównie do wyglądania oraz przekazywania wartości wpisywanej/wyklikiwanej w nasz nowy twór do ukrytego już pola.

    Taki niestety urok stylowania formularzy i stąd tak kombinacje.

    Prosty formularzyk

    Najpierw będziemy bazować na tym co otrzymujemy z Niceforms.

    Nasz formularzyk będzie banalnym polem do wpisania jakiegoś słowa.

    Po pierwsze pobieramy Niceforms ze strony autora: www.emblematiq.com.

    W sekcji head dopisujemy:

    <script language="javascript" type="text/javascript" src="niceforms.js"></script>
    <link rel="stylesheet" type="text/css" media="all" href="niceforms-default.css" />
     

    Następnie w body piszemy już formularz właściwy:

    <form action="" class="niceform">
      <fieldset>
        <legend>Formularz do napisania czegoś</legend>
        <dl>
          <dt><label for="napisz_cos">Napisz coś</label></dt>
          <dd><input id="napisz_cos" /></dd>
        </dl>
        <dl>
          <dt><input type="submit" name="submit" id="submit" value="Wyślij" /></dt>
        </dl>
      </fieldset>
    </form>
     

    Najważniejsze jest to class="niceform". I tak oto wygląda najprostsza wersja naszego formularza.

    Załączone demo prezentujące wszystkie uroki Niceforms wygląda zaś następująco.

    A gdybyśmy chcieli zmienić grafikę?

    Potrzebować będziemy Photoshopa by otworzyć pliczek nf-standard-blue.psd. W nim zawarte są wszystkie grafiki związane z formularzem. Dodatkowo przygotowane są linie do cięcia, więc wystarczy wybrać zapisz dla web i zapisać same grafiki. Oczywiście można to zrobić po swojemu, tylko wtedy będzie troszkę więcej zabawy ze stylem. W sumie zabawy z PSem zostawiam Wam.

    Opiszę teraz które klasy są używane do których elementów formularzy.

    input type="text" - NFText(robi za kontener w którym trzymane są kolejne elementy oraz to właśnie nim stylujemy tekst, który wpisujemy), NFTextCenter(odpowiada za rozciągającą się część tła - czyli środkową). NFTextLeft(odpowiada za lewą krawędź inputa), NFTextRight(odpowiada za prawą krawędź inputa)

    input type="checkbox" - NFCheck(odpowiada za ten buttonik czy coś jest zaznaczone czy nie)

    input type="radio" - NFRadio(odpowiada za ten buttonik czy coś jest zaznaczone czy nie)

    input type="button" - NFButton(środkowa część przycisku, rozszerzająca się w zależności od ilości tekstu), NFButtonLeft(lewa krawędź przycisku), NFButtonRight(prawa krawędź przycisku)

    input type="file" - NFFileButton(fragment udający guzik w file), NFFileNew(nowy input który udaje funkcjonalność lewej części file) dodadkowo wykorzystywane są tutaj NFText oraz NFTextLeft

    textarea - NFTextarea(tu wklepujemy zawartość), NFTextareaTop, NFTextareaBottom, NFTextareaTopLeft, NFTextareaTopRight, NFTextareaBottomLeft, NFTextareaBottomRight(poszczególne krawędzie pola), NFTextareaTopH, NFTextareaBottomH, NFTextareaTopLeftH, NFTextareaTopRightH, NFTextareaBottomLeftH, NFTextareaBottomRightH(poszczególne krawędzie po najeździe)

    select - NFSelect(kontener dla kolejnych elementów), NFSelectLeft(lewa część selecta - warto się przyjrzeć obrazkom, że zrozumieć jak to jest konstruowane), NFSelectRight(prawa część selecta), NFSelectOptions(czyli to co się pojawia po pliknięciu w selecta - tak naprawdę jest to ul)

    select multiple="multiple" - w sumie jest to prawie to co textarea, tylko nazwy zamiast NFTextarea mają na początku NFMultiSelect

    Poza tymi klasami mamy kilka dodatkowych, których w większości przypadków ruszać nie należy:
    NFfocused - są nadawane elementom na których obecnie jest focus
    NFh - przesuwa tło by nadać mu pozycję 0 100% (używane w większości formatek)
    NFhr - przesuwa tło by nadać mu pozycję 100% 100% (używane przy select)
    NFhidden - ukrywa elementy, ale w taki sposób, że dalej są one funkcjonale (poprzez nadanie pełnej przezroczystości)

    Mając opis klas, psd oraz gotowy wzór pozostaje tylko troszkę cierpliwości i powinno się udać.

    Jeżeli nie będziecie zmieniać rozmiarów podmiana obrazków będzie bardzo szybkim procesem. W przeciwnym razie będzie trzeba troszkę podrasować arkusz stylu.

    Podsumowanie

    Jak widzicie stworzenie wymarzonych formularzy dzięki Niceforms jest w sumie prostym i w miarę przyjemnym procesem. Szkoda, że do osiągnięcia takich efektów potrzebne jest sporo tricków dziejących się pod maską. Pozostaję nam więc starać się edukować grafików ze szczególnie ułańską fantazją, żeby akurat przy formularzach troszkę odpuścili.

    Udostępnij ten artykuł:
    • Print
    • Digg
    • del.icio.us
    • Facebook
    • Mixx
    • Google Bookmarks
    • Gwar
    • RSS
    • Technorati
    • Twitter
    • Wykop

  • 6 Responses to “Jak za pomocą js poprawić wygląd formularzy”

    1. Kamil Brenk pisze:

      Znam tę biblioteką, dość stara, lecz popularna. Jednak moje wcześniejsze i ważniejsze skojarzenie: http://riddle.jogger.pl/2006/10/10/rece-precz-od-...

      Pozdrawiam :)

    2. @sheerun pisze:

      Próbowałem tego skryptu i muszę powiedzieć, że jest ociężały i mało elastyczny. Jakoś nie widzę go gdziekolwiek używać.

    3. S.Wojnowski pisze:

      Zgadzam się, skrypt jest dość ciężki, z drugiej strony jednak podstrony z formularzami często nie są jakieś wyjątkowo ciężkie …

      Odnośnie grafików, oni nie chcą bawić się w html, css, javascript, php , bash , mysql … ja ich rozumiem, grafika to kompltne przeciwieństwo kodowania, po dniach kodowania człowiek nie może spać, mózg jest max aktywny, po dniach zabawy z grafiką człowiek potrzebuje niezłej rozgrzewki aby znów wrócić do kodowania …

      Tworzenie grafiki rozleniwia, mózg przestaje intensywnie pracować . Grafika ogólnie ciężko jest zmusić do kodowania, zresztą wielu z nich nie potrafi nauczyć się nawet prostych rzeczy, zwłaszcza ci starsi z printu.

      pozdrawiam
      S.Wojnowski
      <a href = "http://wojnowski.net.pl">Wojnowski o wordpresie

      • Agressiva pisze:

        Jako osoba, która w pracy zajmuje się i tworzeniem designów i kodowaniem stron (xhtml/css/jquery) nie mogę się do końca zgodzić z twoją teorią odnośnie tego, że grafika rozleniwia. Nawet jak mam 2-3 dni z rzędu kiedy projektuje w Photoshopie to muszę mieć miliom pomysłów jednocześnie aby nie popaść w szablonowość i tworzyć projekty unikalne dla każdego klienta – motywuje mnie to do tego aby gonić trendy i potrzeby klientów. Poza tym nie mogę zbytnio nagiąć graficznie projektu aby później za bardzo się nie naszarpać przy kodowaniu.

        Jestem za tym, aby każdy grafik szczególnie webowy nauczył się chociaż podstaw kodowania, aby wiedział jak to jest kiedy wymyśli coś co tańczy i śpiewa a ciężko od strony kodu wdrożyć do projektu.
        O dtpowcach nie mówię – z doświadczenia w agencji intertakt. wiem, że osoby od dtp nie powinny dotykać się webdesignu.

    Leave a Reply

Komentarze

Kategorie

Top 10

  • CMSy Artykuły dotyczące różnego rodzaju systemów zarządzania treścią CMS.
  • Flash Podstawowe informacje pomocne przy tworzeniu animacji w Adobe Flash.
  • Fotografia Samouczki dotyczące nie tylko robienia zdjęć ale też ich cyfrowej obróbki.
  • Grafika Ogólnie pojęta grafika komputerowa, od inspiracji, po tworzenie layoutów oraz mniejszych form graficznych.
  • Inne tutoriale wordpressowe Wszystkie inne zagadnienia dotyczące WordPressa.
  • Inspiracje Inspirujące materiały graficzne z dziedziny projektowania stron www, projektów DTP, digital painting, itp.
  • Obróbka zdjęć Techniki retuszu fotografii cyfrowych.
  • Rysunek Tworzenie rysowanych ilustracji w Adobe Photoshop.
  • Skóry do Wordpressa Darmowe oraz płatne – najlepsze skóry do WordPressa.
  • Skrypty client-side
  • Skrypty server-side
  • Tutoriale
  • Webdesign Tutoriale z zakresu projektowania stron www i grafiki użytkowej na rzecz internetu.
  • Wieczór z Open Source
  • Wordpress Ulubieniec naszej publiczności CMS WordPress: nowości, tricki, wtyczki, skóry i wszystko to co może przydać się przy korzystaniu z tego systemu.
  • Wtyczki do Wordpressa Recenzje oraz instrukcje najbardziej popularnych i najbardziej niezbędnych pluginów do WordPressa.
  • XHTML/CSS Ciekawostki z dziedziny kodowania stron www: XHTML, CSS, jQuery.

Najnowsze newsy

Wieczór z Open Source 2010

Jak co roku WSINF organizuje konferencję Wieczór z Open Source.
Chciałbym zaprosić was na tegoroczna konferencję Wieczór z Open Source 2010! Czytaj dalej

Grafart.org i WACOM zapraszają na konkursy!

Witam!

Myślę, że czas najwyższy nadmienić, że za niedługi czas zostanie zorganizowany pierwszy z trzech konkursów, w których główną nagrodą będą tablety firmy WACOM!
Za miejsca drugie oraz trzecie nagrodami będą kubki i koszulki firmy WACOM oraz magazyny graficzne PSD PHOTOSHOP oraz COMPUTERARTS.
Czytaj dalej

Zapraszamy na forum graficzne Graffika.pl

Każda osoba interesująca się grafiką komputerową ma czasami ochotę porozmawiać o swoich pracach, posłuchać rad, krytyki i pochwał innych osób. Idealnym miejscem na realizowanie takich potrzeb jest forum graficzne Graffika.pl.
Czytaj dalej

Polecane strony

  • No bookmarks avaliable.