Changer une propriété CSS dans un contro leur (ou une vue)

Bonjour je sens que je vais poser une question trivial (et je m’en
excuse).

Voilà, j’ai une présentation en 2 colonnes C1 et C2 dont je définie la
taille dans mon css ( 550 et 200), la colonne C2 n’ayant pas toujours
de contenu en fonction des pages affichées, je la gère avec un <
%= yield :column2 %>.

Mon problème est que quand je sais que je ne ais pas afficher la
colonne2 j’aimerai bien mettre la taille de la colonne1 à 770.

Comment je peux faire?

  • J’ai pensé à mettre l’attribut taille dans ma vue avec une variable
    que je mettrai à jour dans mon controleur

    Mais ce n’est pas forcément très propre

    Ou sinon utiliser du javascript dans mon controleur pour mettre la
    taille avant l’affichage mais je ne suis pas sur de la syntaxe pour le
    faire
    render :update do |page|
    page.Element.setStyle(‘column1’, {width:‘770’})
    end

    Merci de votre aide.
    Nicolas

J’ai temporairement résolu ce pb avec la première solution

Mais si quelqu’un à une autre solution, qu’il n’hésite pas :wink:

Nicolas

2008/8/2 Tranquiliste [email protected]:

J’ai temporairement résolu ce pb avec la première solution

Mais si quelqu’un à une autre solution, qu’il n’hésite pas :wink:

et pourquoi pas un petit helper :

content_tag(:div, :id => ‘column1’, :class => (test ? ‘big’ : ‘little’)
do

end

tu fais un test pour changé de class. En fonction de la class de
l’élement en CSS du défini la taille (plus pratique surtout pour
changé dans le futur sans touché au code des vue)


Cyril M.

Merci Cyril, je ne connaissais pas content_tag, c’est effectivement
une solution plus élégante et plus “maintenable”

Nicolas