Haml: как установить встроенный стиль для элемента в HAML

#ruby-on-rails-3 #haml

#ruby-on-rails-3 #haml

Вопрос:

Вот мой код:

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

Он анализирует только style='position: absolute' и не анализирует другие стили. Как я могу этого добиться?

Комментарии:

1. Приведенный ответ правильный, но в нем упущен гораздо более важный момент: вы никогда не должны использовать встроенные стили. Определите класс CSS и сделайте это правильно.

2. Это было временное решение 🙂 попробуйте что-нибудь и удалите все изменения. Вот почему я искал это 🙂

3. Как насчет динамической настройки фонового изображения? Вот когда я использую встроенные стили.

4. @JoelBrewer Я думаю, что для этого я бы динамически сгенерировал файл переопределения CSS (или использовал JavaScript), предпочитая использовать встроенные стили.

Ответ №1:

Было бы удобно, если бы вы опубликовали используемый вами HAML, но это делается так:

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

Комментарии:

1. Стоит отметить, что между концом имени элемента или класса и открывающей фигурной скобкой не может быть пробела.

Ответ №2:

Нет необходимости использовать %div :

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

Ответ №3:

Другой подход в дополнение к хэш-подходу Дэна Чейла заключается в следующем:

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

Ответ №4:

Если вы ищете встроенный css для изображения :

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

Ответ №5:

Запросил специальный случай хэша в:https://github.com/haml/haml/issues/787 чтобы позволить нам писать:

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

многое подобное возможно для class: ["class1", "class2"] .

Комментарии:

1. Голосование за понижение, потому что это не ответ на вопрос. Это просто утверждение, что вы сделали запрос функции для этого синтаксиса.

2. @Adam спасибо за отзыв. Моим намерением было сказать: «эта проблема подтверждает, что идеальный, наиболее интуитивно понятный синтаксис невозможен, давайте поддержим его».

3. Конечно, я это понимаю. Я думаю, что это был бы прекрасный комментарий вместо ответа. В нынешнем виде, если пользователь, просматривавший ответы, не нажал на ссылку и не увидел результат вашего запроса, у него может сложиться впечатление, что это действительно было реализовано, и вы показывали пример нового синтаксиса в качестве решения, но оно не было принято.