Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][CSS] Problem z wypozycjonowaniem elementów na stronie
Forum PHP.pl > Forum > Po stronie przeglądarki > CSS
nighttrain
Witam

Mam mały problemik, otóż chciałbym, aby inputy oraz submity znalazły się na obrazku, wychodzi mi tak, że obrazek jest na środku, a inputy i submit układa się po lewej stronie...
Czy mógłby ktoś zobaczyć i pomóc?
Oto zdjęcie jak to wygląda:


oto kawałek kodu z index php:
  1. <div id="login_form">
  2. <h1>Login</h1>
  3. <?php
  4. function ShowLogin($komunikat=""){
  5. echo "$komunikat<br>";
  6. echo "<form action='index.php' method=post>";
  7. echo "<input type=text name=login><br>";
  8. echo "<input type=password name=haslo><br>";
  9. echo "<input type=submit value='Zaloguj!'>";
  10. echo "</form>";
  11. echo "Jeśli nie jesteś zarejestrowany, <a href='rejestruj.php'>tu znajdziesz formularz</a>";
  12. }
  13. ?>
  14. </div>


a to plik .css:
  1. body {
  2. background-color: #f0f0f0;
  3. margin: 0;
  4. padding: 0;
  5. font-family: arial;
  6. }
  7.  
  8. #login_form {
  9. width:300px;
  10. height: 200px;
  11. background: #f0f0f0 url(graphics/login_bg.jpg) repeat-x;
  12. border: 1px solid white;
  13. margin: 250px auto 0;
  14. padding: 1em;
  15. -moz-border-radius: 3px;
  16. -webkit-border-radius: 3px;
  17. padding: 7px 5px 0 5px;
  18. }
  19.  
  20. h1,h2,h3,h4,h5 {
  21. margin-top: 0;
  22. font-family: sans-serif;
  23. text-align: center;
  24. }
  25.  
  26. input[type=text], input[type=password] {
  27. display:block;
  28. margin: 0 0 1em 0;
  29. width: 280px;
  30. border: 5px;
  31. -moz-border-radius: 1px;
  32. -webkit-border-radius: 1px;
  33. padding: 1em;
  34. }
  35.  
  36. input[type=submit], forma a {
  37. border: none;
  38. margin-right: 1em;
  39. padding: 6px;
  40. border: 5px;
  41. text-decoration: none;
  42. font-size: 20px;
  43. -moz-border-radius: 4px;
  44. -webkit-border-radius: 4px;
  45. background: #348075;
  46. color: white;
  47. box-shadow: 0 1px 0 white;
  48. -moz-box-shadow: 0 1px 0 white;
  49. -webkit-box-shadow: 0 1px 0 white;
  50. }
  51.  
  52. /* podświetlenie przycisku po najechaniu na niego */
  53. input[type=submit]:hover {
  54. background: #287368;
  55. cursor: pointer;
  56. }


Szczerze to kodzik css skopiowałem z jakieś stronki...
askone
Hej
Cytat
  1. <div id="login_form">
  2. <h1>Login</h1>
  3. <?php
  4. function ShowLogin($komunikat=""){
  5. echo "$komunikat<br>";
  6. echo "<form action='index.php' method=post>";
  7. echo "<input type=text name=login><br>";
  8. echo "<input type=password name=haslo><br>";
  9. echo "<input type=submit value='Zaloguj!'>";
  10. echo "</form>";
  11. echo "Jeśli nie jesteś zarejestrowany, <a href='rejestruj.php'>tu znajdziesz formularz</a>";
  12. }
  13. ?>
  14. </div>


W powyższym fragmencie kodu masz część kodu html i definicję procedury ShowLogin. Definicja procedury to nie to samo co jej wywołanie... Pytanie brzmi w którym miejscu ją wywołujesz?? Bo odnoszę wrażenie że gdzieś poza
  1. <div id="login_form">
  2. ....
  3. </div>


ps. Swoją drogą co to za sposób, że statyczny kod HTML ubierasz w funkcję PHP, zamiast go po prostu zdefiniować jako HTML...

Pozdrawiam
nighttrain
a mógłbyś pokazać jak by to wyglądało "bez ubierania w PHP"?

