|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Nov 2007
Città: Alcamo
Messaggi: 103
|
[PHP - MYSQL - CSS] Impostazione layout
Salve a tutti...
Sto creando un progetto a scopo didattico su interazione php sql con elementi di "abbellimento" css. Secondo la mia idea interrogo tramite php e mysql un database dal quale estraggo dei record. per ogni record a questo punto sempre tramite script php genero dei contenuti html/css seguendo un layout particolare... sono riuscito a ottenere il risultato che volevo ad eccezione di un unica parte: l'identificativo (segnalato in rosso)... non ne vuole sapere di andare li dove dico io... sono sicuro che il problema è in CSS ma non ne vengo a capo... query sql + script per creazione del contenuto Codice:
<?php
$conn=mysql_connect("localhost", "username", "pass");
$numrecord=5;
$count=0;
if (!$conn)
{
die("Connessione a Mysql non riuscita " . mysql_error());
}
$db=mysql_select_db("my_database", $conn);
if (!$db)
{
die("Connessione al Database non riuscita " . mysql_error());
}
$Risultato=mysql_query("select * from TABELLA", $conn);
if (!$Risultato)
{
die("La tabella selezionata non esiste " . mysql_error());
}
while ($riga=mysql_fetch_array($Risultato))
{
$count++;
echo "<div class='elemento'>";
echo "<div class='immagine'>" . "<a href='" . $riga[4] ."' target='_blank'>" . "<img class='aspect' src=' " . $riga[4] . "' /> </a> </div>";
echo "<div class='paragrafo'>";
echo $riga[1] . "</br>"; //TITOLO
echo " <h5 class='descrizione'>" .$riga[2]. "</h5></br>"; //DESCRIZIONE
echo "</div>";
echo " <h5 class='identificativo'>" . $riga[3] . "</h5>"; //IDENTIFICATIVO
echo "</div>";
echo "<br/>";
}
?>
Codice:
div.elemento {
width:inherit;
height:160px;
background-color:#ffB1d5;
/* Bordi arrotondati */
border-radius: 0 20px 20px 0;
-moz-border-radius: 0 20px 20px 0; /* per firefox */
-webkit-border-radius: 0 20px 20px 0; /* per safari, chrome */
}
div.immagine{
display: inline-block;
float:left;
width: 170px;
height: 170px;
margin: -12px 10px 3px -5px;
border: 3px solid #FFF;
background-color:#CCC;
position: relative;
}
img.aspect {
max-width:170px;
max-height:170px;
width:auto;
height:auto;
border: 0;
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
margin: auto;
float:left;
}
div.paragrafo{
float:left;
width:550px;
height:90px;
}
h5.descrizione{
font-size:11px;
}
h5.identificativo{
font-size:14px;
text-align:right;
}
Qualcuno buono d'animo mi spiega come ottenere questo risultato..? Ringrazio in anticipo chiunque risponderà o si prenderà la briga di leggere tutto sin qui... |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
|
Basta mettere a paragrafo un:
position:relative; Poi a identificativo usi: position: absolute; bottom: 0; right: 0; Così facendo posizioni in modo assoluto, rispetto a paragrafo, identificatore. Questo succede perché position: absolute prende come origine (coordinate 0,0 (sinistra,top)) il primo elemento padre con un position: xxxx settato (nel nostro caso quello messo a paragrafo). Ultima modifica di airon : 15-11-2013 alle 15:12. |
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Nov 2007
Città: Alcamo
Messaggi: 103
|
Quote:
per ogni record va a mettere in una zona della pagina anche fuori dal container principale, l'elemento identificativo, e in più sovrapponendoli tra loro.... |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
|
Vuol dire che non hai messo il position relative al padre giusto e quindi lui prende il body (di default).
Codice:
div.paragrafo{
float:left;
width:550px;
height:90px;
position:realtive;
}
h5.identificativo{
position: absolute;
bottom: 0;
right: 0;
}
Un altro consiglio, non usare h5 per identificativo, usa un div Ultima modifica di airon : 15-11-2013 alle 15:30. |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Nov 2007
Città: Alcamo
Messaggi: 103
|
Niente non va.... un po' è migliorato a seguito di alcune modifiche...
una prova a runtime (sorgente pagina) Codice:
<div id="pagina"> <div class='elemento'> <div class='immagine'><a href='images/numero_1.png' target='_blank'><img class='aspect' src=' images/numero_1.png' /> </a> </div> <div class='paragrafo'>Numero1</br> <h5 class='descrizione'>Descrizione</h5></br> <h5 class='identificativo'>1.66</h5></div> </div> <div class='elemento'> <div class='immagine'><a href='images/numero_2.png' target='_blank'><img class='aspect' src=' images/numero_2.png' /> </a> </div> <div class='paragrafo'>Numero 2</br> <h5 class='descrizione'>Descrizione numero 2</h5></br> <h5 class='identificativo'>5.44</h5></div> </div> </div> </div> Codice:
body {
background: #FFD1E4 url(../images/background.png) repeat;
font-family: Verdana, sans-serif;
color: #555;
font-size:18px;
text-align:justify;
}
CSS elemento -> modificato Codice:
div.elemento {
width:inherit;
height:160px;
background-color:#ffB1d5;
/* Bordi arrotondati */
border-radius: 0 20px 20px 0;
-moz-border-radius: 0 20px 20px 0; /* per firefox */
-webkit-border-radius: 0 20px 20px 0; /* per safari, chrome */
}
div.immagine{
display: inline-block;
float:left;
width: 170px;
height: 170px;
margin: -12px 10px 3px -5px;
border: 3px solid #FFF;
background-color:#CCC;
position: relative;
}
img.aspect {
max-width:170px;
max-height:170px;
width:auto;
height:auto;
border: 0;
position: absolute;
top: 0; right: 0; bottom: 0; left: 0;
margin: auto;
float:left;
}
div.paragrafo{
float:left;
width:550px;
height:90px;
position:relative;
}
h5.descrizione{
font-size:11px;
}
h5.identificativo{
font-size:14px;
text-align:right;
position: absolute;
bottom: 0;
right: 0;
}
EDIT: si prima non chiudevo nulla e non erano in relazione padre figlio i contenitori... ho modificato lo script Codice:
echo "<div class='elemento'>"; //apro div elemento echo "<div class='immagine'>" . "<a href='" . $riga[4] ."' target='_blank'>" . "<img class='aspect' src=' " . $riga[4] . "' /> </a> </div>"; // apro e chiudo div immagine echo "<div class='paragrafo'>"; //apro div paragrafo echo $riga[1] . "</br>"; //Titolo echo " <h5 class='descrizione'>" .$riga[2]. "</h5></br>"; //Descrizione echo " <h5 class='identificativo'>" . $riga[3] . "</h5>"; //Identificativo echo "</div>"; // chiudo paragrafo echo "</div>"; //chiudo elemento echo "<br/>"; Ultima modifica di cenarius_88 : 15-11-2013 alle 15:48. |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
|
Guarda l'altezza di paragrafo...non è quella che pensi tu...è 90px. Ecco perchè identificativo è così in alto e non al bordo di elemento. O cambi quello oppure metti il position: relative a elemento.
|
|
|
|
|
|
#7 | |
|
Member
Iscritto dal: Nov 2007
Città: Alcamo
Messaggi: 103
|
Quote:
A questo punto dovrei scorporare identificativo da paragrafo e settare relative elemento... ora provo vediamo che succede xD EDIT: ok facendo in questo modo ho risolto metà quesito... ora sta di lato, in basso si ma ancora non attaccato al bordo... devo utilizzare un bottom con valore negativo? EDIT 2: si mettendo valori negativi si avvicina al bordo u.u è una buona pratica? Ultima modifica di cenarius_88 : 15-11-2013 alle 15:59. |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
|
Non è vicino al bordo perché gli elementi h (h1, h2, h3 ecc.) e quindi h5 hanno di default un margine.
O togli il margine all'elemento h5, o usi un div come ti avevo consigliato Usare margini o posizionamenti negativi non è mai buona cosa Usa l'inspector di chrome o firebug su firefox. Vedi tutte queste cose Ultima modifica di airon : 15-11-2013 alle 16:10. |
|
|
|
|
|
#9 | |
|
Member
Iscritto dal: Nov 2007
Città: Alcamo
Messaggi: 103
|
Quote:
Ho usato la distinzione in div come da te suggerito e i margini negativi non sono serviti (anzi ho dovuto aggiungere margine positivo per via dell'arrotondamento :P) Molte grazie airon |
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Feb 2004
Città: milano
Messaggi: 2148
|
Di niente
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:32.




















