Learn CSS Transforms by Building a Penguin - Step 34

Tell us what’s happening:
Describe your issue in detail here.

I was able to solve the challenge so that’s not the problem I was facing here. What I’m not understanding is why I had to use the selector that I did to solve the challenge. The challenge asked to:

“Target all descendent elements of the .penguin element, and give them a position of absolute.”

Does an element have to be nested inside of another to be a descendant? I ask this because the .penguin element has two div elements nested inside of it. So to select those two div elements I used this selector: .penguin div { } That did not pass. But this selector did: .penguin * { }. Wouldn’t these two selectors accomplish the same goal?
Your code so far

<!-- file: index.html -->
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="stylesheet" href="./styles.css" />
    <title>Penguin</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  </head>

  <body>
    <div class="left-mountain"></div>
    <div class="back-mountain"></div>
    <div class="sun"></div>
    <div class="penguin">
      <div class="penguin-head"></div>
      <div class="penguin-body"></div>
    </div>

    <div class="ground"></div>
  </body>
</html>
/* file: styles.css */
body {
  background: linear-gradient(45deg, rgb(118, 201, 255), rgb(247, 255, 222));
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100vh;
  overflow: hidden;
}

.left-mountain {
  width: 300px;
  height: 300px;
  background: linear-gradient(rgb(203, 241, 228), rgb(80, 183, 255));
  position: absolute;
  transform: skew(0deg, 44deg);
  z-index: 2;
  margin-top: 100px;
}

.back-mountain {
  width: 300px;
  height: 300px;
  background: linear-gradient(rgb(203, 241, 228), rgb(47, 170, 255));
  position: absolute;
  z-index: 1;
  transform: rotate(45deg);
  left: 110px;
  top: 225px;
}

.sun {
  width: 200px;
  height: 200px;
  background-color: yellow;
  position: absolute;
  border-radius: 50%;
  top: -75px;
  right: -75px;
}

.penguin {
  width: 300px;
  height: 300px;
  margin: auto;
  margin-top: 75px;
  z-index: 4;
  position: relative;
}



.penguin-head {
  width: 50%;
  height: 45%;
  background: linear-gradient(
    45deg,
    gray,
    rgb(239, 240, 228)
  );
  border-radius: 70% 70% 65% 65%;
}

.penguin-body {
  width: 53%;
  height: 45%;
  background: linear-gradient(
    45deg,
    rgb(134, 133, 133) 0%,
    rgb(234, 231, 231) 25%,
    white 67%
  );
  border-radius: 80% 80% 100% 100%;
}

.ground {
  width: 100vw;
  height: 400px;
  background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));
  z-index: 3;
  position: absolute;
  margin-top: -58px;
}

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:107.0) Gecko/20100101 Firefox/107.0

Challenge: Learn CSS Transforms by Building a Penguin - Step 34

Link to the challenge:

in theory yes, if you wanted to target only divs that are descendants of the .penguin element then .penguin div should work.
However, read the text of the exercise carefully and you will notice it says “Target -all- descendant elements” not just divs.
So your solution would fail as soon as any other type of element is added to the .penguin element’s descendants.
(which may or may not happen later on in the project, my point being only that perhaps this exercise is making you practice different things just for the sake of practicing)

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.