2011-11-11 7 views
47

Ecco il mio codice:Come impostare stile in linea per l'elemento in HAML

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

analizza solo style='position: absolute', e non analizza gli altri stili. Come posso raggiungere questo obiettivo?

+3

La risposta data è corretta, ma mancava un un punto più importante: non dovresti mai usare stili in linea. Definisci una classe CSS e fallo bene. –

+0

Soluzione temporanea :) prova qualcosa e cancella tutte le modifiche. Ecco perché stavo cercando questo :) – ValeriiVasin

+2

Che dire quando si imposta dinamicamente un'immagine di sfondo? Questo è quando uso gli stili in linea. –

risposta

103

Sarebbe stato utile se ci si postato il HAML si sta utilizzando, ma questo è come è fatto:

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

Vale la pena notare che non può esserci uno spazio tra la fine dell'elemento o il nome della classe e la parentesi di apertura. – FreeAsInBeer

0

chiesto un caso speciale hash a: https://github.com/haml/haml/issues/787 per consentire di scrivere:

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

molto simile è possibile per class: ["class1", "class2"].

+1

Downvoting perché questa non è una risposta alla domanda. È solo una dichiarazione che hai fatto una richiesta di funzionalità per questa sintassi. – Adam

+0

@ Adam grazie per il feedback. La mia intenzione era quella di dire: "questo problema conferma che la sintassi perfetta e più intuitiva non è possibile, anzi la sovrascriviamo". –

+0

Certo, ho capito. Penso che avrebbe fatto un bel commento, invece di una risposta. Allo stato attuale, se un utente che stava eseguendo la scansione delle risposte non ha fatto clic sul link e ha visto il risultato della richiesta, potrebbe avere l'impressione che sia stato effettivamente implementato e stavi mostrando un esempio della nuova sintassi come soluzione, ma non è stato accettato. – Adam

3

Un altro approccio, oltre alla hash da Dan Cheail è tale:

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

Non c'è bisogno di usare %div:

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

Se siete alla ricerca CSS in linea per un'immagine:

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