Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1732 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Image modifiable via CSS

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Image modifiable via CSS

n°1390985
dwogsi
Défaillance cérébrale...
Posté le 19-06-2006 à 21:14:56  profilanswer
 

Salut tout le monde!
 
Alors voilà (comprenne qui pourra) je viens vers vous parce que franchement je bloque là...
 
Mise en situation :
J'ai une page (logique!) dans laquelle je fais apparaître une image sur laquelle se trouve un lien. Mais en fait je voudrais que l'image qui est affichée soit modifiable via ma CSS et donc sans intervennir dans le code html. Ce que je vois donc comme solution assez simple c'est de passer le lien en block, donc avec le code suivant par exemple :
 
html :

Code :
  1. <a id="pouet" href="laPage.php"></a>


CSS :

Code :
  1. #pouet {
  2.      display: block;
  3.      background-image: url('images/image.jpg');
  4. }


 
Mais de fait mon lien n'est plus en inline et donc s'intégre très mal dans le paragraphe dans lequel il doit être affiché puisqu'il génére des retours à la ligne avant et après lui. Jusque là c'est toujours logique me direz vous et je suis bien d'accord.
 
La question que je me pose c'est comment résoudre justement ce problème? Comment faire pour que mon lien s'intégre bien dans le paragraphe?
 
J'ai bien essayé de le mettre en float:left; mais ça ne change rien au problème. J'ai également lu quelques truc à propos des run-in, compact et inline-block que j'ai tous essayé et qui ne m'apportent pas de solution....
 
Donc j'en suis rendu là. Mais peut être me suis-je orienté vers la mauvaise solution? Après tout je n'ai pas la prétention d'être le meilleur en html/css.
 
En vous remerciant!

mood
Publicité
Posté le 19-06-2006 à 21:14:56  profilanswer
 

n°1390986
zapan666
Tout est relatif
Posté le 19-06-2006 à 21:19:14  profilanswer
 

bah tu enlève le display: block.
 
en fait j'ai pas compris le problème avec l'image, y'a pas moyen d'avoir un p'tit dessin qui va bien ?


---------------
my flick r - Just Tab it !
n°1390988
dwogsi
Défaillance cérébrale...
Posté le 19-06-2006 à 21:22:14  profilanswer
 

En fait je veux que mon lien avec le code suivant

Code :
  1. <a id="pouet" href="laPage.php"></a>


donc avec rien entres les balises ouvrantes et fermentes du lien affiche quand même une image.
 
Et c'est possible avec un block, puisqu'on peut lui donner des dimensions et une image de fond.


Message édité par dwogsi le 19-06-2006 à 21:22:29
n°1390989
xtof_83
Freeride Spirit
Posté le 19-06-2006 à 21:29:45  profilanswer
 

regarde 10 ligne + bas, le poste que Gatsu à fait aujourdui et que personne à répondu... ça va tinteresser....

n°1390990
zapan666
Tout est relatif
Posté le 19-06-2006 à 21:29:51  profilanswer
 

ouaisd mais si tu ne mets pas de texte, comment le navigateur va savoir la taille que prend ton truc ?  
 
Tu peux faire une bidouille...tu mets un PNG transparent dans ton lien mais bon, il ne porte aucune information, normalement il ne devrait pas être là (mais tu arrivera au résultat que tu veux)


---------------
my flick r - Just Tab it !
n°1390991
gatsu35
Blablaté par Harko
Posté le 19-06-2006 à 21:32:15  profilanswer
 

La seule méthode au point que je puisse connaitre actuellement c'est d'utiliser le display:inline-block (future valeur du display dans les CSS3), ca te permet de passer un élément en ligne mais avec le comportement d'un block. A l'heure actuelle les navigateurs qui gère ce display sont :  
Safari, IE5Mac, IEWin5.5+, Opera 8+
 
mais malheureusement et je ne sais pas pourquoi, Firefox ne comprend pas cela. j'ai réussi à isoler le problème en imbricant 2 éléments (<a><span></span></a> ) et en utilisant le display:inline-table sur le A et le display:table-cell sur le span
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title></title>
  5. <style type="text/javascript">
  6.  a.link {
  7.   display:inline-table;
  8.   display:inline-block;
  9.   width:128px;
  10.   height:20px;
  11.   vertical-align:middle
  12.  }
  13.  a.link span {
  14.   display:table-cell;
  15.   display:inline-block;
  16.   background:url("http://gatsu.ftp.free.fr/Modele/Menu/images/concerts.gif" ) no-repeat left top;
  17.   width:128px;
  18.   height:20px;
  19.   }
  20. </style>
  21. </head>
  22. <body>
  23. <p>
  24. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed tristique pulvinar ligula.
  25. <a href="#" class="link"><span></span></a> Nunc orci. Nulla eu urna. Suspendisse ultricies.
  26. <a href="#" class="link"><span></span></a> Aenean sem mauris, tempor ut, condimentum a,
  27. consectetuer eget, magna. Pellentesque sed massa non odio porttitor accumsan. Pellentesque
  28. sed mauris a lectus lobortis pharetra. Vivamus tempus tempor elit. Etiam aliquam, quam.
  29. </p>
  30. </body>
  31. </html>


 
tu noteras que je n'utilise pas de Hack CSS pour mes display et pour une bonne raison.
Dans l'ordre des choses si je me mets à la place du navigateur ça donne ça :  
IE win/mac : je ne connais pas inline-table donc je le prend pas, mais je connais inline-block, donc je le prend
Safari/opera : je connais inline-table donc je le prend, mais je connais inline-block et comme il est arrivé en dernier je le prend
firefox : Je connais inline-table, tiens je ne connais pas inline-block, ben je garde inline-table.
 
