Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

163
Visualizações
Establezca dinámicamente el ancho de desbordamiento de texto css en función de otros anchos de elementos dom

Tengo una lista de alfombras en un componente Angular como el siguiente ( food-list.component.html )

interfaz de usuario de la lista de tapetes de muestra

 <mat-list id="site-list"> <ng-container *cdkVirtualFor="let food of foods"> <mat-list-item id="food-{{food.id}}"> <mat-icon *ngIf="showFoodIcon" color="warn">not_listed_location</mat-icon> <p matLine [ngStyle]="{width: foodLabelWidth} class="overflowText"><small>{{food.label}}</small></p> <p matLine [ngStyle]="{width: foodLabelWidth} class="overflowText"><small>{{food.type}}</small></p> </mat-list-item> </ng-container> </mat-list>

Y en el archivo CSS ( food-list.component.scss )

 p.overflowText { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

Como ejemplo, en una vista de escritorio, el ancho del elemento de la lista de alfombras es de 100 px y MatIconWidth es de 5 px. y en la vista móvil, el ancho del elemento de la lista de tapetes es de 50 px y MatIconWidth es de 5 px. Quiero establecer el ancho de desbordamiento de texto de acuerdo con el espacio que queda.

por ejemplo, en food-list.component.ts quiero hacer algo como esto.

 ngOnInit(): void { this.foodLabelWidth= matListItemWidth - MatIconWidth; }

para que esto suceda, quiero obtener el ancho del elemento DOM de

 <mat-icon *ngIf="showFoodIcon" color="warn">not_listed_location</mat-icon>

Que se encuentra dentro de un bucle NgFor. ¿Hay una manera de lograr esto?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

¡Entonces podría usar el diseño flexible para que funcione! https://css-tricks.com/snippets/css/a-guide-to-flexbox/

en archivo html

 <mat-list id="site-list"> <ng-container *cdkVirtualFor="let food of foods"> <mat-list-item id="food-{{food.id}}"> <div class="flex-row w-100"> <div class="flex-row"> <mat-icon *ngIf="showFoodIcon" color="warn">not_listed_location</mat-icon> </div> <div class="food-title"> <p matLine class="overflowText"><small>{{food.label}}</small></p> <p matLine class="overflowText"><small>{{food.type}}</small></p> </div> </div> </mat-list-item> </ng-container> </mat-list>

archivo scss

 ::ng-deep .cdk-virtual-scroll-content-wrapper { max-width: 100% } .flex-row { display: flex; justify-content: space-between; align-items: center; } .overflow { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .food-title { flex-grow: 1; display: flex; flex-direction: column; min-width: 0; }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda