Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML|php] Wyrównanie pól formularza
Forum PHP.pl > Forum > Po stronie przeglądarki > HTML \ XHTML
nighttrain
Witam

Mam skrypcik w PHP i chciałbym wyrównać jego pola, gdyż wprowadziłem koło dwóch z nich *, aby pokazywały, że te pola są wymagane, jednak ta operacją przesunąłem te dwa pola i nie są wyrównane z resztą. Jak nałatwiej się z tym uporać?

Domyślam się, że mogę zawrzeć to w tabelce, a potem jej ramki ustawić na niewidoczne. Jednak może lepiej byłoby w pliku css, który mam? Proszę o radę i info jak tego dokonać najlepiej i najszybciej

pozdrawiam
essey
Tak jak mówisz, najłatwiej w css smile.gif Tabelki w formularzach to przeżytek.

Jeżeli chciałbyś uzyskać konkretniejszą pomoc - wklej link do strony, albo screen, najlepiej html. Skąd mam wiedzieć jak wygląda twój formularz smile.gif
nighttrain
Formularz mam tak, jakoś nie tak jakbym chciał - małe gwiazdki, pola przy których są gwiazki nie są wyrównane do innych...
  1. echo ("<center>");
  2. echo '<form action="" method="post" onsubmit="return (validateformdoddotabprog(this) && czyjestespewien());">
  3. <h2>Prosze wypełnić pola poniżej:</h2><br />
  4. <input type="hidden" size="45" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid red" name="id_programu" value="'.$liczba.'" /><br />
  5. <b>Nazwa programu :</b><br />
  6. <input type="text" size="45" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid red" name="nazwa_programu"><b> *</b><br />
  7. <b>Wersja programu :</b><br />
  8. <input type="text" size="45" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid red" name="system_operacyjny"><br />
  9. <input type="image" src="graphics/button_dodaj_opro.jpg" alt="Wyslij" value="dodaj"><br /><br />
  10. <b><FONT COLOR=\"#800517\">* Pola oznaczone gwiazdką są wymagane</b></FONT></b><br />
  11. </form>';
  12. echo ("</center>");


mam też plik css, ale nie znam sie na css tak dobrze, żeby coś w nim zmieniać, mogę Ci podesłać

Prosze o pomoc
askone
Zmień odrobinę konstrukcję formularza:
  • każdy opis pola zrób jako label
  • gwiazdki daj w span
  • jeśli będzie Ci się chciało to dodakowo możesz cały formularz umieścić w <ul> a każdą linię w <li>
  • co w kodzie robi <center>?? daj w css regułę margin: 0 auto dla formularza...
nighttrain
Zrobiłem tak, nie wiem, czy ok?:
  1. echo '<ul><form action="" method="post" onsubmit="return (validateformdoddotabprog(this) && czyjestespewien());">
  2. <li><label>Prosze wypełnić pola poniżej:</label></li>
  3. <li><input type="hidden" size="45" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid red" name="id_programu" value="'.$liczba.'" /><br /></li>
  4. <li><label>Nazwa programu :</label></li>
  5. <li><input type="text" size="45" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid red" name="nazwa_programu"><b> *</b><br /></li>
  6. <li><label>Wersja programu :</label></li>
  7. <li><input type="text" size="45" style=" font-family:Verdana, Arial, Helvetica, sans-serif; font-size:16px; color:#000000; border: 2px solid red" name="system_operacyjny"><br /></li>
  8. <li><input type="image" src="graphics/button_dodaj_opro.jpg" alt="Wyslij" value="dodaj"><br /><br /></li>
  9. <li><label> Pola oznaczone gwiazdką są wymagane</label></li>
  10. </form></ul>';


Nie wiem jak zrobić span na gwiazdki i jak dodać to o czym pisałeś związanego z CSS?
essey
hm, wypadało by nieco przebudować Twój formularz.
Jak możesz, to nie dawaj stylów css inline (czyli w kodzie). Najlepiej całość przenosić do plików css, a w html tylko się do tego odwoływać.

