28220 sujets

CSS et mise en forme, CSS3

J'aimerais savoir si il existe pas un autre moyen d'effectuer la même chose mais avec moins de div.

j'ai environ 9 boxes sur mon site et elle sont toute a quelques exceptions prettent avec la même mise en forme.

cependant j'ai l'impression que je m'y prends mal pour les faire en CSS et a l'aide de <div>

voici mon code actuelle


<div id="panier" >
  <div><a href="<?php echo tep_href_link(FILENAME_SHOPPING_CART); ?>"><img src="images/infobox/cadre_haut_panier1.gif"></a></div>
  <div class="paniertext" ><p>Vous avez <span class="strongred"><?php echo $cart->count_contents(); ?></span> article(s)</p><p>dans votre panier</p></div>
  <div class="boxbottom"><p class="paniertotal">Total : <span class="strongred"><?php echo $currencies->format($cart->show_total()); ?></span></p></div>
</div>

et voici le code CSS


* {
margin:0px;
padding:0px;
}

/* BALISE GENERAL */

body {
     margin: 0; /* pour éviter les marges */
	 padding: 0;
     text-align: center; /* pour corriger le bug de centrage IE */
     }

table
{
  padding: 0px;
  border-collapse: collapse;
  border-spacing: 0px;
} 

td {
  margin: 0px;
  padding: 0px;
}

/* CONTENEUR GENERAL */
 
div#conteneur {
position:absolute;
left: 50%; 
width: 950px;
margin-left: -475px; /* moitié de la largeur */
background-color:#000000;
text-align: center; 
}

#corps{
background-color:#FFFFFF;
width:940px;
margin-left: auto;
margin-right: auto;
text-align:left;
}

/* Boite PANIER */

#shoppingcartbox{
background:url(images/infobox/cadre_centrec.gif) repeat-y;
font-weight:bold;
font-family: Verdana, Arial, sans-serif;
text-align:center;
font-size: 11px;
}

.paniertext{
font-size: 11px;
margin-top:10px;
margin-bottom:10px;
}

.paniertotal{
font-size: 12px;
text-align:right;
margin-right:5px;
}

/* Propriété general des boites */

.boxbottom{
background:url(images/infobox/cadre_bass.gif) no-repeat;
height:19px;
text-align:right;
margin-right:5px;
}

/* Formatage particulier du texte */

.smallText {
font-family: Verdana, Arial, sans-serif;
font-size: 10px;
}

.strongred {
font-weight:bold;
color:#FF0000;
}

/* LIEN HYPERTEXTE */

a {
text-decoration: none;
color: #000066;
}

a:hover {
text-decoration: underline;
color: red;
background-color: none;
}

</style>


en gros mais boite sont organisé comme ceci

Largeur de 170px (toutes les boxes)
hauteur variable (le contenu)
header de la boxe (image de fond ou image clic avec lien)
Centre ou contenu de la boxe (image de fond fixe repeter sur l'axe des y)
bottom de la boxe (image de fond fixe)

voici pour moi comment j'organise cela....

<div id="panier" > // Conteneur du panier

  <div><a href="<?php echo tep_href_link(FILENAME_SHOPPING_CART); ?>"><img src="images/infobox/cadre_haut_panier1.gif"></a></div> // Image a clic de hauteur fixe et de largeur fixe

  <div class="paniertext" ><p>Vous avez <span class="strongred"><?php echo $cart->count_contents(); ?></span> article(s)</p><p>dans votre panier</p></div> // Contenu de la boxe

  <div class="boxbottom"><p class="paniertotal">Total : <span class="strongred"><?php echo $currencies->format($cart->show_total()); ?></span></p></div> // Bottom de la boxe avec image de fond de taille fixe en hauteur et largeur. Et un text 

</div> // Fermeture du conteneur panier


j'ai 3 images pour cela utilisé pour chaque boxe

l'image du header
l'image repeter du centre
l'image du pied de boxe (bottom)

Mon exemple fonctionne ... cependant j'ai l'impression que je rajoutte des choses inutiles.
j'ai vu le tuto sur la boite a hauteur variable sur le site...mais mon probleme viens du fait que sur cette exemple, c'est l'image du bas qui est grande de facon a recouvrir le contenu de la boxe.

moi je ne peux pas me permettre cela pour cause d'allourdir mes pages. Car il s'agit d'image graphique.

Encore merci pour tout.

++
fab
fab27 a écrit :
Voici un exemple en ligne de ce bout de code...
http://www.premiumwanadoo.com/jlutin/catalog/test.htm
Encore merci
En gros j'aimerais savoir le template le plus adapté pour realiser cela.
Merci

voici à peut près le code XHTML qu'l vaut mieux faire :
<div id="panier">
...<h1><a href="fichier.php"><img src="images/infobox/cadre_haut_panier1.gif" border="0"></a></h1>
...Vous avez <strong>5</strong> article(s) dans votre panier
...<p>Total : <strong>127 &euro;</strong></p>
</div>

et le CSS doit être du type ( incomplète ) :
#panier { mise en forme du bloc #panier et le texte }

#panier h1 { idem [lol] }

#panier strong { font-weight: normal; color: #FF0000; }

#panier p { font-size: ...; }

Modifié par anthony (13 Mar 2005 - 12:34)

<div id="panier">
...<h1><a href="fichier.php"><img src="images/infobox/cadre_haut_panier1.gif" border="0"></a></h1>
...Vous avez <strong>5</strong> article(s) dans votre panier
...<p>Total : <strong>127 &euro;</strong></p>
</div>


Ok super effectivement c'est plus joli Smiley biggrin

mais cependant comment je fais pour positioner mon image du pied de boxe.

Est ce que je doit l'inclure dans la balise <p>

#panier p{
background:url(monimage) no-repeat;
height:20px;

+ la mise en forme du texte

}

