减少rails中的字体大小

时间:2010-01-04 02:22:51

标签: ruby-on-rails ruby

我试图在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%}

实现这一目标的优雅方式是什么?

2 个答案:

答案 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)

moritz的回答似乎很好,干代码尝试迭代版本:

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