background-image: -webkit-linear-gradient(171deg,#ed515f,#ff6f33);
background-image: -o-linear-gradient(171deg,#ed515f,#ff6f33);
background-image: linear-gradient(279deg,#ed515f,#ff6f33);
background-image: -webkit-linear-gradient(171deg,#ed515f,#ff6f33);
background-image: -o-linear-gradient(171deg,#ed515f,#ff6f33);
background-image: linear-gradient(279deg,#ed515f,#ff6f33);
Все верно, абстрактный элемент с display: block по умолчанию имеет ширину 100%. Но вы же явно указали, что у него должна быть ширина 300px, а не 100%.
<img>
при display: block по умолчанию не имеет ширину 100%, как у других блочных элементов, а имеет ширину самой картинки. Так что ли?