Je peux faire cela ?

Encore merci

++
fab


pour la car pour le fond central, je le repete dans l'id = panier
fab27 a écrit :

<div id="panier">
...<h1><a href="fichier.php"><img src="images/infobox/cadre_haut_panier1.gif" border="0"></a></h1>
...Vous avez <strong>5</strong> article(s) dans votre panier
...<p>Total : <strong>127 &euro;</strong></p>
</div>


Ok super effectivement c'est plus joli Smiley biggrin

mais cependant comment je fais pour positioner mon image du pied de boxe.

Est ce que je doit l'inclure dans la balise <p>

#panier p{
background:url(monimage) no-repeat;
height:20px;

+ la mise en forme du texte

}

Je peux faire cela ?

Encore merci

++
fab


pour la car pour le fond central, je le repete dans l'id = panier


tout à fait Smiley lol
c'est prévu pour ça Smiley cligne
j'avais mis <p> pour gérer l'alignement à droite, ainsi que le fond du cadre du bas.

Gère bien les "padding" et "margin".
Ok super...

juste une derniere petite chose

le cout total est en gras et en rouge
comme le nombre d'article dans le panier....

je vois que tu as supprmier ma class="strongred"
comment je peux faire pour faire en sorte que cela soit en rouge ?

toujours le même principe ?

#panier strong{
Mon contenu ?
}

Encore merci
Bon ok j'ai reussi a faire quelques choses....

cependant j'ai quelques probleme....


<div id="panier">
 <h1><a href="<?php echo tep_href_link(FILENAME_SHOPPING_CART); ?>"><img src="images/infobox/cadre_haut_panier1.gif" border="0"></a></h1>
Vous avez <strong>5</strong> article(s) dans votre panier
<p>Total : <strong>150 €</strong></p>
</div>


voici le css


<style>

* {
margin:0px;
padding:0px;
}

/* BALISE GENERAL */

body {
     margin: 0; /* pour éviter les marges */
     padding: 0;
     text-align: center; /* pour corriger le bug de centrage IE */
	 }

table
{
  padding: 0px;
  border-collapse: collapse;
  border-spacing: 0px;
} 

td {
  margin: 0px;
  padding: 0px;
}

/* Boite PANIER */

#panier{
text-align:center;
width:170px;
font-weight:bold;
font-size:12px;
background:url(images/infobox/cadre_centrec.gif) repeat-y;
font-family: Arial, sans-serif;
}

#panier p {
margin-top:8px;
text-align:right;
margin-right:5px;
}

#panier strong {
color:#FF0000;
}

#panier h1{
margin-bottom:8px;
}

/* LIEN HYPERTEXTE */

a {
text-decoration: none;
color: #000066;
}

a:hover {
text-decoration: underline;
color: red;
background-color: none;
}

</style>


cependant cette exemple fonctionne tres bien pour cette boite car son contenu est leger.

mais je n'arrive pas a savoir comment je peux faire pour avoir un controle sur le texte suivant => Vous avez 5 article(s) dans votre panier....

Chacune de mes boites doivent disposer d'une petite marge apres l'image d'entete et avant l'image de pied de boite.

en gros le texte de la boite doit etre legerement en retrait par rapport au bord des boites...

comme ceci

[IMAGE D'ENTETE BOITE] => image a clic
------------------------
[ Retrait ]
[ Contenu Boxe ]
[ Retrait ]
------------------------
[IMAGE DE PIED DE BOXE] => il peux y a voir du texte ici (hauteur fixe)

Ensuite pour l'exemple du panier...tout marche tres bien...cependant comment puis je faire en sorte que la ligne suivante

Vous avez 5 article(s) dans votre panier soit sur deux lignes centrer

avec sur la premiere => vous avez 5 article(s)
et sur la deuxieme => dans votre panier

Encore merci

++
fab
Modifié par fab27 (13 Mar 2005 - 17:41)
On y est presque... Smiley cligne

Et maintenant comment puis je faire pour faire un retour a la ligne pour la phrase

Vous avez X article(s) dans votre panier...

pour avoir

vous avez X article(s)
dans votre panier

Plus que ca ...et ce sera impec...

Encore merci

++
fab
fab27 a écrit :
On y est presque... Smiley cligne

Et maintenant comment puis je faire pour faire un retour a la ligne pour la phrase

Vous avez X article(s) dans votre panier...

pour avoir

vous avez X article(s)
dans votre panier

Plus que ca ...et ce sera impec...

Encore merci

++
fab

ça c'est un peu plus complexe car il est déconseillé de couper les phrases Smiley lol
sinon tu peux essayer de le mettre dans un <P> de largeur inférieure au bloc #panier afin qu'il passe tout seul à la ligne.