使用css选择文件后,如何更改表单中文件输入按钮的颜色?
How to change the color of the file input button in a form after a file is selected with css?
我正在制作一个简单的网页,其中包含一个包含类型文件输入的表单,我想在 select a 时更改“select 文件”按钮的边框颜色file 表示文件是 selected.
我曾尝试在 css 中使用 :focus 伪 class 来尝试在按下时更改颜色,但这仅在单击页面上的其他内容之前有效。我也尝试了 :visited 伪 class,但没有任何反应。
这里是相关的html代码:
<input type="file" id="file-input"></input>
<label for="file-input" class="file-button">Select File</label>
css:
.file-button {
display: block;
margin: 10px auto;
width: 400px;
border-radius: 10px;
text-align: center;
justify-content: center;
color: black;
font-weight: bold;
font-size: 36pt;
border: 5px solid grey;
padding:8px 0px;
}
input[type="file"]{
opacity: 0;
width: 0.1px;
height: 0.1px;
overflow: hidden;
z-index: -1;
position: absolute;
}
input[type="file"]:focus+label {
border-color: black;
}
有几种方法可以做到这一点。如果你有完整的js代码,那么回答起来会容易得多。
基本上你可以使用三元来确定文件是否已上传(存储在状态中),然后根据此类更改 css。
例如:
const [isUploaded, setIsUploaded] = useState(null)
//Change the upload to true once a file is selected
<label for="file-input" class={isUploaded ? "file-button-after-upload" : "file-button-before-upload">Select File</label>
我正在制作一个简单的网页,其中包含一个包含类型文件输入的表单,我想在 select a 时更改“select 文件”按钮的边框颜色file 表示文件是 selected.
我曾尝试在 css 中使用 :focus 伪 class 来尝试在按下时更改颜色,但这仅在单击页面上的其他内容之前有效。我也尝试了 :visited 伪 class,但没有任何反应。
这里是相关的html代码:
<input type="file" id="file-input"></input>
<label for="file-input" class="file-button">Select File</label>
css:
.file-button {
display: block;
margin: 10px auto;
width: 400px;
border-radius: 10px;
text-align: center;
justify-content: center;
color: black;
font-weight: bold;
font-size: 36pt;
border: 5px solid grey;
padding:8px 0px;
}
input[type="file"]{
opacity: 0;
width: 0.1px;
height: 0.1px;
overflow: hidden;
z-index: -1;
position: absolute;
}
input[type="file"]:focus+label {
border-color: black;
}
有几种方法可以做到这一点。如果你有完整的js代码,那么回答起来会容易得多。 基本上你可以使用三元来确定文件是否已上传(存储在状态中),然后根据此类更改 css。
例如:
const [isUploaded, setIsUploaded] = useState(null)
//Change the upload to true once a file is selected
<label for="file-input" class={isUploaded ? "file-button-after-upload" : "file-button-before-upload">Select File</label>