Angular 7 - как стилизовать меню материалов, чтобы элементы были сжаты ближе друг к другу

Я новичок в Angular и блуждаю по стилям меню материального дизайна (MD). Это меню предназначено в основном для настольных приложений и должно выглядеть примерно как меню стандартных настольных приложений (например, MS Excel).

Я искал в Интернете, но не получил четких ответов.

По умолчанию пункты меню Angular MD довольно далеко друг от друга - между ними большое расстояние. Вот так они выглядят (здесь я использую текст только для визуализации):

Item A1

Item A2 >   Item A2-B1

Item A3     Item A2-B2

etc.        Item A2-B3 >     etc. 

            etc.

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

Item A1
Item A2 >   Item A2-B1
Item A3     Item A2-B2 >     etc. 
etc.        Item A2-B3

Пример файла menu.component.html:

<div>
  <button mat-button [matMenuTriggerFor] = "menu" 
          class = "myMenuItem">Menu</button>
  <mat-menu #menu = "matMenu" [class] = "myMenu" > 
    <button mat-menu-item class = "myMenuItem">Item 1</button>
    <button mat-menu-item class = "myMenuItem">Item 2</button>
  </mat-menu>
</div>

Не могли бы вы описать стили, и если есть возможность изменить / настроить стили MD по умолчанию для компонентов навигации и кнопок для управления их размерами и внешним видом, предоставьте инструкции или ссылку. Спасибо.

Улучшение производительности загрузки с помощью 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 страниц, которые помогут...
1
0
5 362
2

Ответы 2

если это угловой компонент меню материала? А если вы хотите решить это с помощью css? тогда попробуй это

.mat-menu-item{
    line-height: 20px;
    height: 20px;
}

Спасибо. Это работает с комбинацией ответа от: Михайлов

Felix 12.01.2019 19:34

как line-height, так и height помогут вам достичь этого, или, как упомянул @Mihaylov, вы можете использовать menu-item как дисплей flex и вертикальное выравнивание с помощью align-items или align-content. Лично мне понравился line-height, поскольку это единственное свойство, и мне не нужно беспокоиться о том, что делают другие свойства.

rainversion_3 04.06.2019 15:57

Вот способ стилизации мат-меню или его пунктов меню. Это просто витрина. Пожалуйста, используйте свой собственный CSS, который точно соответствует потребностям вашего настольного приложения. Надеюсь, я был вам полезен.

menu.component.html

<button mat-button [matMenuTriggerFor] = "menu" class = "myMenuItem">Menu</button>
<mat-menu #menu = "matMenu" [class] = "myMenu" > 
  <button mat-menu-item class = "myMenuItem">Item 1</button>
  <button mat-menu-item class = "myMenuItem"> Item 2</button>
</mat-menu>

menu.component.css

.myMenu { 
  color : red;  

  padding: 0px ;
  margin : 0px; 
  height: auto; 

} 
.myMenuItem { 
  display:  flex;
  color : red;  
  font-size: 10px; 
  padding: auto ;
  margin : auto; 
  height: 30px; 
 align-content: center ; 
     align-items:  center ; 
     align-self: center ; 
} 

Спасибо. Это работает - с комбинацией ответа от: imon

Felix 12.01.2019 19:34

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