Moja propozycja:

  1. #formularz label {
  2. display: block;
  3. width: 150px;
  4. float: left;
  5. padding-top: 5px;
  6. }
  7. #formularz input {
  8. font-family: Verdana, Arial, Helvetica, sans-serif;
  9. font-size: 16px;
  10. color: #000000;
  11. border: 2px solid red;
  12. width: 250px;
  13. }
  14. #formularz ul {
  15. margin: 0;
  16. padding: 0;
  17. list-style-type: none;
  18. }
  19. #formularz .required {
  20. color: red;
  21. }
  22. #formularz .info {
  23. color: red;
  24. font-size: small;
  25. padding: 5px;
  26. display: block;
  27. }
  28. #formularz .submit {
  29. width: auto;
  30. }

  1. <form id="formularz" action="" method="POST" onsubmit="return (validateformdoddotabprog(this) && czyjestespewien());">
  2. <input type="hidden" name="id_programu" value="'. $liczba .'" />
  3. <legend>Prosze wypełnić pola poniżej</legend>
  4. <ul>
  5. <li>
  6. <label for="nazwa_programu">Nazwa programu: <span class="required">*</span></label>
  7. <input type="text" name="nazwa_programu" id="nazwa_programu" />
  8. </li>
  9. <li>
  10. <label for="system_operacyjny">Wersja programu:</label>
  11. <input type="text" name="wersja_programu" id="system_operacyjny" />
  12. </li>
  13. <li>
  14. <input class="submit" type="image" src="graphics/button_dodaj_opro.jpg" alt="Wyślij" value="dodaj" />
  15. </li>
  16. </ul>
  17. <span class="info">* Pola oznaczone gwiazdką są wymagane</span>
  18. </form>

Rezultat jest taki:


Jak coś będzie niezrozumiałe - pytaj.
nighttrain
u mnie wyszło troszke inaczej:

http://www.fotosik.pl/pokaz_obrazek/a87c6b9a7dfd0a5f.html

może to wina mojego cssa?
essey
Myślę, że to kwestia usunięcia znacznika <center>, bo chyba taki jest u Ciebie.
Ale jeżeli chcesz, aby całość była do środka, to nie ma problemu.
Spróbuj tak:
  1. #formularz {
  2. width: 500px;
  3. margin: 0 auto;
  4. text-align: left;
  5. }


Jeżeli nie chce, to wystarczy dodać:
  1. #formularz input {
  2. float: left;
  3. }
  4. #formularz ul li {
  5. clear: both;
  6. }
ALBO
  1. #formularz {
  2. text-align: left;
  3. }

Teraz i labele i inputy będą do lewej.
nighttrain
Kilka rzeczy odnośnie powyższego:

1) nie pokazuje u mnie tej graficznej ikonki znaku zapytania...

2) jak zrobić, aby gwiazdka znalazła się po prawej od textboxa (zaraz po polu na wpisanie Textu) i była troszkę większa?

3) jak zrobić większe odstępy w pionie pomiędzy elementami- w tej chwili są sklejone

4) zauważyłem, że nieraz jak wpiszę dłuższa nazwę: np <label for="imie_nazwisko_usera">Imię i nazwisko użytkownika blabla:</label> element niżej wychyla sie do przodu...
essey
Cytat(nighttrain @ 27.09.2010, 14:13:17 ) *
Kilka rzeczy odnośnie powyższego:

1) nie pokazuje u mnie tej graficznej ikonki znaku zapytania...

2) jak zrobić, aby gwiazdka znalazła się po prawej od textboxa (zaraz po polu na wpisanie Textu) i była troszkę większa?

3) jak zrobić większe odstępy w pionie pomiędzy elementami- w tej chwili są sklejone

4) zauważyłem, że nieraz jak wpiszę dłuższa nazwę: np <label for="imie_nazwisko_usera">Imię i nazwisko użytkownika blabla:</label> element niżej wychyla sie do przodu...


ad.1
-----
Jest to zastępczy obrazek wyświetlany w wypadku, gdy nie można odnaleźć źródła (graphics/button_dodaj_opro.jpg). Sposób prezentacji tego zależny jest od przeglądarki. W moim wypadku chrome przedstawia to tak.

ad.2
-----
Jak widzisz, za gwiazdkę odpowiedzialny jest wpis
  1. <span class="required">*</span>
Przenieś to za <input>, czyli
  1. <label for="nazwa_programu">Nazwa programu:</label>
  2. <input type="text" name="nazwa_programu" id="nazwa_programu" />
  3. <span class="required">*</span>
Zostało jeszcze zmodyfikować style:
  1. #formularz .required {
  2. color: red;
  3. font-size: 18px;
  4. }

ad.3
-----
  1. #formularz ul li {
  2. margin-bottom:5px;
  3. }
Ustaw taki margin, jaki cię interesuje.

ad.4
-----
Jest to spowodowane zdefiniowaną szerokością labela. Jeżeli potrzebujesz na to więcej miejsca, zmodyfikuj w css "#formularz label" podając większą szerokość.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.