64 votes

Haml : Comment définir un style en ligne pour un élément dans HAML ?

Voici mon code :

<div class='some' style='position: absolute; left: 300; top: 300;'>..</div>

Il analyse seulement style='position: absolute' et n'analyse pas les autres styles. Comment puis-je réaliser cela ?

3 votes

La réponse donnée est correcte, mais elle passe à côté d'un point bien plus important : vous ne devriez jamais utiliser de styles en ligne. Définissez une classe CSS et faites-le correctement.

0 votes

C'était une solution temporaire :) essayez quelque chose et effacez toutes les modifications. C'est pourquoi je cherchais ceci :)

2 votes

Qu'en est-il lorsque vous définissez dynamiquement une image de fond ? C'est dans ce cas que j'utilise des styles en ligne.

129voto

Dan Cheail Points 6410

Il aurait été pratique que vous affichiez le HAML que vous utilisez, mais c'est ainsi que cela se passe :

%div.some{ :style => "position: absolute; left: 300px; top: 300px;" }

10 votes

Il convient de noter qu'il ne peut y avoir d'espace entre la fin du nom de l'élément ou de la classe et l'accolade ouvrante.

14voto

Pas besoin d'utiliser %div :

.some{ style: 'position: absolute; left: 300px; top: 300px;' }

3voto

Vitaliy Yanchuk Points 639

Une autre approche, en plus de celle du hachage de Dan Cheail, est telle :

%div.some(style='position: absolute; left: 300; top: 300;')

1voto

Manoj Thapliyal Points 437

Si vous cherchez un css en ligne pour une image :

<%= image_tag( 'image_name.png', style: 'height: 25px; width: 200px; position: absolute' ) %>

-3voto

Ciro Santilli Points 3341

Demandé un cas spécial de hachage à : https://github.com/haml/haml/issues/787 pour nous permettre d'écrire :

%div{ style: { display: "none", width: "50px" } }

comme c'est possible pour class: ["class1", "class2"] .

2 votes

Downvoting parce que ce n'est pas une réponse à la question. C'est juste une déclaration que vous avez fait une demande de fonctionnalité pour cette syntaxe.

0 votes

@Adam merci pour le feedback. Mon intention était de dire : "ce problème confirme que la syntaxe parfaite et la plus intuitive n'est pas possible, votons-la".

2 votes

Bien sûr, je comprends. Je pense que cela aurait fait un bon commentaire, plutôt qu'une réponse. Dans l'état actuel des choses, si un utilisateur qui scrute les réponses ne clique pas sur le lien et ne voit pas le résultat de votre demande, il pourrait avoir l'impression qu'elle a été effectivement mise en œuvre et que vous montriez un exemple de la nouvelle syntaxe comme solution, mais qu'elle n'a pas été acceptée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X