Reputation: 59
I'm having some problems with aligning the logo with the menu options on CSS/SCSS.
What it should look like:
How it is now:
CSS and HTML code:
nav {
background-color: black;
border: 1px solid black;
color: white;
}
.nav-wrapper {
display: flex;
}
.logo-app {
height: 60px;
width: 15em;
text-align: center;
padding-bottom: 1px;
padding-top: 3px;
}
.buttons {
position: relative;
}
<nav>
<img src="assets/images/logo.png" alt="brand-logo" class="logo-app">
<div class="buttons">
<button mat-button [matMenuTriggerFor]="aboveMenu">
<span>Sass</span>
</button>
<mat-menu #aboveMenu="matMenu" yPosition="above">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
<button mat-button [matMenuTriggerFor]="aboveMenu"><span>Components</span></button>
<mat-menu #aboveMenu="matMenu" yPosition="above">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
<button mat-button [matMenuTriggerFor]="aboveMenu"><span>JavaScript</span></button>
<mat-menu #aboveMenu="matMenu" yPosition="above">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
</div>
</nav>
Upvotes: 1
Views: 182
Reputation: 61114
You can make the nav
element a flexbox container.
nav {
display: flex;
align-items: center;
background-color: black;
color: white;
}
.logo-app {
flex: none;
height: 60px;
margin: 1px;
}
.buttons {
flex: auto;
text-align: center;
}
<nav>
<img src="https://via.placeholder.com/60" alt="brand-logo" class="logo-app">
<div class="buttons">
<button mat-button [matMenuTriggerFor]="aboveMenu">
<span>Sass</span>
</button>
<mat-menu #aboveMenu="matMenu" yPosition="above">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
<button mat-button [matMenuTriggerFor]="aboveMenu"><span>Components</span></button>
<mat-menu #aboveMenu="matMenu" yPosition="above">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
<!-- hiding some buttons for better small demo
<button mat-button [matMenuTriggerFor]="aboveMenu"><span>JavaScript</span></button>
<mat-menu #aboveMenu="matMenu" yPosition="above">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
-->
</div>
</nav>
Upvotes: 2
Reputation: 23128
Here you go...
Just put <img src="assets/images/logo.png" alt="brand-logo" class="logo-app">
inside <div class="buttons">...</div>
.
nav {
background-color: black;
border: 1px solid black;
color: white;
}
.nav-wrapper {
display: flex;
}
.logo-app {
height: 60px;
width: 15em;
text-align: center;
padding-bottom: 1px;
padding-top: 3px;
}
.buttons {
position: relative;
}
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<meta http-equiv='X-UA-Compatible' content='IE=edge'>
<meta name='viewport' content='width=device-width, initial-scale=1.0'>
<title>Document</title>
<link href='https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css' rel='stylesheet' integrity='sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl' crossorigin='anonymous'>
</head>
<body>
<nav>
<div class="buttons">
<img src="assets/images/logo.png" alt="brand-logo" class="logo-app">
<button mat-button [matMenuTriggerFor]="aboveMenu">
<span>Sass</span>
</button>
<mat-menu #aboveMenu="matMenu" yPosition="above">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
<button mat-button [matMenuTriggerFor]="aboveMenu"><span>Components</span></button>
<mat-menu #aboveMenu="matMenu" yPosition="above">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
<button mat-button [matMenuTriggerFor]="aboveMenu"><span>JavaScript</span></button>
<mat-menu #aboveMenu="matMenu" yPosition="above">
<button mat-menu-item>Item 1</button>
<button mat-menu-item>Item 2</button>
</mat-menu>
</div>
</nav>
</body>
</html>
Upvotes: 1