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

NFT Preview Card Component using Flexbox

Kevin H. 150

@kevinx9000

Desktop design screenshot for the NFT preview card component coding challenge

This is a solution for...

  • HTML
  • CSS
1newbie
View challenge

Design comparison


SolutionDesign

Solution retrospective


I discovered I had to nest more <div>s than expected in order to get the desired layout through Flexbox. It felt like my HTML markup got more cluttered than it should that way, but it seemed to be the only way I could accomplish it. The hover overlay effect on the main image would have been a real challenge, but luckily a completed project from a Udemy course had a similar design, so I went back to that to refresh my memory and was able to pull it off. I didn't seem to need to create a mobile breakpoint because the size of the card was small enough to retain the same look on mobile.

Community feedback

@0xabdulkhaliq

Posted

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.

COMPONENT MEASUREMENTS 📐:

  • The width: 100% property for main element is not necessary. because it's a block level element which will take the full width of the page by default.
  • Use min-height: 100vh for main instead of height: 100vh. Setting the height: 100vh may result in the component being cut off on smaller screens.
  • For example; if we set height: 100vh then the main will have 100vh height no matter what. Even if the content spans more than 100vh of viewport.
  • But if we set min-height: 100vh then the main will start at 100vh, if the content pushes the main beyond 100vh it will continue growing. However if you have content that takes less than 100vh it will still take 100vh in space.

.

I hope you find this helpful 😄 Above all, the solution you submitted is great !

Happy coding!

Marked as helpful

0

Kevin H. 150

@kevinx9000

Posted

Thank you for the feedback and breakdown, @0xAbdulKhalid ! I do get confused on best practices for sizing, height vs min-height etc. and when best to use, so I appreciate your explanation!

0
P

@Ibarra11

Posted

I think overall you did a good job on structuring your HTML and didn't see no issue with the divs. One thing I did notice is that on your .avatar-section class you don't need to include flex-direction: row and justify-content: flex-start. Those are the default values when you use display: flex. Also, there are some situations where you use padding or margin to distance flex children where you could use gap property.

Marked as helpful

0

Kevin H. 150

@kevinx9000

Posted

Thank you @Ibarra11 for taking a look at the HTML structure, and for the feedback! For the flex-direction, etc., I was probably stating things explicitly in order to keep track of all the Flex-boxes I was adding, and likely used that as a method to keep everything straight. So I went back to see about cleaning that up and that adjustment allowed me to eliminate about ten lines of code overall with that alone, so on a much larger project that would definitely add up, and will be useful to remember to be more economical going forward. Also, I thought gap was just a Grid property, so it's good to know that can used for Flex as well. Thank you for the feedback!

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