Иконка редактирования отсутствует в мобильном представлении

Вопрос или проблема

Когда я перехожу в режим мобильной адаптивности в веб-браузере, иконка редактирования сейчас не отображается под колонкой «Вложения», если название файла действительно длинное, как на картинке ниже. Я нашел, где находится проблема в инструментах разработчика. Она в классе span, называемом d-flex. Когда я отключаю .d-flex: display: flex !important, иконка появляется. В решении кода в данный момент нет файла scss, так что как лучше всего решить эту проблему, чтобы иконка отображалась на основе того, что я нашел? Создать новый файл scss, чтобы обрабатывать отображение иконки только при мобильном просмотре, как @media only screen? Если да, то как мне это настроить в файле scss?

Вот две картинки до и после удаления правила css .d-flex

вставьте описание изображения здесь
вставьте описание изображения здесь

А это код для колонки с тегом span

 <ng-template #transactionAttachmentsCell let-row="transaction">
 <span class="d-flex flex-row align-items-center">
     <ng-container *ngIf="hasWriteAccess || row.attachments?.length > 0; else 
    emptyCell">
        <app-button *ngIf="row.attachments?.length > 0"
                    type="link"
                    icon="{{ row.attachments[0].matIcon.icon }}"
                    iconColor="{{ row.attachments[0].matIcon.color }}"
                    [iconTooltip]="row.attachments[0].filename"
                    (onClick)="$event.stopPropagation(); 
         openAttachment(row.attachments[0].url)">
            {{ (row.attachments[0].filename | truncateFilename: 18) }}
        </app-button>
        <app-icon-button *ngIf="hasWriteAccess"
                         [icon]="row.attachments?.length > 1 ? 'more_vert' : 
           (row.attachments?.length > 0 ? 'edit' : 'add')"
                         [iconTooltip]="row.attachments?.length > 1 ? ('+' + 
          (row.attachments.length - 1) + ' Дополнительное Вложение' + 
               (row.attachments.length - 1 === 1 
           ? '' : 's')) : null"
                         (onClick)="$event.stopPropagation(); 
       showManageAttachmentsDialog(row)">
        </app-icon-button>
      </ng-container>
    </span>
</ng-template>

Ответ или решение

Чтобы решить проблему с отсутствием значка редактирования (иконки карандаша) в мобильной версии под столбцом "Attachments" (Вложения) из-за длинных имен файлов, мы можем внести изменения в стили CSS. Как вы уже заметили, проблема заключается в классе .d-flex, который установливает стиль display: flex !important. Когда этот стиль отключен, иконка отображается.

Шаги для решения проблемы:

  1. Создание нового SCSS файла:
    Если у вас нет отдельного SCSS файла для этого компонента, вы можете создать его. Назовите файл, например, custom-styles.scss. Убедитесь, что он импортируется в ваш основной файл стилей или компонент.

  2. Определение медиа-запроса:
    В новом файле SCSS создайте медиа-запрос, который будет применяться только к мобильным устройствам. Ниже представлен пример соответствующего кода:

    @media only screen and (max-width: 768px) {
       .d-flex {
           display: block !important; // или другой подходящий стиль, который решит проблему
       }
    }

    Указанный max-width: 768px означает, что стили будут применяться к экранам шириной 768 пикселей и меньше. Вы можете изменить это значение в зависимости от ваших требований.

  3. Обновление существующего стиля:
    Также, чтобы конкретно решить проблему с отображением иконки, вы можете добавить стили, чтобы гарантировать, что иконки будут нормально отображаться даже при длинных названиях файлов. Например:

    @media only screen and (max-width: 768px) {
       .attachments-column {
           overflow: hidden;  // Скрыть переполнение, если текст длинный
           white-space: nowrap; // Запретить перенос строк
           text-overflow: ellipsis; // Добавить многоточие в конце
       }
    
       .d-flex {
           display: block !important; //или display: inline-block; 
       }
    }
  4. Тестирование изменений:
    После внесения указанных изменений, протестируйте ваши стили в мобильной версии браузера, чтобы убедиться, что иконка появляется корректно и что длинные названия файлов не мешают ее отображению.

  5. Оптимизация:
    Если проблема остается, возможно, стоит проверить другие контейнеры и компоненты, которые могут влиять на отображение иконки. Убедитесь, что другие CSS-стили не конфликтуют с вашими новыми правилами.

Следуя этим указаниям, вы сможете устранить проблему с отсутствием значка редактирования в мобильной версии и улучшить удобство работы с вложениями в вашем приложении.

Оцените материал
Добавить комментарий

Капча загружается...