Design comparison
SolutionDesign
Solution retrospective
What did you find difficult while building the project?
- Using the right CSS attributes to get the thing done.
Which areas of your code are you unsure of?
- I am not sure if I used too many CSS attributes than required.
- Note sure how to vertically align, do I use margin top or some other method I am not aware of.
Do you have any questions about best practices?
- I would like to see different solutions that community member used. Learn from those and try to understand in which scenario one could be better over the other.
Community feedback
- @AWBSCodePosted over 1 year ago
1- you should center the component using
flex
2- you forgot to put the given background color. thebody
should be like this:body { min-height: 100vh; display: flex; justify-content: center; align-items: center; background-color: blue; /* Put the given color in place of blue */ }
4- you forgot to remove basic styles
* { margin: 0; padding: 0; box-sizing: border-box; }
3 - you forgot to make a font family:
0 - @0xabdulkhaliqPosted over 1 year ago
Hello there 👋. Congratulations on successfully completing the challenge! 🎉
- I have other recommendations regarding your code that I believe will be of great interest to you.
HTML 🏷️:
- This solution generates accessibility error reports, "All page content should be contained by landmarks" is due to
non-semantic
markup, which causes lacking of landmark for a webpage
- So fix it by replacing the
<div class="qr-code-wrapper">
element with the semantic element<main>
along with<div class="attiribution">
into a<footer>
element in yourindex.html
file to improve accessibility and organization of your page.
- What is meant by landmark ?, They used to define major sections of your page instead of relying on generic elements like
<div>
or<span>
. They are use to provide a more precise detail of the structure of our webpage to the browser or screen readers
- For example:
- The
<main>
element should include all content directly related to the page's main idea, so there should only be one per page - The
<footer>
typically contains information about the author of the section, copyright data or links to related documents.
- The
HEADINGS ⚠️:
- This solution has also generated accessibility error report due to lack of level-one heading
<h1>
- Every site must want at least one
h1
element identifying and describing the main content of the page.
- An
h1
heading provides an important navigation point for users of assistive technologies, allowing them to easily find the main content of the page.
- So we want to add a level-one heading to improve accessibility by reading aloud the heading by screen readers, you can achieve this by adding a
sr-only
class to hide it from visual users (it will be useful for visually impaired users)
CSS 🎨:
- let me explain, How you can easily center the component for better layout.
- We don't need to use
margin
andpadding
to center the component both horizontally & vertically. Because usingmargin
orpadding
will not dynamical centers our component at all states
- To properly center the component in the page, you should use
Flexbox
orGrid
layout. You can read more about centering in CSS here 📚.
- For this demonstration we use css
Grid
to center the component
body { min-height: 100vh; display: grid; place-items: center; }
- Now remove these styles, after removing you can able to see the changes
.qr-code-wrapper { margin: auto; }
.
I hope you find this helpful 😄 Above all, the solution you submitted is great !
Happy coding!
0
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