Селекторы, часть 1 / Испытание. Дуэль. [18/18]

.shooter-2 .target :nth-child(5) .lever {
display: none;
}

В блоке “.shooter-2”, во вложенном блоке “.target”, у дочернего элемента №5 (:nth-child(5)) (в данном случае - это “li”), блок, что находится под классом “.lever”, и всё, что внутри этого блока - не отображать {display: none;}

2 лайка

body {
width: 280px;
margin: 0;
padding: 0;
}

.shooter-1 {
padding: 55px 0 55px 0;
border-bottom: 1px dashed #cccccc;
background: #fcf8e3;
}

.shooter-2 {
padding: 55px 0 55px 0;
background: #d9edf7;
}

.target{
display: flex;
justify-content: space-between;
width: 200px;
height: 25px;
margin: 0 auto;
padding: 10px 15px 10px 15px;
border-radius: 2px;
background: white;
box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
overflow: hidden;
list-style: none;
}

li {
position: relative;
width: 22px;
height: 22px;
border: 1px solid black;
border-radius: 50%;
background: #333333;
font-size: 0;
}

.hitbox {
width: 10px;
height: 10px;
margin: 6px auto;
border-radius: 50%;
background: #999999;
}

.shooter-2 li:nth-child(2) .lever,
.shooter-2 li:nth-child(3) .lever,
.shooter-1 li:nth-child(1) .lever,
.shooter-1 li:nth-child(4) .lever
{
position: absolute;
top: -2px;
left: -2px;
width: 26px;
height: 26px;
border-radius: 50%;
background: #f5f5f5;
box-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
}

.shooter-2 li:nth-child(2) .lever span,
.shooter-2 li:nth-child(3) .lever span,
.shooter-1 li:nth-child(1) .lever span,
.shooter-1 li:nth-child(4) .lever span{
position: absolute;
top: 12px;
left: 11px;
width: 5px;
height: 25px;
background: #f5f5f5;
box-shadow:
-1px 15px 2px rgba(0, 0,0 , 0.3),
1px 15px 2px rgba(0, 0, 0, 0.3);
}
не поняла вообще для чего display: none и без него 100% .-.

1 лайк

Мне кажется, задание сложноватое неоправданно :slight_smile:

Сложно

body {
width: 280px;
margin: 0;
padding: 0;
}

.shooter-1 {
  padding: 55px 0 55px 0;

  background-color: #fcf8e3;
  border-bottom: 1px dashed #cccccc;
}

.shooter-2 {
  padding: 55px 0 55px 0;

  background-color: #d9edf7;
}

.target {
  display: flex;
  justify-content: space-between;
  width: 200px;
  height: 25px;
  margin: 0 auto;
  padding: 10px 15px 10px 15px;
  overflow: hidden;

  list-style: none;

  background-color: white;
  border-radius: 2px;
  box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
}

li {
  position: relative;

  width: 22px;
  height: 22px;

  font-size: 0;

  background-color: #333333;
  border: 1px solid black;
  border-radius: 50%;
}

.hitbox {
  width: 10px;
  height: 10px;
  margin: 6px auto;

  background-color: #999999;
  border-radius: 50%;
}

.lever {
  position: absolute;
  top: -2px;
  left: -2px;

  width: 26px;
  height: 26px;

  background-color: #f5f5f5;
  border-radius: 50%;
  box-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
}

.lever span {
  position: absolute;
  top: 12px;
  left: 11px;

  width: 5px;
  height: 25px;

  background-color: #f5f5f5;
  box-shadow: -1px 15px 2px rgba(0, 0, 0, 0.3), 1px 15px 2px rgba(0, 0, 0, 0.3);
}

.shooter-1 li:nth-child(2) .lever,
.shooter-1 li:nth-child(3) .lever,
.shooter-1 li:last-child .lever
{
  display: none;
}

.shooter-2 li:first-child .lever,
.shooter-2 li:nth-child(4) .lever,
.shooter-2 li:last-child .lever {
  display: none;
}
.shooter-1 li:nth-child(2) .lever,
.shooter-1 li:nth-child(3) .lever,
.shooter-1 li:last-child .lever
{
  display: none;
}

.shooter-2 li:first-child .lever,
.shooter-2 li:nth-child(4) .lever,
.shooter-2 li:last-child .lever {
  display: none;
}

можно заменить на:

.miss .lever,
.shooter-2 li:first-child  .lever,
.shooter-2 li:nth-child(4) .lever,
.shooter-2 li:nth-child(5) .lever {
  display: none;
}
1 лайк

