将 file_field_tag 外观更改为按钮外观
Change file_field_tag appearance to button appearance
我正在做一个 Rails 项目,我想使用 file_field_tag,但我希望它看起来像一个按钮。
我有这个:
使用此代码:
= file_field_tag 'attachment'
我想要这样的东西:
我尝试了这个:
= file_field_tag 'attachment', class: 'btn btn-large btn-warning'
但我得到了这个:
如何更改 file_field_tag 的外观以使其看起来像一个按钮?
HTML:
<span class="btn btn-large btn-warning btn-file">
Choose File
<%= file_field_tag :attachment %>
</span>
CSS:
.btn-file {
position: relative;
overflow: hidden;
}
.btn-file input[type=file] {
position: absolute;
top: 0;
right: 0;
min-width: 100%;
min-height: 100%;
font-size: 100px;
text-align: right;
filter: alpha(opacity=0);
opacity: 0;
outline: none;
background: white;
cursor: inherit;
display: block;
}
最好的方法是在另一个样式按钮的顶部使用 css 做一个透明字段。
在 css 上添加带有 ID 的 div 和 div class 包装器 添加按钮的样式并隐藏 file_field_tag.
<div id="id_attachment">
<div class="hide_attachment">
<%= file_field_tag 'attachment'%>
</div>
</div>
对于顺风用户,这对我有用。
<label class="relative flex justify-center w-full px-4 py-2 overflow-hidden text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 hover:bg-blue-700">
Upload logo
<%= f.file_field :main_image, class:"absolute top-0 right-0 opacity-0 cursor-pointer min-h-full min-w-full" %>
</label>
我正在做一个 Rails 项目,我想使用 file_field_tag,但我希望它看起来像一个按钮。
我有这个:
使用此代码:
= file_field_tag 'attachment'
我想要这样的东西:
我尝试了这个:
= file_field_tag 'attachment', class: 'btn btn-large btn-warning'
但我得到了这个:
如何更改 file_field_tag 的外观以使其看起来像一个按钮?
HTML:
<span class="btn btn-large btn-warning btn-file">
Choose File
<%= file_field_tag :attachment %>
</span>
CSS:
.btn-file {
position: relative;
overflow: hidden;
}
.btn-file input[type=file] {
position: absolute;
top: 0;
right: 0;
min-width: 100%;
min-height: 100%;
font-size: 100px;
text-align: right;
filter: alpha(opacity=0);
opacity: 0;
outline: none;
background: white;
cursor: inherit;
display: block;
}
最好的方法是在另一个样式按钮的顶部使用 css 做一个透明字段。 在 css 上添加带有 ID 的 div 和 div class 包装器 添加按钮的样式并隐藏 file_field_tag.
<div id="id_attachment">
<div class="hide_attachment">
<%= file_field_tag 'attachment'%>
</div>
</div>
对于顺风用户,这对我有用。
<label class="relative flex justify-center w-full px-4 py-2 overflow-hidden text-sm font-medium text-white bg-blue-600 border border-transparent rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 hover:bg-blue-700">
Upload logo
<%= f.file_field :main_image, class:"absolute top-0 right-0 opacity-0 cursor-pointer min-h-full min-w-full" %>
</label>