css 造型文件输入:“选择文件”的阴影被切断

j8ag8udp  于 2022-11-26  发布在  其他
关注(0)|答案(1)|浏览(118)

我试着设计文件输入按钮的样式,使其看起来像我应用程序中的所有按钮。我使用tailwind来设计样式。
下面是悬停按钮的示例:

阴影没有被隐藏或切断。但如果我尝试在文件输入中使用相同的样式-它看起来像这样:

阴影被切断。看起来隐藏了溢出,但实际上没有。
文件输入代码:

<div className="flex flex-col gap-y-2 overflow-visible">
  <label htmlFor="art_cover">Art cover</label>
  <input
    type="file"
    name="art_cover"
    id="art_cover"
    onChange={({ currentTarget }: ChangeEvent<HTMLInputElement>) => {
      currentTarget.files && formik.setFieldValue('art_cover', currentTarget.files[0]);
    }}
    className="text-gray-400 file:border-solid file:btn-style file:text-primary-light file:mr-3"
  />
</div>

Tailwind重复使用了我用于按钮的样式:

.btn-style {
  @apply rounded-full bg-transparent border-2 border-primary-accent font-bold px-4 md:px-5 py-1 md:py-1.5 cursor-pointer
  transition text-center text-sm md:text-base hover:bg-primary-accent hover:text-secondary-dark hover:shadow-accent;
}

.shadow-accent {
  @apply drop-shadow-[0_0_15px_rgba(78,255,166,0.3)];
}
bsxbgnwa

bsxbgnwa1#

通过使用this answer更改我的输入实现进行修复。

<div className="flex flex-col gap-y-2">
    <label htmlFor="art_cover">Art cover</label>
    <label htmlFor="art_cover" className="flex items-center">
        <div className="btn-style text-primary-light mr-3">Choose file</div>
        <p className="text-gray-400">{formik.values.art_cover === undefined ? 'No file chosen' : formik.values.art_cover['name']}</p>
    </label>
    <input
        type="file"
        name="art_cover"
        id="art_cover"
        onChange={({ currentTarget }: ChangeEvent<HTMLInputElement>) => {
            currentTarget.files && formik.setFieldValue('art_cover', currentTarget.files[0]);
        }}
        className="hidden"
    />
</div>

工作起来像一个魅力

相关问题