-
data publikacji: 03.06.2010
Jak za pomocą js poprawić wygląd formularzy
kategoria: Skrypty client-side, XHTML/CSS autor: palmiak
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.
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 NFTextLefttextarea- 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 NFMultiSelectPoza 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.
-
6 Responses to “Jak za pomocą js poprawić wygląd formularzy”
Leave a Reply
Komentarze
Kategorie
Top 10
bal intermobil: Jak stworzyć stronę za pomocą xhtml oraz css
alan27pbll: Query_posts, czyli jak ujarzmić loopa część 1.
alan27pbll: Query_posts, czyli jak ujarzmić loopa część 1.
Michał: Inspirujące strony www: wrzesień 2010
czi: Gravatar, czyli jak mieć globalnego avatara
learn italian online: Query_posts, czyli jak ujarzmić loopa część 1.
hotelpalermo: Jak poprawnie osadzić Flasha w kodzie (X)HTML strony?
Michał: jQuery Cycle
Windscreen: Inspirujące strony www: wrzesień 2010
EMAAR MGF GURGAON: Query_posts, czyli jak ujarzmić loopa część 1.
- 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.
























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
Osobiście też jestem przeciwko takim technikom niestety trzeba czasem jest tak, że klient chce, żeby formularz wyglądał tak i już. Nie da się wytłumaczyć. I na takie chwile warto mieć takiego Niecforms w rękawie.
http://www.skyrocketlabs.com/categories/tutorials...
I nie trzeba już więcej kombinować z JavaScript…
Próbowałem tego skryptu i muszę powiedzieć, że jest ociężały i mało elastyczny. Jakoś nie widzę go gdziekolwiek używać.
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
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.