tak wyglada caly plik:
  1. <?php
  2. session_register("zalogowany");
  3. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  4.  
  5. mysql_connect("localhost", "root", "qazwsx12")or die("Nie można nawiązać połączenia z bazą");
  6. mysql_select_db("users")or die("Wystąpił błąd podczas wybierania bazy danych");
  7. ?>
  8. <!DOCTYPE html
  9. PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  10. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  11. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  12. <head>
  13. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  14. <link href="logowanie.css" rel="stylesheet" type="text/css" />
  15. </head>
  16. <body>
  17. <div id="login_form">
  18. <h1>Login</h1>
  19. <?php
  20. function ShowLogin($komunikat=""){
  21. echo "$komunikat<br>";
  22. echo "<form action='index.php' method=post>";
  23. echo "<input type=text name=login><br>";
  24. echo "<input type=password name=haslo><br>";
  25. echo "<input type=submit value='Zaloguj!'>";
  26. echo "</form>";
  27. echo "Jeśli nie jesteś zarejestrowany, <a href='rejestruj.php'>tu znajdziesz formularz</a>";
  28. }
  29. ?>
  30. </div>
  31. <?php
  32. if($_GET["wyloguj"]=="tak")
  33. {
  34. $_SESSION["zalogowany"]=0;
  35. echo "Zostałeś wylogowany z serwisu";
  36. }
  37.  
  38. if($_SESSION["zalogowany"]!=1){
  39. if(!empty($_POST["login"]) && !empty($_POST["haslo"])){
  40. if(mysql_num_rows(mysql_query("select * from users where user_login = '".htmlspecialchars($_POST["login"])."' AND user_haslo = '".htmlspecialchars($_POST["haslo"])."'"))){
  41. echo "Zalogowano poprawnie. <a href='mainbaza.php'>Przejdź na stronę główną</a>";
  42. $_SESSION["zalogowany"]=1;
  43. }
  44. else echo ShowLogin("Podano złe dane!!!");
  45. }
  46. else ShowLogin();
  47. }
  48. else{
  49. ?>
  50. Gratulacje! Zalogowałeś się pomyślnie! Możesz przejśc teraz do innych podstron, np. do <a href="mainbaza.php">tej</a>
  51. <br><a href='index.php?wyloguj=tak'>wyloguj się</a>
  52. <?php
  53. }
  54. ?>
  55. </body>
  56. </html>
  57. <?php mysql_close(); ?>
askone
A więc tak:
  • w linii 45 masz błąd - W jakim celu robisz echo ShowLogin, skoro już w funkcji masz echo?
  • usuń znacznik zamykający </div> z linii 31
  • w linii 48 przed zamknięciem warunku if dodaj echo "</div>";
  • w linii 51 dodaj przed tekstem </div>
  • Aby zamienić tę funkcję z PHP na statyczny kod HTML trzebaby przerobić logikę jaka została w Twoim kodzie zaimplementowana


Wyjaśnienie:
Modyfikacje w linii 48 służą zamknięciu div login_form w przypadku logowania, modyfikacja w linii 51 służy zamknięciu tego diva w przypadku gdy już user zostanie zalogowany. Mam nadzieję, że wszystko napisałem dobrze i że będzie działać

ps. Dlaczego po zalogowaniu nie robisz automatycznego przekierowania usera na stronę dla zalogowanych tylko wyświetlasz link?

Pozdrawiam
nighttrain
ok, działa, ale powiedz mi jeszcze jak wyrównać przycisk do inputów? bo w tej chwili jest bardziej wysunięty na lewo do ramki...
askone
Jedynym "winowajcą" może być ustawienie prawego marginesu dla przycisku na wartość 1em przy jednoczesnym ustawieniu tego samego dla inputów na 0. Wyzeruj wartość tego atrybutu dla przycisku powinno być ok.

Pozdrawiam
nighttrain
ok, troszkę musiałem nagimnastykować się, ale zrobiłem smile.gif A powiedz mi jakbym chciał obok tego kontenera np wstawić linię pionową i obok niej dalej po lewej zdjecie tej samej długości w pionie?
askone
Div login_form musiałby mieć ustawiony styl:
  1. float: left

Wtedy dajesz za tym divem drugi a w nim obrazek, jako linię pionową wykorzystaj jego lewą krawędź
nighttrain
Teraz wyszło tak, że obrazek mam w rogu po lewej, a form_login przy lewej krawędzi na środku, pomógłbyś? Co mam wpisać w css do obrazek_form?
askone
Popatrz na ten prosty przykład i postaraj się ustawić podobnie u siebie:
  1. .centered {
  2. margin: 100px auto;
  3. width: 410px;
  4. }
  5. #login_form {
  6. border: 1px solid red;
  7. width: 200px;
  8. height: 300px;
  9. float: left;
  10. }
  11. #drugi {
  12. border: 1px solid yellow;
  13. margin: auto, 0;
  14. width: 200px;
  15. height: 300px;
  16. float: left;
  17. }

  1. <div class="centered">
  2. <div id="login_form">
  3. test
  4. </div>
  5. <div id="drugi">
  6. drugi
  7. </div>
  8. </div>
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.