Стильная CSS-кнопка с предварительным просмотром изображений для загрузки файлов

RedDeveloper
11.04.2023 07:21
Стильная CSS-кнопка с предварительным просмотром изображений для загрузки файлов

Чтобы создать стильную CSS-кнопку с предварительным просмотром изображения для загрузки файлов, вы можете выполнить следующие шаги:

Демо

HTML

Начните с создания HTML div с меткой и элементом ввода для кнопки загрузки файла, а также элемента div для отображения предварительного просмотра загруженного изображения. Вот пример:

<!-- tb is acronym for TechieBundle -->
<div class="tb-container">
  <div class="tb-img-view">
    <img id="tb-image" />
  </div>
  <label for="tb-file-upload">Upload Image</label>
  <input type="file" id="tb-file-upload" accept="image/*" onchange="fileUpload(event);" />
</div>

CSS

Добавьте следующие правила CSS для оформления кнопки загрузки файла и предварительного просмотра изображения:

html,
body {
  margin: 0;
  width: 100%;
  height: 100%;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
 background: #2b5876;
      /* fallback for old browsers */
      background: -webkit-linear-gradient(-20deg, #2b5876 0%, #4e4376 100%);;
      /* Chrome 10-25, Safari 5.1-6 */
      background: linear-gradient(-20deg, #2b5876 0%, #4e4376 100%);
      /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
}
a {
  text-align: center;
  color: #252525;
  text-align: center;
  color: #ffffff;
  width:100%;
}
h1 {
  margin-right:auto;
  margin-left:auto;
  margin-top: 2rem;
  margin-bottom: 2rem;
  text-align: center;
  color: #ffffff;
  width:50%;
}
.tb-img-view {
  width: 100%;
  display: flex;
  justify-content: center;
}
.tb-container {
  width: 100%;
  margin: 4em auto;
}
.tb-container img {
  width: 200px;
  height: auto;
  display: none;
  margin-bottom: 30px;
}
.tb-container input {
  display: none;
}
.tb-container label {
  width: 200px;
  height: 45px;
  background: #2f9c74;
  color: #ffffff;
  font-size: 15px;
  text-transform: capitalize;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  margin:0 auto;
}

JS

Наконец, добавьте следующий код JavaScript для отображения предварительного просмотра загруженного изображения:

const fileUpload = (event) => {
  const files = event.target.files;
  const filesLength = files.length;
  if (filesLength > 0) {
    const imageSrc = URL.createObjectURL(files[0]);
    const imagePreviewElement = document.querySelector("#tb-image");
    imagePreviewElement.src = imageSrc;
    imagePreviewElement.style.display="block";
  }
};

Вот и все! Теперь у вас есть стильная CSS-кнопка с предварительным просмотром изображения для загрузки файлов.

Используемые технологии

  • HTML / CSS / JavaScript

О коде

Совместимые браузеры:- Chrome, Edge, Firefox, Opera, Safari

Отзывчивый:- Да

Зависимости:- Н/Д

Примечание:

Пожалуйста! Я рад, что статья оказалась для вас полезной. Если у вас остались вопросы или вам нужна дополнительная помощь, не стесняйтесь задавать их в разделе комментариев.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?

20.08.2023 18:21

Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в 2023-2024 годах? Или это полная лажа?".

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией

20.08.2023 17:46

В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox

19.08.2023 18:39

Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в частности, магию поплавков и гибкость flexbox.

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest

19.08.2023 17:22

В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для чтения благодаря своей простоте. Кроме того, мы всегда хотим проверить самые последние возможности в наших проектах!

Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️

18.08.2023 20:33

Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий их языку и культуре.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL

14.08.2023 14:49

Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип предназначен для представления неделимого значения.