如何在Haml中为按钮文本添加图片标签?基于button_to助手或原生Haml表单的实现方案
没问题!我帮你搞定这个需求——不管是用button_to助手还是纯Haml手写表单,都能轻松在按钮里加入图标。下面给你两种实用方案,你选顺手的来:
button_to其实支持传入代码块来自定义按钮内容,不用局限于单纯的文本参数。这样既能保留助手函数的便捷性,又能自由添加图标:
= button_to '/something/something0', method: :post, class: "btn-SSO" do # 这里替换成你项目中实际的图标类,比如Font Awesome的图标 %i.fa.fa-lock %i.fa-arrow-right # 原来的按钮文本 = tr('single_sign_on')
说明:
%i是Haml生成<i>标签的写法,用来承载图标样式类(如果你的项目用Material Icons、SVG图标等,替换成对应的标签和类即可)- 图标和文本的间距可以通过CSS调整,比如给图标加
margin-right: 6px之类的样式
方案2:纯Haml手写表单(更灵活可控)
因为button_to本质就是Rails帮你生成一个POST表单,所以手动写表单可以完全自定义按钮的每一部分,适配更复杂的需求:
%form{ action: '/something/something0', method: 'post' } # Rails需要这个隐藏字段来识别HTTP方法(POST可以省略,但保留更规范) = tag(:input, type: :hidden, name: '_method', value: 'post') %button.btn-SSO{ type: :submit } %i.fa.fa-lock %i.fa-arrow-right = tr('single_sign_on')
说明:
- 直接把样式类
btn-SSO加在<button>标签上,和原来的效果一致 - 如果需要给图标加自定义样式,直接在
%i标签上添加style属性或者额外类名就行
内容的提问来源于stack exchange,提问作者GlutVonSmark
相关产品推荐
相关产品推荐