idem pour le table-cell.
 
Voila ca ira comme explication :o.
A noter que j'ai justement mis au point un bouton qui se size en fonction de son contenu et qui se comporte inline en utilisant cette méthode :  
http://gatsu.ftp.free.fr/html/inli [...] utton.html

Message cité 1 fois
Message édité par gatsu35 le 19-06-2006 à 21:37:18
n°1391004
dwogsi
Défaillance cérébrale...
Posté le 19-06-2006 à 21:52:01  profilanswer
 

zapan666 a écrit :

ouaisd mais si tu ne mets pas de texte, comment le navigateur va savoir la taille que prend ton truc ?  
 
Tu peux faire une bidouille...tu mets un PNG transparent dans ton lien mais bon, il ne porte aucune information, normalement il ne devrait pas être là (mais tu arrivera au résultat que tu veux)


 
Même s'il ne porte aucune information on peut lui attribuer des dimensions à conditions qu'il soit en block.
 

gatsu35 a écrit :

La seule méthode au point que je puisse connaitre actuellement c'est d'utiliser le display:inline-block (future valeur du display dans les CSS3), ca te permet de passer un élément en ligne mais avec le comportement d'un block. A l'heure actuelle les navigateurs qui gère c...


 
Merveileux, merci ça marche très bien mais je suis quand même étonné qu'il n'existe pas d'autres solutions.
 

n°1391008
gatsu35
Blablaté par Harko
Posté le 19-06-2006 à 21:56:18  profilanswer
 

dwogsi a écrit :

Même s'il ne porte aucune information on peut lui attribuer des dimensions à conditions qu'il soit en block.
 
 
 
Merveileux, merci ça marche très bien mais je suis quand même étonné qu'il n'existe pas d'autres solutions.


ben tu dois être assez bien placé pour savoir qu'un élément inline ca ne se dimensionne pas, sauf les élément inline de type remplacé (img, input..)
 
C'est pour ça que il y a la propriété display:inline-block qui permet de faire justement l'effet attendu, mais FF ne gère pas, ya le inline-table qui pourrai faire l'affaire, mais tu es obligé d'avoir un élément en display:table-cell à l'intérieure pour le faire fonctionner :(

n°1391010
dwogsi
Défaillance cérébrale...
Posté le 19-06-2006 à 22:00:12  profilanswer
 

Et oui je sais bien qu'un élément de type inline ne se dimensionne pas et qu'il occupe un espace minimum qui est fonction de son contenu.
 
Mais si on peut changer le display de certains éléments pour du inline sans encombre je me disais qu'on pouvais égalemet faire l'inverse sans encombre et donc simplement.
 
Et quelle ne fut pas ma joie en retrouvant le inline-block dans les bas fonds de ma mémoire! Mais ma tristesse fut encore plus grande quand je découvrais que FF, mon navigateurs favoris, n'en voulais pas et que IE, le pire parmis les pires selon moi, en voulais bien!


Message édité par dwogsi le 19-06-2006 à 22:03:34
n°1391011
gatsu35
Blablaté par Harko
Posté le 19-06-2006 à 22:02:53  profilanswer
 

Ben c'est pour cela que le inline-table et table-cell font l'affaire pour le moment [:spamafote]

mood
Publicité
Posté le 19-06-2006 à 22:02:53  profilanswer
 

n°1391012
dwogsi
Défaillance cérébrale...
Posté le 19-06-2006 à 22:03:52  profilanswer
 

Je n'avais pas pensé aux inline-table et table-cell qui sont en effet une solution, même si ça me parait un peu moins propre ça va m'aider. Parce que je ne vois franchement pas comment changer via CSS des images qui sont dans des paragraphes si ce n'est en utilisant cette méthode.
 
Encore merci  :)


Message édité par dwogsi le 19-06-2006 à 22:04:05
n°1391016
dwogsi
Défaillance cérébrale...
Posté le 19-06-2006 à 22:06:42  profilanswer
 

Et tant que j'y suis, puisque je vais certainement devoir affronter le problème, pour une image sans lien qu'est ce que tu préconise? Imbrication de span?

n°1391017
gatsu35
Blablaté par Harko
Posté le 19-06-2006 à 22:06:56  profilanswer
 

heu as tu daigné faire un C/C du code HTML que j'ai posté, qui répond justement à tes besoin [:petrus75], et normalement c'est crossbrowser

n°1391020
dwogsi
Défaillance cérébrale...
Posté le 19-06-2006 à 22:09:22  profilanswer
 

Reprennons :
Ton code implique deux éléments, à savoir un a et un span imbriqué dans le a. Donc il lui faut un lien. J'ai fait un copier/coller de ton code qui fonctionne très bien dans mon cas avec une image+lien.
 
Mais je me disais... Sans lien? Donc sans a? dans quoi imbriquer le span?


Message édité par dwogsi le 19-06-2006 à 22:10:02

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Image modifiable via CSS

 

Sujets relatifs
Boutons en ligne qui se comportent comme des blocs (CSS)image de fons ne s'affiche pas
Survol d'une image...CSS et DIV
[Difficile HTML] Superposition video & Image - layersImage plus grande quand on passe dessus.
Image qui ne s'affiche pas...lien image
format image html[Résolu] [CSS] Comment justifié ?
Plus de sujets relatifs à : Image modifiable via CSS


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR