QR Code Component built with React, Tailwind, setup with Vite
Design comparison
Solution retrospective
I couldn't get the card to center on the screen. I spent a couple hours on this trying different things like margin-auto and align-items-center on a parent div and looking around online, but to no avail. Hopefully here someone can help me. Also, are there things I can do to tidy up my code? Thanks guys!
Community feedback
- @denieldenPosted about 2 years ago
Hello Wavy, You have done a good work! π
Some little tips to improve your code:
- add
main
tag and wrap the card for improve the Accessibility - also you can use
article
tag instead of a simplediv
to the container card for improve the Accessibility - add descriptive text in the
alt
attribute of the images - remove all unnecessary code, the less you write the better as well as being clearer: for example the
div
container of image - use flexbox to the body to center the card. Read here -> best flex guide
- after, add
min-height: 100vh
to body because Flexbox aligns child items to the size of the parent container - use
h1
to the title of card - instead of using
px
use relative units of measurement likerem
-> read here
Keep learning how to code with your amazing solutions to challenges.
Hope this help π and Happy coding!
Marked as helpful2 - add
- @Raja-JunaidPosted about 2 years ago
Hi Wavy! Congratulation on completing this challenge. Welcome to our front-end community.
Great job to complete this challenge. I really like your solution.
I have a solution for your question when I make this challenge I also struggle with this problem so I do that I center my full card with position layout. Just add the main container in your full code and then add
position: absolute;
thentop:100px; left:100px:
set the position as you want and addposition:relative;
in body.I hope this helps you
Marked as helpful2@denieldenPosted about 2 years ago@Raja-Junaid centering an element with
absolute
positioning is now deprecated, it uses modern css likeflexbox or grid
πMarked as helpful1 - @correlucasPosted about 2 years ago
πΎHi @wavylmao, congratulations on your solution!π Welcome to the Frontend Mentor Coding Community!
Great solution and a great start! From what I saw youβre on the right track. Iβve few suggestions for you that you can consider adding to your code:
1.Fix the alignment. The best way make this alignment is by using
FLEXBOX
. The first step, is to addmin-height: 100vh
to make the body height size becomes 100% of the viewport height, this way you make sure the container will be aligned vertically since thebody
will display ever 100% of the screen height. After that add two flex properties to make the alignmentdisplay: flex
/align-items: center;
/justify-content: center;
. If you're using the attribution you need to addflex-direction: column
to make the attribution stays under the QR Code component. See the code below:body { min-height: 100vh; background-color: #d6e2f0; display: flex; align-items: center; justify-content: center; }
2.Add
<main>
instead of<div>
to wrap the card container. This way you show that this is the main block of content and also replace the div with a semantic tag.3.Replace the
<h2>
containing the main title with<h1>
note that this title is the main heading for this page and every page needs one h1 to show which is the most important heading. Use the sequence h1 h2 h3 h4 h5 to show the hierarchy of your titles in the level of importance, never jump a level.4.Clean your code by removing some unnecessary divs, most of the content can stand alone without a div. Use div only for blocks that need a special alignment or the content needs a special positioning.
Here's my solution for this challenge if you wants to see how I build it: https://www.frontendmentor.io/solutions/qr-code-component-vanilla-cs-js-darklight-mode-nS2aOYYsJR
βοΈ I hope this helps you and happy coding!
Marked as helpful1 - @aecio-netoPosted about 2 years ago
Hi Wavy,
You could use
flexbox
to center your solution. Search forflex
,flex-direction
andjustify-content
.I watched a great tutorial when I did this.
CSS Flexbox in 20 minutes: https://www.youtube.com/watch?v=JJSoEo8JSnc
Hope this helps.
Thanks
Marked as helpful1
Please log in to post a comment
Log in with GitHubJoin our Discord community
Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!
Join our Discord