Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found
Not Found

Submitted

Responsive product preview card

Haminimuri 200

@Kiranchai

Desktop design screenshot for the Product preview card component coding challenge

This is a solution for...

  • HTML
  • CSS
1newbie
View challenge

Design comparison


SolutionDesign

Solution retrospective


Hi coders,

I was having problems with a placement of the picture. I ended up using width/height: 100% and object-fit: cover, and I am not sure if this is the best practice. Also, I am not sure if using the <picture> element is the best here, or should I use a different method. I would like to ask you if my code/class names are somehow readable. Would you recommend me some best practices to make the css look cleaner? Thank you in advance!

Community feedback

Lucas 👾 104,560

@correlucas

Posted

👾Hello @Kiranchai, Congratulations on completing this challenge!

Your solution its almost done and I’ve some tips to help you to improve it:

I saw that you’ve used flexbox to place the content and create the layout.

I think the best way to build this component with two columns is by using GRID LAYOUT since it is simpler to manage the columns and then create the media query for mobile. Here’s the steps to create it with grid create the main block to hold all the content (you can use <main> to wrap), set its width as max-width: 900px (it's the container size) and display: grid / grid-template-column: 1fr 1fr(this means that your component will have two columns with 50% of the container width each thats 450px). To manage the column with the text use flexbox and gap to give it the spacing between the texts or use padding-bottom to separate them.

Then to create the mobile version, all you need to do is to change the container flow vertically with grid-template-column: 1fr.

The image is not responsive yet, a quick way to make any image responsive and respecting the container size is to add display: block and max-width: 100% to the <img> selector. To improve the responsiveness even more adding the auto-crop property you can add object-fit: cover to make the image crop inside the container its inside.

img {
    display: block;
    object-fit: cover;
    max-width: 100%;
}

✌️ I hope this helps you and happy coding!

Marked as helpful

0

Please log in to post a comment

Log in with GitHub
Discord logo

Join 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