Строка инпут не уменьшается ,16/23

html,

body {
margin: 0;
padding: 0;
box-sizing:border-box;
}

body {
width: 520px;
min-height: 270px;
padding: 20px;
font-size: 14px;
line-height: 1.5;
font-family: Arial, sans-serif;
color: white;
background-color: #3a78a1;
background-image: url("/assets/course9/grid.png");
background-repeat: repeat;
background-position: -80px -80px;
}

input[type=“text”] {
height: 34px;
font-size: 18px;
font-family: Arial, sans-serif;
border: 2px solid #cccccc;
border-radius: 5px;
margin: 20px;
padding:0px 10px;

}

.block {
background: rgba(0, 255, 255, 0.2);
width:516px;

}
.block1 {border: 2px solid;

}

.block2 {
margin: 18px;
width:480px;
}


Добрый день, подскажите пожалуйста почему блок импут не уменьшается,я же задал свойство box-sizing:border-box;
https://htmlacademy.ru/courses/44/run/16

а вы это свойство для кого задали? для боди, а хотите, чтобы оно сработало к инпуту.

Я думал оно для всех вложенных блоков будет действовать, я не прав ?

нет, это свойство не наследуется

html,

body {
margin: 0;
padding: 0;
box-sizing:border-box;
}

body {
width: 520px;
min-height: 270px;
padding: 20px;
font-size: 14px;
line-height: 1.5;
font-family: Arial, sans-serif;
color: white;
background-color: #3a78a1;
background-image: url("/assets/course9/grid.png");
background-repeat: repeat;
background-position: -80px -80px;
}

input[type=“text”] {
height: 34px;
font-size: 18px;
font-family: Arial, sans-serif;
border: 2px solid #cccccc;
border-radius: 5px;
margin: 20px;
padding:0px 10px;
box-sizing:border-box;

}

.block {
background: rgba(0, 255, 255, 0.2);
width:516px;

}
.block1 {border: 2px solid;

}

.block2 {
margin: 18px;
width:480px;
}


Сдвинулась, но не до конца

ну почему же, до конца. просто вы этот “конец” неправильно рассчитали.
когда вы прописываете для инпута box-sizing: border-box, то (с учетом width:100%, которая в атрибуте style в HTML-коде) это означает, что ширина инпута со всеми паддингами будет равна ширине родительского блока. В родителях у нас блок2, а для него вы прописали ширину 480рх - вот на эти 480рх инпут и растянуло.

А разве не должно учитываться внешние отступы инпута?

учитываться - где?

Я имею ввиду инпут не должен отодвигаться во все стороны от блока 2 на ширину внешних отступов которые заданы в инпуте

он отодвигается с одной стороны - а с другой автоматом начинает вылазить

Не понимаю, инпут настроил за счет ширины блока2, теперь блок два уменьшился


html,

body {
margin: 0;
padding: 0;

}

body {
width: 520px;
min-height: 270px;
padding: 20px;
font-size: 14px;
line-height: 1.5;
font-family: Arial, sans-serif;
color: white;
background-color: #3a78a1;
background-image: url("/assets/course9/grid.png");
background-repeat: repeat;
background-position: -80px -80px;
}

input[type=“text”] {
height:38px;
font-size: 18px;
font-family: Arial, sans-serif;
border: 2px solid #cccccc;
border-radius: 5px;
margin: 20px;
padding:0px 10px;
box-sizing:border-box;

}

.block {
background: rgba(0, 255, 255, 0.2);
width:516px;

}
.block1 {border: 2px solid;

}

.block2 {
margin: 18px;
width:440px;

}

смотрите, “оттолкнуть” блок от родителя можно двумя способами:

  1. задать дочернему блоку маргин
  2. задать родителю паддинг

в нашем случае (с width=100%) добавление маргинов всегда будет приводить к увеличению размеров дочернего блока (=увеличению площади, занимаемой дочерним блоком ) и к его “выпадению” из родителя, поэтому пробуйте второй вариант.

Получилось, задал родителю внутренний отступ и одновременно убрал внешний отступ у инпута, Спасибо огромное !