Design comparison
Solution retrospective
Thank you
Community feedback
- @HeyChobePosted 10 months ago
Nice code bro! I recommend you to make the css styles in a different file (not inside the html file), just for better practice :D.
2 - @Islandstone89Posted 10 months ago
Hi. I'm afraid your solution has quite a few issues, especially in the CSS. Here is what needs to be improved:
HTML:
-
Every webpage needs a
<main>
that wraps all of the content, except for<header>
andfooter>
. This is vital for accessibility, as it helps screen readers identify the "main" section of a page. Change.cover-box
into a<main>
. I would use a more descriptive class name, likecard
. And you don't need to wrap the card content in a<div>
, so I would remove that as well. -
The image has meaning, so it must have proper alt text. Write something short and descriptive, without including words like "image" or "photo". Screen readers start announcing images with "image", so an alt text of "image of qr code" would be read like this: "image, image of qr code". The alt text must also say where it leads(frontendmentor.io).
-
Headings should always be in order, so you never start with a
<h3>
. Change it into a<h1>
. -
Do not use
<br>
to force text onto a new line. The text should flow naturally, and all styling, including space between elements, should be done in the CSS. -
.attribution
should be a<footer>
, and its text must be wrapped in a<p>
.
CSS:
-
As mentioned above, it is best practice to write CSS in a separate file, often called
style.css
. Create one in the same folder as theindex.html
, and link to it in the<head>
:<link rel="stylesheet" href="style.css">
. -
It's good practice to include a CSS Reset at the top.
-
Use the style guide to find the correct
font-family
andbackground-color
. -
Add around
1rem
ofpadding
on thebody
, so the card doesn't touch the edges on small screens. -
On
body
, removemargin-left
. -
To center the card horizontally and vertically, use Flexbox on the body:
display: flex; flex-direction: column; justify-content: center; align-items: center; min-height: 100svh;
-
Remove all widths and heights in
px
and%
. -
Add a
max-width
of around20rem
on the card, to prevent it from getting too wide on larger screens. -
black
is the default color, so there is no need to declare it. -
On the image, add
display: block
and changemax-width
to100%
. Remove the height and the margin. -
To create the space between the image and the edge of the card, set
padding
on all 4 sides of the card. -
Remove the
border
fromdiv
. -
font-size
must never be in px. This is bad for accessibility, as it prevents the font size from scaling with the user's default setting in the browser. Use rem instead. -
Since all of the text should be centered, you only need to set
text-align: center
on the body, and remove it elsewhere. The children will inherit the value. -
There is no need for any pseudo-elements in this challenge, so delete that. There is also no need for
position: relative
,overflow: hidden
orz-index: 1
.
1 -
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