我试图在rails中实现以下效果:
如果文字大于x个字符,则将其缩小,接下来的x个字符变小,下一个字符变小,无限广告
例如x = 7会输出以下html
Lorem i<small>psum do<small>lor sit<small> amet, <small>consecte
<small>tur adip<small>isicing</small></small></small></small></small></small>
,css为small {font-size: 95%}
实现这一目标的优雅方式是什么?
答案 0 :(得分:2)
HM。也许是一些带递归的帮手?
def shrink(what)
if ( what.length > 5)
"#{what[0,4]}<small>#{shrink(what[5,what.length()-1])}</small>"
else
what
end
end
有一种更好的方法来编写递归调用,但我不知道它是否正确。
答案 1 :(得分:1)
def shrink(what,chunk=5)
result = ''
0.step(what.length, chunk) do |i|
if i<what.length
result << '<small>' if i>0
result << what[i,chunk]
end
end
result << '</small>'*(what.length/chunk)
result
end