2013-09-09 6 views
0

Я хочу наложить одно изображение поверх другого в RoR.image overlay in RoR

Это в простом HTML легко (от https://stackoverflow.com/a/1997397/1760830):

<div style="position: relative; left: 0; top: 0;"> 
    <img src="a.jpg" style="position: relative; top: 0; left: 0;"/> 
    <img src="b.jpg" style="position: absolute; top: 30; left: 70;"/> 
</div> 

Этот код работает для меня, когда я положил его в отдельный file.html. Тогда в Rails я:

<div style="position: relative; left: 0; top: 0"> 
    <%= image_tag "a.jpg", :style => "position:relative; top:0; left:0;" %> 
    <%= image_tag "b.jpg", :style => "position:absolute; top:30; left:70; 
            border:thick solid blue;" %> 
</div> 

но отображается второе изображение рядом с первым, без смещения. Вторая граница изображения добавляется в код, чтобы проверить, действительно ли стиль передан.

Любые идеи, почему версия Rails не работает?

рубин 1.9.3, рельсы 3.2

+1

может у пожалуйста, используйте HTML-класс вместо ': style' как встроенный стиль не является хорошим вариантом ... использовать как <% = IMAGE_TAG (" a.jpg ",: class =>" first_image "%>' и в css '.first_image {position: relative; top: 0; left: 0;}' –

+0

, если первый код работает, я не вижу причин, почему второй код не работает. убедитесь, что первый код работает первым. Еще одна вещь, которую вы можете проверить, - это поместить их в один и тот же вид, а затем сравнить сгенерированный html. – jvnill

ответ

0

, потому что код, который вы скопировали ставит второе изображение рядом с первым.

попробовать что:

<div style="position: relative; left: 0; top: 0;"> 
    <img src="a.jpg" style="position: relative; top: 0px; left: 0px;"/> 
    <img src="b.jpg" style="position: absolute; top: 30px; left: 70px;"/> 
</div> 

образец есть: http://fiddle.jshell.net/hmfzN/1/

добавить точек и что скалы.

средства в рельсах/ERB:

<div style="position: relative; left: 0; top: 0"> 
    <%= image_tag "a.jpg", :style => "position:relative; top:0px; left:0px;" %> 
    <%= image_tag "b.jpg", :style => "position:absolute; top:30px; left:70px; border:thick solid blue;" %> 
</div>