.bg-img {
background-color: yellow;
}
원본이미지
클래스를 선택한 후 background-image를 적용하였지만 div태그가 가지고 있는 크기만큼만 이미지가 출력되는 것을 확인할 수 있다.
.bg-img {
background-color: yellow;
background-image: url(https://images.unsplash.com/photo-1622495488655-498a6e9bb902?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=976&q=80);
}
div태그의 크기를 줄여서 전체이미지를 출력하면서 크기를 줄여보고자 한다. 하지만 의도한 바와 달리 원본 이미지의 크기는 그대로인 것 같고, div태그의 크기만 설정이 됐다.
.bg-img {
background-color: yellow;
background-image: url(https://images.unsplash.com/photo-1622495488655-498a6e9bb902?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=976&q=80);
height: 500px;
width: 500px;
}
background-size 속성을 추가하고 100%로 설정했다. 이전보다는 낫지만 원본이미지에 잘린 부분이 여전히 있다.
.bg-img {
background-color: yellow;
background-image: url(https://images.unsplash.com/photo-1622495488655-498a6e9bb902?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=976&q=80);
background-size: 100%;
height: 500px;
width: 500px;
}
height속성을 700만큼 늘려보니 원본이미지의 세로 비율보다 div태그의 세로 비율이 길어서 이미지가 반복되고 있다.
.bg-img {
background-color: yellow;
background-image: url(https://images.unsplash.com/photo-1622495488655-498a6e9bb902?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=976&q=80);
background-size: 100%;
height: 700px;
width: 500px;
반복되는 이미지를 없애려고 background-repeat을 no-repeat으로 설정했다. 이미지는 의도되로 출력되지만 div태그는 여전히 700px의 크기를 차지하고 있기 때문에 background-color의 yellow가 여전히 표현되고 있다.
.bg-img {
background-color: yellow;
background-image: url(https://images.unsplash.com/photo-1622495488655-498a6e9bb902?ixid=MnwxMjA3fDF8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&ixlib=rb-1.2.1&auto=format&fit=crop&w=976&q=80);
background-size: 100%;
background-repeat: no-repeat;
height: 700px;
width: 500px;
}
<img>
태그를 사용하면 HTML이 parsing 될 때 request가 이루어지므로 img태그 앞에 오는 모든 컨텐츠를 사용자가 먼저 읽을 수 있다.(성능 향상)alt
속성을 포함하고 있으므로 스크린 리더가 이해할 수 있다.제공하는 서비스에서 해당 이미지가 검색 엔진에 노출되어야 하고 맥락적으로 컨텐츠의 일부분이라면 img 태그를 사용해야한다. 반면에 이미지를 디자인적으로 사용할 때는 background-imgage 속성을 사용하도록 하자.
https://blog.px-lab.com/html-img-tag-vs-css-background-image/
https://velog.io/@skyosk123/img-vs-background-image
https://nystudio107.com/blog/the-css-background-image-property-as-an-anti-pattern