Спасибо, попробую

body {
width: 280px;
margin: 0;
padding: 0;
}

.shooter-1 {
padding: 55px 0 55px 0;

background-color: #fcf8e3;
border-bottom: 1px dashed #cccccc;
}

.shooter-2 {
padding: 55px 0 55px 0;

background-color: #d9edf7;
}

.target {
display: flex;
justify-content: space-between;
width: 200px;
height: 25px;
margin: 0 auto;
padding: 10px 15px 10px 15px;
overflow: hidden;

list-style: none;

background-color: white;
border-radius: 2px;
box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
}

li {

position: relative;

width: 22px;
height: 22px;

font-size: 0;

background-color: #333333;
border: 1px solid black;
border-radius: 50%;
}

.hitbox {
width: 10px;
height: 10px;
margin: 6px auto;

background-color: #999999;
border-radius: 50%;
}

.shooter-1 li:nth-child(1) .lever,
.shooter-1 li:nth-child(4) .lever,
.shooter-2 li:nth-child(2) .lever,
.shooter-2 li:nth-child(3) .lever{
position: absolute;
top: -2px;
left: -2px;

width: 26px;
height: 26px;

background-color: #f5f5f5;
border-radius: 50%;
box-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
}
.shooter-1 li:nth-child(1) span,
.shooter-1 li:nth-child(4) span,
.shooter-2 li:nth-child(2) span,
.shooter-2 li:nth-child(3) span {
position: absolute;
top: 12px;
left: 11px;

width: 5px;
height: 25px;

background-color: #f5f5f5;
box-shadow: -1px 15px 2px rgba(0, 0, 0, 0.3), 1px 15px 2px rgba(0, 0, 0, 0.3);
}

selector {
display: none;
}

selector{
display: none;
}

selector {
display: none;
}

selector {
display: none;
}

У меня так вышло. зачем нужны последние none?

Рекомендую новым студентам сразу же списывать код и просто его разбирать. У Виталия Коваля правильный код - @Vitalii_Koval. После разбора кода становится всё встаёт на свои места, логично и понятно. Считаю испытание некорректным, студент ещё не готов решать достачно быстро данное испытание, так как не имеет достаточных знаний по CSS на данном этапе и поэтому сам код для него ещё ничего не значит, либо нужно было сделать больше подсказок. Некоторые люди писали, что сидели по 2 дня, пытаясь решить это задание - у меня нет этого времени, поэтому я практически сразу понял, что нужно подсмотреть код. Это задача - чистейшая головоломка, а не испытание с целью закрепления пройденного материала.

1 лайк

Если бы не ваш код я б наверное никогда не разобрался) Спасибо!

Очень не помешал бы разбор данного испытания от преподавателей.

Извиняюсь перед разработчиками. Оказывается, я занимался не по программе, поэтому это задание оказалось не под силу выполнить самому. Т.е. я перепрыгнул через несколько глав вперёд и поэтому был пробел в знаниях. Вот ссылка на правильную последовательность прохождения курса - https://htmlacademy.ru/program. Проблема в том, что я совершенно случайно нашёл эту программу, так как она находится в футере сайта.

И, конечно, советую обязательно брать подписку. Это крайне адекватная цена для курса такого уровня. Курс Кексби просто потрясающий - в нём вы не просто закрепляете изученный материал, но и верстаете сами сайт.

Совет разработчиками: вынести кнопку программы курса с правильной последовательностью на видное место.

Можно у вас спросить? Мне не совсем понятно, как вот эта часть кода работает.

Всё работает отлично, но как? Для второго стрелка мы указывали display: none только для 1, 4 и 5 мишеней, а тут просто - .miss .lever { display: none; }
Буду очень благодарна за объяснение, ибо сама в упор не вижу, в чём прикол :slight_smile:

.miss .lever {
  display: none;
}

Правило применяется для всех .lever внутри .miss.
На картинке внизу справа видно, что таких элементов три.


.shooter-2 li:nth-child(1) .lever,
.shooter-2 li:nth-child(4) .lever,
.shooter-2 li:nth-child(5) .lever {
  display: none;
}

Здесь пришлось конкретно указывать для каких .lever должно работать правило.

Без этого правила можно было бы обойтись,
если бы второму стрелку в HTML можно было бы добавить
для элементов li класс .miss.

1 лайк

Спасибо!) Теперь всё встало на свои места.

У меня получилось данное испытание пройти таким способом, до конца не понимаю для чего необходим: Selector {display: none}

