JSFiddle - React, Tailwind, and code Playground
HTML
<img src="https://goo.gl/XGflc6" width="150" id="logo" class="logo" alt="logo">
<form action="edit_logo-upd.php" method="post">
<label for="alterarLogo">
<img src="https://goo.gl/Kmg0EB" width="20" height="20" class="alterar" alt="Alterar">
</label>
<label for="salvarLogo">
<span class="salvar" id="salvar"> Salvar </span>
</label>
<input name="logo" id="alterarLogo" type="file">
<input name="salvar" id="salvarLogo" type="submit">
</form>
CSS
html {
background-color: #555;
}
/* Isso é apenas para demonstração, mas pode servir como base em seu projeto! */
.logo {
float: left;
border: 1px solid;
border-top-color: rgba(255, 255, 255, 0.3);
border-bottom-color: rgba(255, 255, 255, 0.3);
border-right-color: rgba(255, 255, 255, 0.3);
border-left-color: rgba(255, 255, 255, 0.3);
}
.alterar {
float: left;
margin-left: -21px;
margin-top: 1px;
position: absolute;
background: rgba(255, 255, 255, 0.3);
}
.salvar {
float: left;
line-height: 21px;
padding-left: 10px;
padding-right: 10px;
background: rgba(255, 255, 255, 0.3);
display: none;
cursor: pointer;
}
/* Isso é necessário para ocultar o input, altere para ver o que irá mudar :P */
#alterarLogo,
#salvarLogo {
display: none;
}
JavaScript
document.getElementById("alterarLogo").addEventListener("change", function() {
document.getElementById('logo').src = window.URL.createObjectURL(this.files[0]);
document.getElementById("salvar").style.display = "block";
});