Forum Programmation.web passage d'argument en CSS

Posté par .
Tags : aucun
0
29
nov.
2005
Bonjour, est-il possible de passer des arguments en CSS.

Je m'explique.
Je voudrais pouvoir écrire un truc du genre
Jeannot est un lapin qui fait
qui afficherait:
Jeannot est un lapin qui fait hop.

Ça me permettrai de factoriser grandement mon bazar.
  • # Non

    Posté par . Évalué à 2.

    CSS est un langage de description, pas de programmation. Ce que tu cherches à faire se fait via javascript.
  • # c'est possible

    Posté par (page perso) . Évalué à 5.

    avec une CSS :

    span.jeannot:after { content: " hop "; }
    span.jeannot:before { content: " jeannot "; }

    une page HTML qui contient :

    {p}{span class=jeannot}est un lapin qui fait{/span}.{/p}


    donnera ce que tu cherches ( http://www.w3.org/TR/CSS21/selector.html#before-and-after ).

    plus de precision sur ( http://www.w3.org/TR/CSS21/selector.html#q1 ).

    apres tu peux aussi utiliser ( http://www.w3.org/TR/CSS21/syndata.html#counter ) des iterateurs pour des operations de numerotation ou autre.

    à coté de cela, tu as aussi des selecteurs pour choisir un element sur 2, 2 sur 3, 3 sur 7, et d'autres choses rigolotes. ces selecteurs sont les selecteurs CSS 3 qui sont avec un statut de "presque recommandation" depuis 2001 ( http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#select(...) ).

    normalement, en te debrouilllant bien, tu arriveras à faire plein de chose.

    par contre, au niveau des implementation, ce n'est pas encore ca meme pour les navigateurs dit standards quoi qu'en disent ceux qui n'ont jamais lu les specs CSS.
  • # rien compris

    Posté par . Évalué à 3.

    Je m'explique.

    ha ?... ben recommence, on ne comprends rien a ton truc là.

    déjà tu parle d'argument, je ne vois pas où ils sont dans ton exemple...

    sinon (mais ca ne reponds pas a ta question), il suffit de faire
    dans le style span:after{ content:'hop';}
    et dans la page :
    (span)Jeannot est un lapin qui fait(/span)

    non ?

    sinon, (mais ca marche pas encore sous IE) à la limite, tu peux faire des selecteurs qui prennent en compte des valeur de propriete :
    INPUT[type='text'] { ...}
    partant sur ce principe tu pourrait :DIV[param='arg'] { } en considerant que param='arg' est comme un passage d'argument....
    mais bon, apres il faut trouver un interret... perso.. j'sais pas.


    aller, comme jeannot, moi aussi je fait hop ! je me sauve-->[]
    • [^] # Re: rien compris

      Posté par . Évalué à 1.

      J'essaye de faire une page « fluide ». Or je ne veux pas que la largeur du texte puisse grandir trop. J'utilise donc un CSS de base du type

      width: 100%;
      max-width: 50em;

      Si on oublie IE, ça marche très bien.

      Sauf que maintenant, je veux ajouter des images. J'aimerai donc
      pouvoir ecrire un truc du genre:

      <img src="toto.png" width="100%" max-width="NUM" /> où NUM
      est la largeur réelle de l'image. On peut faire ça à coup de
      <div id="toto>
      en ajoutant dans le CSS:

      #toto{
      width:100%;
      max-width: NUM;
      }

      Mais si je dois créer un div par image, ça devient n'importe quoi.

      J'aimerai pouvoir faire un truc du genre:

      <div id="toto" max-width=NUM>.

      voilà, c'est plus clair?
      • [^] # Re: rien compris

        Posté par . Évalué à 2.

        et qu'est-ce qui t'empeche de le faire de cette maniere ?

        si max-width est bien une proprieté valide, alors tu peux tries bien l'ajouter dans le en plus du id ou de la class.

        Enfin je me trompe peut etre aussi :]
        • [^] # Re: rien compris

          Posté par . Évalué à 1.

          J'ai eu l'impression d'avoir essayer.
          Mais un des effets de bord de la norme est de dire:« si il y a une
          erreur de syntaxe, il n'y en a pas, on l'a pas vu » , il devient
          difficile de tester si un truc est dans la norme ou pas.

          Je vais recommencer.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.