CSS CSS Layout Basics Controlling Layout with CSS Display Modes CSS Display Modes Challenge

Robert Rydlewski
Robert Rydlewski
3,826 Points

I have a hard time to understand the rules in CSS I think JavaScript is easier. :( So my question.

I can useCSS li, a { display: inline-block; } Have the-same result as ```CSS .main-nav li { display: inline-bloc

style.css
/* Complete the challenge by writing CSS below */

header {
  text-align: center;
}
.logo {
  width: 110px;
  margin: auto;
}
li,
a{
  display: inline-block;
}
index.html
<!DOCTYPE html>
<html>
<head>
    <title>Getting Started with CSS Layout</title>
    <link href='https://fonts.googleapis.com/css?family=Varela+Round' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="page.css">
    <link rel="stylesheet" href="style.css">
</head>
    <body>
    <div class="container">
        <header>
            <img class="logo" src="city-logo.svg" alt="logo">
            <ul class="main-nav">
                <li><a href="#">Ice cream</a></li>
                <li><a href="#">Donuts</a></li>
                <li><a href="#">Tea</a></li>
                <li><a href="#">Coffee</a></li>
            </ul>
        </header>
    </div>
    </body>
</html>

2 Answers

Steven Parker
Steven Parker
207,602 Points

Those might look the same with this specific HTML but they do very different things. "li, a" targets every list item on the page, but it also targets every anchor element. Targeting the anchors is not part of the instructions but since they all just happen to be inside the list items, there's no visual difference.

But ".main-nav li" (the correct answer for this challenge) targets only list items that are inside the element with class "main-nav". Right now, that's all of them; but if the HTML were extended later with other lists, the other selector would target them also when it's not intended to.

Robert Rydlewski
Robert Rydlewski
3,826 Points

You're the man !!!! Thank you :) 🙏