Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

HTML How to Make a Website Responsive Web Design and Testing Build a Three Column Layout

Christos Symeou
Christos Symeou
22,754 Points

nth-child code will not work

Much as I try , I can't get the n-th child code to work. I've tried this in every browser I can, and still it doesn't work.

If I use the 4n version, the 4th image will still not clear.

If I use the (3n+1) version, all the images appear one below the other in a single column.

As far as I can see my code is identical to the instructions:

Here's my responsive css:

@media screen and (min-width: 480px) { 

  #gallery li{ 
    width: 28.333%;
  } 

  #gallery li:nth-child(4n) {
    clear: left;
  }
}

Here's my main css

/*****************
GENERAL
*****************/

body {
  font-family: 'Open Sans', sans-serif;
}

a {
  text-decoration:none;
}


#wrapper {
  max-width: 940px;
  margin: 0 auto;
  padding: 0 5%;
}

img {
  max-width: 100%;
}

h3{
 margin: 0 0 1em 0; 
}
/*****************
HEADING
*****************/

header {
  float: left;
  margin: 0 0 30px 0;
  padding: 5px 0 0 0;
  width: 100%;
}

#logo{
  text-align: center;
  margin: 0;
}

h1 {
  font-family: 'Changa One', sans-serif;
  margin: 15px 0;
  font-size: 1.75em;
  font-weight: bold;
  line-height: 0.8em;
}

h2 {
  font-size: 0.75em;
  margin: -5px 0 0;
  font-weight: normal;
}

/*****************
NAVIGATION
*****************/

nav {
  text-align: center;
  padding: 10px 0;
  margin: 20px 0 0;
}

nav ul {
  list-style:none;
  margin: 0 10px;
  padding: 0;
}

nav li{
  display: inline-block;
}

nav a{
  font-weight: 800;
  padding: 15px 10px;
}

/*****************
FOOTER
*****************/

footer{
  font-size: 0.75em;
  text-align: center;
  clear: both;
  padding-top: 50px;
  color: #ccc;
}

.social-icon {
  width: 20px;
  height: 20px;
  margin: 0 5px;
}

/*****************
PAGE: PORTFOLIO
*****************/

#gallery {
  margin: 0;
  padding: 0;
  list-style: none;
}

#gallery li{
  float: left;
  width: 45%;
  margin: 2.5%;
  background-color: #f5f5f5;
  color: #bdc3c7;
}

#gallery a li p {
  margin: 0;
  padding: 5%;
  font-size: 0.75em;
  color: #bdc3c7;
}

/*****************
PAGE: ABOUT
*****************/

.profile-photo {
  display: block;
  max-width: 150px;
  margin: 0 auto 30px;
  border-radius: 100%;
}

/*****************
PAGE: CONTACT
*****************/

.contact-info{
  list-style: none;
  padding:0;
  margin:0;
  font-size:0.9em;
}

.contact-info a {
  display: block;
  min-height:20px;
  background-repeat:no-repeat;
  background-size: 20px 20px;
  padding: 0 0 0 30px;
  margin: 0 0 10px;
}

.contact-info li.phone a{
  background-image: url('../img/phone.png');
}

.contact-info li.mail a{
  background-image: url('../img/mail.png');
}

.contact-info li.twitter a{
  background-image: url('../img/twitter.png');
}
/*****************
COLORS
*****************/

/* site body*/

body {
 background-color: #fff;
  color: #999;
}

/* green header*/
header {
  background: #6ab47b;
  border-color: #599a68;
}

/*logo text*/
h1, h2 {
  color: #fff;  
}

/* nav background on mobile devices*/
nav {
  background: #599a68;
}

/*Anchor links*/
a {
  color: #6ab47b;
}

/*nav link*/
nav a, nav a:visited {
  color: #fff;
}

/*selected nav link*/
nav a.selected, nav a:hover{
 color:#32673f; 
}

And here's my HTML

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Christos Symeou | Designer</title>
    <link rel="stylesheet" href="css/normalize.css">
    <link href='http://fonts.googleapis.com/css?family=Changa+One|Open+Sans:400italic,700italic,400,700,800' rel='stylesheet' type='text/css'>
    <link rel="stylesheet" href="css/main.css">
    <link rel="stylesheet" href="css/responsive.css">
  </head>
  <body>
    <header>
      <a href="index.html" id="logo">
        <h1>Christos Symeou</h1>
        <h2> Designer </h2>
      </a>
      <nav>
        <ul>
          <li><a href="index.html" class="selected">Portfolio</a></li>
          <li><a href="about.html">About</a></li>
          <li><a href="contact.html">Contact</a></li>
        </ul>
      </nav>
    </header>
    <div id="wrapper">
      <section>
        <ul id="gallery">
          <a href="img/numbers-01.jpg">
            <li><image src="img/numbers-01.jpg" alt=""></image>
            <p>Experimentation with color and texture</p></li>
          </a>
          <a href="img/numbers-02.jpg">
            <li><image src="img/numbers-02.jpg" alt=""></image>
            <p>Playing with blending modes in Photoshop</p></li>
          </a>
          <a href="img/numbers-06.jpg">
            <li><image src="img/numbers-06.jpg" alt=""></image>
            <p>Trying to create an 80's style of glows</p></li>
          </a>
          <a href="img/numbers-09.jpg">
            <li><image src="img/numbers-09.jpg" alt=""></image>
            <p>Drips created using photoshop brushes</p></li>
          </a>
          <a href="img/numbers-12.jpg">
            <li><image src="img/numbers-12.jpg" alt=""></image>
            <p>Creating shapes using repetition</p></li>
          </a>
        </ul>
      </section>
      <footer>
        <a href="http://twitter.com"><img src="img/twitter-wrap.png" alt="Twitter Logo" class="social-icon"></a>
        <a href="http://facebook.com"><img src="img/facebook-wrap.png" alt="Facebook Logo" class="social-icon"></a>
        <p> &copy; 2014 Christos Symeou. </p>
      </footer>
    </div>
  </body>
</html>

2 Answers

The below should fix your issue, as you can see you are encasing you <il> tags with <a> tags.

This will cause you not to be able to select the <li> with the nth-child selector

  <section>
    <ul id="gallery">

        <li><a href="img/numbers-01.jpg"><image src="img/numbers-01.jpg" alt=""></image>
        <p>Experimentation with color and texture</p></a></li>


        <li><a href="img/numbers-02.jpg"><image src="img/numbers-02.jpg" alt=""></image>
        <p>Playing with blending modes in Photoshop</p></a></li>


        <li><a href="img/numbers-06.jpg"><image src="img/numbers-06.jpg" alt=""></image>
        <p>Trying to create an 80's style of glows</p> </a></li>


        <li><a href="img/numbers-09.jpg"><image src="img/numbers-09.jpg" alt=""></image>
        <p>Drips created using photoshop brushes</p></a></li>


        <li><a href="img/numbers-12.jpg"><image src="img/numbers-12.jpg" alt=""></image>
        <p>Creating shapes using repetition</p></a></li>

    </ul>
  </section>
Christos Symeou
Christos Symeou
22,754 Points

Thank you! That did it. I had absolutely no idea what was wrong with it! Am I to assume then that for the n-th-child selector to work, the child has to be directly descendent from the parent elelement, it can't be nested within another element?