body {
width: 280px;
margin: 0;
padding: 0;
}

.shooter-1 {
padding: 55px 0 55px 0;

background-color: #fcf8e3;
border-bottom: 1px dashed #cccccc;
}

.shooter-2 {
padding: 55px 0 55px 0;

background-color: #d9edf7;
}

ul {
display: flex;
justify-content: space-between;
width: 200px;
height: 25px;
margin: 0 auto;
padding: 10px 15px 10px 15px;
overflow: hidden;

list-style: none;

background-color: white;
border-radius: 2px;
box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
}

li {
position: relative;

width: 22px;
height: 22px;

font-size: 0;

background-color: #333333;
border: 1px solid black;
border-radius: 50%;
}

.shooter-1 li:nth-child(2) > .hitbox,
.shooter-1 li:nth-child(3) > .hitbox,
.shooter-1 li:nth-child(5) > .hitbox,
.shooter-2 li:nth-child(1) > .hitbox,
.shooter-2 li:nth-child(4) > .hitbox,
.shooter-2 li:nth-child(5) > .hitbox {
width: 10px;
height: 10px;
margin: 6px auto;

background-color: #999999;
border-radius: 50%;
}

.shooter-1 li:nth-child(1) .lever,
.shooter-1 li:nth-child(4) .lever,
.shooter-2 li:nth-child(2) .lever,
.shooter-2 li:nth-child(3) .lever
{
position: absolute;
top: -2px;
left: -2px;

width: 26px;
height: 26px;

background-color: #f5f5f5;
border-radius: 50%;
box-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
}

.shooter-1 li:nth-child(1) span,
.shooter-1 li:nth-child(4) span,
.shooter-2 li:nth-child(2) span,
.shooter-2 li:nth-child(3) span {
position: absolute;
top: 12px;
left: 11px;

width: 5px;
height: 25px;

background-color: #f5f5f5;
box-shadow: -1px 15px 2px rgba(0, 0, 0, 0.3), 1px 15px 2px rgba(0, 0, 0, 0.3);
}

selector {
display: none;
}

selector {
display: none;
}

selector {
display: none;
}

selector {
display: none;
}

ну вы сделали везде дырки, явно указали где в них есть мишени с точкой, а где просто “закрывашки” (под которой нет мишени). а по идее должны были сделать везде мишени и везде “закрывашки”, а с помощью {display: none} убирать “закрывашки”

Ага, теперь понял, спасибо, переделаю:+1:

Спасибо за код, он мне помог разобраться, но по-моему у Вас не используется селектор “margin-right: 0;” и Вы доработали свойства в селекторе “.target”
display: flex;
justify-content: space-between;

Мой кодБ не без Вашей помощи)))) использует все селекторы, без доработки в свойствах и выдает 100%:
body {
width: 280px;
margin: 0;
padding: 0;
}

.shooter-1 {
padding: 55px 0 55px 0;
border-bottom: 1px dashed #cccccc;
background: #fcf8e3;
}

.shooter-2 {
padding: 55px 0 55px 0;
background: #d9edf7;
}

.target {
width: 200px;
height: 25px;
margin: 0 auto;
padding: 10px 15px 10px 15px;
border-radius: 2px;
background: white;
box-shadow: 0 0 3px rgba(0, 0, 0, 0.5);
overflow: hidden;
list-style: none;
}

li{
position: relative;
float: left;
width: 22px;
height: 22px;
margin-right: 20px;
border: 1px solid black;
border-radius: 50%;
background: #333333;
font-size: 0;
}

.shooter-2 :nth-child(5), .shooter-1 :nth-child(5){
margin-right: 0;
}

.hitbox{
width: 10px;
height: 10px;
margin: 6px auto;
border-radius: 50%;
background: #999999;
}

.lever{
position: absolute;
top: -2px;
left: -2px;
width: 26px;
height: 26px;
border-radius: 50%;
background: #f5f5f5;
box-shadow: 0 0 2px rgba(0, 0, 0, 0.5);
}

i{
position: absolute;
top: 12px;
left: 11px;
width: 5px;
height: 25px;
background: #f5f5f5;
box-shadow:
-1px 15px 2px rgba(0, 0,0 , 0.3),
1px 15px 2px rgba(0, 0, 0, 0.3);
}

.miss .lever{
display: none;
}

.shooter-2 .target :nth-child(1) .lever {
display: none;
}

.shooter-2 .target :nth-child(4) .lever {
display: none;
}

.shooter-2 .target :nth-child(5) .lever {
display: none;
}