Responsive navbar tutorial using HTML CSS & JS

Поделиться
HTML-код
  • Опубликовано: 24 ноя 2024

Комментарии • 412

  • @spacemanstrikesagain
    @spacemanstrikesagain 2 года назад +63

    I found the Hamburger mobile navigation menu tough to grasp. I read multiple articles, played around with codepens, watched videos etc. This is the only video that explained the whole thing in a truly beginner friendly way. And I appreciate the effort that you put into it Mr. Powell. Kudos and millions of thanks ❤❤

  • @electronicbasics1856
    @electronicbasics1856 3 года назад +82

    the tutorial everyone needed but no one asked for.

  • @fsc_oficial
    @fsc_oficial Год назад +3

    Dude...i watch your videos for almost 1 year now. This is my first comm and I wanted to say that I just LOVE THE WAY YOU TALK.

  • @aakashkathait8328
    @aakashkathait8328 3 года назад +24

    I just completed you “conquering responsive layout” course , it changed my mind completely on how I see html and css. Thank you for such quality content for free

  • @CodeWithSahand
    @CodeWithSahand 3 года назад +12

    The Navbar looks amazing. I like the idea.

  • @JohnWin-q7w
    @JohnWin-q7w Год назад +1

    This man is pure gold. The sheer number of informative videos on CSS instead of just blabbering is insane. Get this man a subscription.

  • @ZANES-YT
    @ZANES-YT 3 года назад +2

    This guy us one of the best content based programming markup language course tutor ever, so much valuable content in the last 3 years from you thanks for helping me being the css designer I am now.

  • @digitalalien3534
    @digitalalien3534 3 года назад +20

    I just finished the full course on scrimba and it was GREAT. A ton of information on proper workflow and good practices, and lots of pointers on useful things I need to learn more about. I've been trying to get better at building complete websites (instead of small challenges like hovercards etc) and learn some JS along the way, and I was a little overwhelmed and sometimes felt lost as to where to start and what's important. But with this course the picture became much clearer. It was exactly what I needed, so thank you!

  • @SirMika9
    @SirMika9 Год назад +4

    That's so cool that you take your time and explain things well like with a friend. Really enjoyable to watch.

  • @DanteMishima
    @DanteMishima 3 года назад +2

    And you wonder why we call you king?
    How you knew this is what I needed is beyond me

  • @Anth-ony
    @Anth-ony 3 года назад +110

    Great video. I know you're the "CSS King", however, may I suggest that you create some very basic JS tutorials on the most common use-cases of said code? I've learned more about the basics of JS from you, as you touch on it in your videos, and how to implement them in my own projects than I have from people actually teaching straight up JS. You're very concise in how you create/explain those sections in your videos and I'm sure others would enjoy this as much as I would. Plus, it would be a bit of a change up for you to keep things fresh. Anyway, keep it up Kevin, you're one of my favourite RUclipsr!

    • @nv3796
      @nv3796 2 года назад +1

      +1 - things like how to add a secure login, etc; I know these will require databases, but not sure how to approach this problem

  • @abadlibadreddine1960
    @abadlibadreddine1960 2 года назад

    I started following this guys 2 months ago, i can now say that i fell in love with CSS

  • @cemrekur5700
    @cemrekur5700 3 года назад +50

    Great video , only problem that you may come across , you should also put visibility:hidden to nav-links to avoid tabbing over the screen and also to get around transition issues adding simple delay to transform can do the trick!

  •  3 года назад +1

    I can hear both hope and pleading in that sentence that 'Internet explorer is dead' :)
    Great video as always.

  • @Pavel-wj7gy
    @Pavel-wj7gy Год назад +2

    Sometimes I get to do navbar, footer or any kind of layout components that I forget how to do. On those days, I come to Kevin Powell channel for ideas and you never disappoint! Truly a joy to watch someone as fascinated by CSS as you.

  • @Petahsaur
    @Petahsaur 3 года назад +6

    Perfect timing Kevin,
    Just as I started to look into navbars and js last 2-3 days
    Thanks!

  • @sameerahlawat8480
    @sameerahlawat8480 2 года назад +1

    Mr. Kevin you teaches the beauty of of html css & js in beast mode .

  • @chawza8402
    @chawza8402 Год назад +1

    Thank you Kevin. This video showed me most of the fundamental that I need to start up my responsive web. other vids does not really explain how exactly how its done so they doesn't teach anything lol

  • @yajirushik2871
    @yajirushik2871 3 года назад +21

    6 months ago I wouldn't know how to do it, so I have subscribed to You. Actually I just have moved to end of video and after looking at final effect I can remake it from scratch. Thank You for the whole time which You are spending to teach us. Also still looking for front-end job but need to learn a lot more :D

  • @ajjo5513
    @ajjo5513 3 года назад +3

    This is so well explained. Love that you cover so many newer css properties, logical properties as well as best practices like aria. This is quality education.

  • @myfavoritemusic2428
    @myfavoritemusic2428 2 года назад

    I just started my HTML CSS and JS studies and my first project is creating my own personal CV site.
    This will help A LOT with that. Thanks!

  • @Yuri-qr7ml
    @Yuri-qr7ml Год назад

    So I started this tutorial a few months back as I thought it could be a fun project, got frustrated by the button for the nav not doing what it should be doing. Now my journey has only started earlier this year with little time but it seems that I had a . instead of a , in the js. So I wanted to come back and say, fantastic tutorial!

  • @nof123
    @nof123 2 года назад

    been learning css for 2 months and wow I learned alot from this vid

  • @patriotkz2308
    @patriotkz2308 Месяц назад

    Learnt a lot of great stuff in 50 minutes. Thank you, Mr. Powell!

  • @Santino11238
    @Santino11238 3 года назад +16

    Thank you, as a MERN stack dev I'm always looking to learn more styling. Appreciate the content.

  • @TiagoSilva-sq4gp
    @TiagoSilva-sq4gp 8 месяцев назад

    Man you are the bomb, i was almost giving up of programing but with your videos i finally got it, thank you

  • @aymenfyi
    @aymenfyi 2 года назад +19

    kevin, can't thank you enough for all the invaluable content you're consistently giving us. learning so much and enjoying every step along the way! ♥

  • @CarlWicker
    @CarlWicker 3 года назад +8

    I'm currently working on this project in ReactJS, great project with some interesting challenges. It's very handy to have the figma files.

  • @davidtaylorgarcia8556
    @davidtaylorgarcia8556 3 года назад +5

    Certainly you are as good as a web-dev-youtuber can be. Your clarifications are awesome, your content is incredibly well structured, even your voice tone gets on really well with the content. Thx a lot!

    • @KevinPowell
      @KevinPowell  3 года назад

      Thank you so much for the kind words!

    • @ALessOffensiveName
      @ALessOffensiveName 3 месяца назад

      #kevinPowell {
      tone: inherit;
      voice-tone: currentTone;
      border-radius: 50%;
      }

  • @vavaiva4080
    @vavaiva4080 2 года назад

    an answer for my misery… just had my class and i got a homework to do and this is a life saver… either God listen to my misery or my ipad tired to listen to my frustration…

  • @millermcdonell291
    @millermcdonell291 3 года назад +1

    You reall are CSS-king just like Kyle said. I have learned alot from you, thank you!

  • @sourav_96
    @sourav_96 3 года назад +1

    I am working on this project using scrimba platform
    Great course
    Doing this using reactjs
    Till now best course for me to learn design system 👍

  • @thinker-o5p
    @thinker-o5p 2 года назад

    your videos are kind of a one stop solution. thanks for explaining so well

  • @mirandasanchez4000
    @mirandasanchez4000 Год назад

    I’ve learnt SO much from this tutorial, it’s great to put knowledge into practice. Thanks! I wouldn’t mind watching a couple of ads if that help you whatsoever as a youtuber. Your content is priceless 😊

  • @ahooton
    @ahooton Год назад

    Kevin, I spotted something when implementing this in my project; if the mobile navigation is still in its expanded state, and the browser window is manually resized so that it passes into desktop view, then aria-expanded and data-visible will still remain set to 'true'. Additional JS logic can be added to ensure these attributes are set to 'false' if this scenario occurs.

  • @trentturner1546
    @trentturner1546 3 года назад +2

    Thanks for this tutorial Kevin. I’ve been watching you for a while and always enjoy learning from and watching you. This one helped me switch my default mobile navigation to use translate x instead of animating the left and right properties to show and hide my menus. A much better way of doing it. Thanks again.

  • @ibnulferdous
    @ibnulferdous 3 года назад

    CSS from another planet! Loved it!

  • @sheriffcrandy
    @sheriffcrandy Год назад +1

    This is a super awesome tutorial, with a couple caveats:
    1.) when the menu is opened and you click on one of the nav links to navigate to a new page, the menu stays open on the new page.
    2.) When window resizing, the menu suddenly opens and closes which I think is bad design
    3.) If you want to animate the hamburger icon from the three horizonal lines to an 'X' shape, you're going to have to rework the css since he is using an animation on an image.

    • @irinaka4351
      @irinaka4351 Год назад

      Could you tell me how can I get rid of this suddenly appearing menu when resizing the window? I've been thinking the whole day about it :((( Thank you!

    • @sheriffcrandy
      @sheriffcrandy Год назад

      @@irinaka4351 I had to re-work the css into a completely different implementation. Don't put the menu animation under the media query because you won't be able to prevent the menu from automatically appearing on page resize. Instead, make the menu appear or disappear on the hamburger button click using javascript. Use can use 'is-active' flags and toggle them on or off when the hamburger button is clicked with js and then use those in your css to manipulate the behavior.

  • @bunyameennurudeen173
    @bunyameennurudeen173 3 года назад +1

    Great lesson from a greater TechEducator

  • @chetankhulage
    @chetankhulage 3 года назад +1

    🥺🤤🤤🤤🤤🤤thankssss your channel is blessings for us🥺🥺🥺
    I'm in super love with CSS 🤤🤤🤤🤤🤤

  • @waardal
    @waardal 3 года назад

    My god just in time when i have to make a responsive portfolio as a school project, thank you so much!!

  • @06011983daniel
    @06011983daniel 2 года назад

    Thank you so much for sharing your knowledge. Even though I don't know how to speak English, I managed to understand the whole concept to reach your final goal.

  • @nicolasnog26
    @nicolasnog26 3 года назад +3

    Great video, you are inspiring me to get in more depth touch and play around with CSS instead of using already done templates for my projects!

  • @physlift9175
    @physlift9175 3 года назад +1

    I was literally just looking for a video from you on this yesterday!! Did the responsive navbar on my own....time to see how bad I messed up ha thanks kevin youre the goat

  • @제마이마
    @제마이마 2 года назад

    the design is just so clean and beautiful!! glad i found this, thanks for the video :D

  • @RayMaxey
    @RayMaxey 3 года назад

    Niiccee, I have been using this Space project to incorporate the navigation into my project this past weekend. You knew that I got a lil stuck and needed a quick push.

  • @JohnSnow-gi7iv
    @JohnSnow-gi7iv 3 года назад

    New things I learned from this video :
    gap
    inset
    min
    @support
    aspect ratio

  • @lonelysock3746
    @lonelysock3746 Год назад +2

    Great video! However, I would've really liked to see you go over the sr-only class you made; I've run into some issues with my button and I believe it's because there's some more information I'm missing

  • @alexanderdavin1655
    @alexanderdavin1655 2 года назад

    It's really helpful explaining every attribute/property as you go along, thanks for that.

  • @sssself
    @sssself Год назад

    You Are So Amazing Kevin!! Thanks for your existing👼

  • @rishabkumar5656
    @rishabkumar5656 2 года назад +2

    Hi Kev, this is one of the most easiest and well explained videos on youtube. Well done. Thanks for making it. 💖💖

  • @AbdicateDotNet
    @AbdicateDotNet 3 года назад +3

    As usual, a great, informative, and wonderful video!! 👏👏👏👏 Now I have to change my site! 😁

  • @Mohammadreza-Dolati
    @Mohammadreza-Dolati Год назад

    Sir , your videos are full of useful contents, thanks a for your helping, big ❤️ from Iran

  • @noblekram
    @noblekram 3 года назад +3

    i really like how you explain the details in a simple and understandable way! great tutorial Big Thanks

  • @shershonaj8860
    @shershonaj8860 Год назад +1

    Hey! Shouldn't the be closed by a tag?

  • @dannyr2976
    @dannyr2976 3 года назад +3

    Another great video! The site design and navigation looks so clean, I love it! Always learn a lot from watching your examples so thank you so much!

  • @oskrm
    @oskrm 3 года назад +24

    One note, in chrome the backdrop-filter blur is very bad for large blur values, and you get edge bleed. What works better is to use an SVG blur with URL value.

    • @shoumikkumbhakar6375
      @shoumikkumbhakar6375 3 года назад +3

      and firefox doesn't even support it

    • @oskrm
      @oskrm 3 года назад +3

      @@craigburton4447 using it in backdrop-filter: url(#svgBlur)
      Would work as you would expect

    • @craigburton4447
      @craigburton4447 3 года назад +1

      @@oskrm Ah sorry, I thought you meant it replaced the backdrop functionality, my bad.

    • @kevinwaag9976
      @kevinwaag9976 3 года назад

      it's what I normally use as well

  • @ismailsossi3239
    @ismailsossi3239 Год назад

    you are a sweet person, thank you so much for trying!

  • @raho2005
    @raho2005 2 года назад

    holy cow, i learned a lot of new and interesting css features today. Thanks!

  • @rheavictor7
    @rheavictor7 2 года назад

    Kevin, thanks man. I'm really improving m y CSS skills with your content!

  • @perkin524
    @perkin524 3 года назад +4

    Oh Yes! What an excellent tutorial - you were on top form for this one Kevin. So helpful to see modern CSS rules in actual use cases like this where you can not only see how they work but also how they save time and effort.

  • @alex-suciu
    @alex-suciu 3 года назад

    props for making this accessible

  • @kevinwaag9976
    @kevinwaag9976 3 года назад

    really elegant way of doing this. Well done!

  • @jacoblockwood4034
    @jacoblockwood4034 3 года назад

    I'm glad you dropped the "madly, deeply in love with CSS" for just "in love with CSS." it just sounds much less.. invasive? I don't know, but I think it was a good choice.

  • @StevenJGaming
    @StevenJGaming Год назад

    I love you Kevin. You are my secret mentor.

  • @aryan7069_
    @aryan7069_ 3 года назад

    I just did first challenge time management UI . I m glad i was able to do it without figma files

  • @xomgitsjay
    @xomgitsjay 3 года назад

    Yay an updated navbar video!

  • @markrobbins6985
    @markrobbins6985 2 года назад

    Love your show, Babe. Had to chuckle at your admission of time wasted troubleshooting a file that wasn't linked. My bane is editing the HTML, CSS and Javascript but NOT saving all three.

  • @whoisitidk3980
    @whoisitidk3980 2 года назад

    Thank you for sharing so many useful HTML, CSS, and JS attributes, it really helped me a lot

  • @thtasca
    @thtasca 2 года назад

    Oh man, I really need to upgrade my knowlege in css. A lot of atributes and selectors I'm not familiaryzed, I really stuck in time in some parts of front end ahuahuhauhaa. Your channel is so great, i'm not every time here but when I see one of your videos I'm always learn more, thx.

  • @Wynorrific1
    @Wynorrific1 Год назад

    I love your work everything is so easy. I just love it, I thought you were the css king but really your the code king.🤴you make it very easy to follow and learn god bless you and please keep making content

  • @luiscarloscorderopena7030
    @luiscarloscorderopena7030 2 года назад

    I learned some very usefil tip watching this, thank you!

  • @darthtorus9341
    @darthtorus9341 2 года назад +1

    for the test you could also do `primaryNav.setAttribute('data-visible', visibility === "true" ? "true" : "false")`

    • @KOBE42__
      @KOBE42__ 2 года назад +1

      I think Kevin just wanted to be more explicit and show how it works to people who might not be so familiar with JS.
      But you are right, I used the ternary operators too as I like how short and sweet they are for basic conditionals.

  • @SrckyBoi
    @SrckyBoi 3 года назад +2

    Cool video Kev. Just one correction, display: none doesn't remove element from the DOM, rather from the document flow. Keep up the good work.

  • @gabrielbaldez3178
    @gabrielbaldez3178 Год назад

    Excellent tutorial! Great things were taught and you explained in a very clear way.

  • @Felipe-53
    @Felipe-53 3 года назад

    Wow, this came out right in I needed it. Thanks, you're awesome!

  • @VitoOnYoutube
    @VitoOnYoutube 3 года назад +8

    Is there any advantage in making the span for "Menu" instead of setting aria-label=”Open menu” directly on the button?

  • @sphinxzgamingofficial
    @sphinxzgamingofficial 2 года назад

    I have been practicing the flex box whole right now 👍🏼

  • @Daniel-pg8ln
    @Daniel-pg8ln 2 года назад

    Dude, this was awesome!! Hello from Brasil 😁

  • @westonjp612
    @westonjp612 Год назад

    Just simply AWESOME! I love it!

  • @pranavyeole102
    @pranavyeole102 2 года назад

    This channel is really really useful

  • @roshanaryal310
    @roshanaryal310 3 года назад

    Great as always Kevin! I love your videos

  • @mevkok
    @mevkok 2 года назад

    If you're going to use Javascript with a booleans for visibility just check if the attribute is there or not...
    if (primaryNav.hasAttribute('data-visible')) {
    primaryNav.removeAttribute('data-visible');
    } else {
    primaryNav.setAttribute('data-visible', true);
    }
    or something like that.. without actually adding it to the html..

  • @tmkdesigner
    @tmkdesigner Год назад

    Thank you so much for all of your videos! Im learning so much!

  • @sudoalex
    @sudoalex 3 года назад

    Yesterday I watched your first ever video and it was about nav bars too

    • @KevinPowell
      @KevinPowell  3 года назад +1

      Hopefully this one was better 😂

  • @jen-vj4vq
    @jen-vj4vq 2 года назад

    Thank you for this video. I learned so many new things just watching it

  • @josbouma7924
    @josbouma7924 2 года назад +2

    Nice tutorial, but i've spotted some issues. TranslateX to the right can cause issues when printing the page.
    About the javascript, you might want to avoid using global variables with something like a self-executing anonymous function.

  • @aayushjamuar9900
    @aayushjamuar9900 3 года назад +1

    Dude 🥺🥺🥺🥺, i needed this sooo much

  • @cohdalton
    @cohdalton 2 года назад

    Absolutely brilliant video, there's so much in it to go through and learn. Thank you, fantastic job!

  • @GoldoMania.
    @GoldoMania. 2 года назад +1

    Hello Kevin! i realy love what you are doing, great job.

  • @antonkuchmii8048
    @antonkuchmii8048 2 года назад +3

    Thanks for a cool video, but why don't you use the 'dataset' property of the element instead of 'getAttribute'?

  • @ich6885
    @ich6885 2 года назад +2

    Hey, liked your tutorial and your use of attributes for the nav toggle, although I'd like to point out that you can also access data-attributes with
    nav.dataset.visible
    instead of
    nav.getAttribute('data-visible')
    :)

    • @visitforthemusic
      @visitforthemusic 2 года назад +1

      Indeed, this is one benefit of data-* over other attributes… we have read/write access via the dataset property.

    • @Mokhet
      @Mokhet Год назад +1

      nav.dataset.visible = nav.dataset.visible == "true" ? "false" : "true";

  • @SteveBonin
    @SteveBonin 3 года назад

    Hi Kevin, really nice! I learned a couple of things along the way. I am spending some time with your videos, especially Fridays, it gives me something to do that feels like work but is more fun. Thanks

  • @trungduchua1786
    @trungduchua1786 2 года назад

    Thanks Kevin, this video helps me a lot! As an UI/UX designer who wants to expand his knowledge to manage his work better, this kind of easy-to-understand tutorial is really a gift!

  • @jacquelinedawn9510
    @jacquelinedawn9510 2 года назад

    You're awesome! And you have a nice voice! Keep up the great work!

  • @ninopotskhoraia5373
    @ninopotskhoraia5373 2 года назад

    These glasses look really good on you

  • @everythingisfine9988
    @everythingisfine9988 3 года назад

    Nice slick design. Well done 👍✅

  • @stephaniepeters1354
    @stephaniepeters1354 3 года назад

    You could also just add/remove a CSS class with Javascript via classList.toggle(). I for one much prefer writing class selectors over attribute selectors. It also reduces the code in the event listener to a one-liner :) -> primaryNav.classList.toggle('.is-visible') (not counting the setting of the aria-expanded though, but that can also be simplified)

    • @KevinPowell
      @KevinPowell  3 года назад +2

      Yup, I used to do that, but I find on bigger projects this is easier to maintain. When you have more people working on something, the more clear something is, the better, even if it's more lines of code. In this case, if JS is involved, data attributes are a pretty standard way of letting people know that 🙂
      If it was a personal project, I'll be toggling classes for sure 🙂

  • @christopherboe
    @christopherboe 2 года назад

    @supports is rad! I have never used that before thank you!

  • @Oj-Gaming-vt6vd
    @Oj-Gaming-vt6vd Год назад

    Hey kevin :D Amazing vids mate, they are really helping me progress on my own website :D
    Keep up the good work :)