How to make a simple responsive mobile menu using CSS only
Alright, we are going to make a responsive menu. It's not going to be the burger dropdown menu. Okay, we'll do that in the next video. We're going to look at like a nice easy, simple simplistic CSS. Okay. No extra skills based on what we've learned so far. Just kind of reshuffling of things because at the moment does this goes down and go, yeah, cool. And it gets to here and goes, ah also bad. Okay, so we're going to change it in this video so that it changes format from this when it gets down to a certain level. Boom. Okay, looks good on mobile. Okay, we're going to change that so it's not fixed to the top. The buttons are easy to click and it's just a simple reshuffling of CSS based on a media query. Let's jump in now and work out how to do it. Alright, so our menu you've seen, we're doing it because of this. Okay, gets down to kind of a tablet, the size or mobile size and just falls apart. Cool. So we need to decide when this falls apart. Okay, so let's preview it on an ipad and the...
n on the phone, so we're gonna right click it, go to inspect, we're gonna turn on down here a little device preview at the top. We're going to look at ipad. Okay. And an IPad. It's looking at 50%. Let's go 200. Okay. It's actually fine on an IPad. I might push that logo over a little bit, but it's totally usable. So let's have a look at my IPhone 10 and it's totally not usable. It's all collapsing and falling to pieces. So that's what we'll target our mobile phone. So that is about 375. Let's have a look at our media query. Where is he? So our tablet media query. So it's gonna be this one right? A mobile view. So we're gonna be working inside of these curly braces. Okay, so just after our little hide mobile, we're gonna start chipping away at it. The first thing we're gonna do is we need to override earlier on. We see a display flicks. So our container container, our header. No, not that one. This one here we said our header. Okay. Which has our logo and our navigation in it. I want to display flex and that made it line up next to each other. What we might do for this video is I'm not going to be touching the html. So I'm gonna shut it down and I'm just gonna drag this in. I'm gonna move this across The luxury of working on my butthole means we can just see it over here. All right. And I'll move it to 100% and I might make it closer for you so we can see the editor doesn't have to zoom out too far. Let's try that. Alright. So first thing we want to do is we don't want side by side, there's lots of things to do. It doesn't have to be this first one. but so this fella header is displaying flex. Let's override that down in my mobile. Okay, so down here I'm going to say um header. No it's not a class. It's a predefined html tag. So here it is going to display instead of flex we're gonna go back to good old block. Okay, so they stack on top of each other. So the logos there. Now the knobs underneath. Now these little knob guys aren't displaying block either. Okay. Even though the head has said Nav items, see these little eight tags that we used. They seem to be doing their own things will say and what do we want? So the a tags that are inside the Nav can you display block to display block now they're on top of each other. Perfect. Let's first we'll make it all centered. Okay, so I could do it for the knob and the header but we might as well do it for every thing or the logo. So we'll do it for the header because that'll do both the logo. Text and hopefully all the text inside of the buttons. So let's go text takes the line. Okay. Text the line and we'll try and go center. They all go nice. The logo. Okay, so we'll say dot logo. Remember it's not a predefined html tag even though it feels like it should be we're going to give it some say a min height. Main height of 50 pixels. Cool. We want a little bit of padding at the top as well. Actually we could do padding top and bottom rather than a minimum height. Let's do that. Okay so do petting and we will do top and bottom. We're going to do I don't know 40 pixels and left and right is going to be zero. You don't actually have to put PX Okay. You just put in 00 is whatever measurement you're gonna be using semi colon. Alright so for the top and bottom and zero left and right. That's given us some space. The only real other thing is that this needs to shift over a bit. There's some weird margin on these guys and now I figured it would be margin on these fellas. Okay. So margin margin what does it left case. Imagine left. I'll set it to zero. Okay. And it didn't work. I was like so I tried because I had a look at the html or is he there? Okay. Both it's a nav and it's an a tag inside of a knob but we've also got this class applied so that's what I'll try next. Okay. Instead of being on that one I'll say in our class called nav button never button we'll try it the same thing here. We'll say margin left zero. Does it work? It does not work. I called it the right thing but never it's called mike button come on dan my button. All right. And that stretched it out and that my friends is a nice simple way of redefining it just for mobile. It's not a burger menu. Will do that in the next video but it is pretty easy to implement. Let's have a look. IPad typing away. I can click on all these things 100%. Okay. I can tap on a little of them, but when I get down to my phone it just switches out. The layout still looks good. One thing, it doesn't look good. It's kind of hiding lots of chunks to either push it down or in this case I probably want to turn the fixed menu off because it's occupying such a huge amount of the real estate on my phone. So let's have a look at doing that. Okay. What controls it at the top here? So it was called position fixed there. It is there. So my main container had position fixed down here or my head of container. Do I have a headache container? I don't so we'll do this one hitting a tina. I don't want to reiterate all of that. I want to get rid of that instead of position fixed. We're going to make them relative relative means I'm relative to all the other people on the page. Okay. So I'm aware of what they're doing and at the moment can you see this big gap? This is coming from earlier on we said remember we said container. put a huge big padding at the top. Okay, so now I need to say container padding at the top, please go away. So down here, I'm not putting in any sort of real order. Just kind of trying to put some sort of hierarchy in it. So we'll do padding top. I think it probably can be 0-0. Let's have a look. Probably Oh yeah, So scrolls up, which is cool. But I want a little bit of padding, maybe just 40 pixels to kind of match the gap underneath. And that is a real simple let's have a little look and responsive my ball. Oh, there's a bit of a weird gap going on here. So what I might have to do is actually implement this all a lot earlier than I thought. So ipad, but there there's no man's land of probably horizontal phone. Okay, so let's fix that. All they need to do is say I want you to come in earlier and this is the things that we've made. So I'm gonna say you come off, you're actually better before the closing curly braces of this one. It's probably gonna be better doing it there. So it comes down, comes down and gets into a nice big giant button and then it works fine right up into a teeny tiny land, awesome. Nice simple CSS only changing the layout of the CSS but that's not what you came here for you wanted to do the little burger menu when you click on it and does a little cool drop down thing on a mobile phone. Remember you don't have to have that, but it is pretty cool to do that. We're going to learn a little bit of J query and we'll do it in the next video.