Проблема выравнивания с панелью расширения Angular Material с mat-nav-list

Я использую mat-nav-list для отображения пунктов меню, а четвертый пункт меню — это элемент управления расширением материала Angular. Мне здесь не хватает выравнивания. Скриншот этого ниже.

РЕДАКТИРОВАТЬ

Соответствующий код приведен ниже.

<mat-nav-list>
    <a id = "user1id" mat-list-item matTooltip = "User1" [routerLink] = "['/user1']" 
      <mat-icon>user1_icon</mat-icon>
      <span>User 1</span>
    </a>
    <a id = "user2id" mat-list-item matTooltip = "User2" [routerLink] = "['/user2']" 
      <mat-icon>user2_icon</mat-icon>
      <span>User 2</span>
    </a>
    <a id = "user3id" mat-list-item matTooltip = "User3" [routerLink] = "['/user3']">
      <mat-icon>user2_icon</mat-icon>
      <span>User 3</span>
    </a>
    <a>
      <mat-accordion class = "mat-accordion-setting" >
        <mat-expansion-panel hideToggle [(expanded)] = "panelOpenState">
          <mat-expansion-panel-header>
            <mat-panel-title matTooltip = "User 4 Title" style = "text-align: left;">
              <table border = "1" width = "200px">
                <tr>
                  <td style = "padding-left:0px; padding-right: 0px;"><mat-icon
                      class = "mat-accordion-setting">user4_icon</mat-icon></td>
                  <td class = "mat-panel-title-setting">User 4 Title</td>
                </tr>
              </table>
            </mat-panel-title>
          </mat-expansion-panel-header>
          <div>
            <mat-panel-description id = "submenu1" 
              class = "mat-panel-description-setting"><a [routerLink] = "['/submenu1']"
                routerLinkActive = "active">Submenu 1</a></mat-panel-description>
            <mat-panel-description id = "submenu2" 
              class = "mat-panel-description-setting"><a [routerLink] = "['/submenu2']"
                routerLinkActive = "active">Submenu 2</a></mat-panel-description>
            <mat-panel-description id = "submenu3" 
              class = "mat-panel-description-setting"><a [routerLink] = "['/submenu3']"
                routerLinkActive = "active">Submenu 3
                </a></mat-panel-description>
          </div>
        </mat-expansion-panel>
      </mat-accordion>
    </a>
</mat-nav-list>

Как выровнять значок слева от списка меню? Как это исправить?

Пожалуйста, отредактируйте свой вопрос и добавьте код.

Rok Benko 22.09.2023 10:48

@RokBенко Добавлен код, связанный с этим снимком экрана. Спасибо.

CPK_2011 22.09.2023 11:14

Смотрите мой ответ ниже.

Rok Benko 22.09.2023 16:46
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
3
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я пытался воспроизвести ошибку:

Проблема возникла по следующим причинам:

  1. Элемент mat-expansion-panel-header установил padding: 0 24px; по умолчанию, тогда как элемент mat-list-item установил padding: 0 16px; по умолчанию.
  2. Вы не добавили CSS border-collapse: collapse; в table.

Также замените <table border = "1" width = "200px"> на <table border = "0" width = "200px">.


список-обзор-example.ts

import { Component } from '@angular/core';
import { MatListModule } from '@angular/material/list';
import { MatIconModule } from '@angular/material/icon';
import { MatExpansionModule } from '@angular/material/expansion';

/**
 * @title Basic list
 */
@Component({
  selector: 'list-overview-example',
  templateUrl: 'list-overview-example.html',
  standalone: true,
  imports: [MatListModule, MatIconModule, MatExpansionModule],
})
export class ListOverviewExample {}

список-обзор-example.html

<mat-list role = "list">
  <a mat-list-item role = "listitem">
    <mat-icon>accessibility</mat-icon>
    <span>User 1</span>
  </a>
  <a mat-list-item role = "listitem">
    <mat-icon>accessibility</mat-icon>
    <span>User 2</span>
  </a>
  <a mat-list-item role = "listitem">
    <mat-icon>accessibility</mat-icon>
    <span>User 3</span>
  </a>
  <a>
    <mat-accordion class = "mat-accordion-setting">
      <mat-expansion-panel hideToggle>
        <mat-expansion-panel-header>
          <mat-panel-title matTooltip = "User 4 Title" style = "text-align: left">
            <table border = "0" width = "200px">
              <tr>
                <td style = "padding-left: 0px; padding-right: 0px">
                  <mat-icon class = "mat-accordion-setting"
                    >accessibility</mat-icon
                  >
                </td>
                <td class = "mat-panel-title-setting">User 4 Title</td>
              </tr>
            </table>
          </mat-panel-title>
        </mat-expansion-panel-header>
        <div>
          <mat-panel-description
            id = "submenu1"
            class = "mat-panel-description-setting"
            ><a>Submenu 1</a></mat-panel-description
          >
          <mat-panel-description
            id = "submenu2"
            class = "mat-panel-description-setting"
            ><a>Submenu 2</a></mat-panel-description
          >
          <mat-panel-description
            id = "submenu3"
            class = "mat-panel-description-setting"
            ><a>Submenu 3 </a></mat-panel-description
          >
        </div>
      </mat-expansion-panel>
    </mat-accordion>
  </a>
</mat-list>

стили.scss

.mat-expansion-panel-header {
  padding: 0 16px !important;
}

table {
  border-collapse: collapse;
}

Выход:

Посмотрите живую демонстрацию.

Отличное решение. Спасибо большое @РокБенко.

CPK_2011 23.09.2023 12:29

Другие вопросы по теме