CSS를 사용하여 여러 배경 이미지를 가질 수 있습니까?


316

두 개의 배경 이미지를 가질 수 있습니까? 예를 들어, 하나의 이미지가 상단 (반복-x)에서 반복되고 다른 페이지가 전체 페이지 (반복)에서 반복되도록하고 싶습니다. 전체 페이지의 이미지는 상단에서 반복되는 이미지 뒤에 있습니다.

html과 body의 배경을 설정하여 두 개의 배경 이미지에 대해 원하는 효과를 얻을 수 있음을 발견했습니다.

html {
    background: url(images/bg.png);
}

body {
    background: url(images/bgtop.png) repeat-x;
}

이것이 "좋은"CSS입니까? 더 좋은 방법이 있습니까? 3 개 이상의 배경 이미지를 원한다면 어떻게해야합니까?

답변:


377

CSS3은 이런 종류의 일을 허용하며 다음과 같습니다.

body {
    background-image: url(images/bgtop.png), url(images/bg.png);
    background-repeat: repeat-x, repeat;
}

현재 모든 주요 브라우저의 현재 버전에서 지원 하지만 IE8 이하를 지원 해야하는 경우 추가 div를 갖는 것이 가장 좋습니다.

<body>
    <div id="bgTopDiv">
        content here
    </div>
</body>
body{
    background-image: url(images/bg.png);
}
#bgTopDiv{
    background-image: url(images/bgTop.png);
    background-repeat: repeat-x;
}

27
최신 버전의 Firefox, Chrome, Safari 및 Opera에서 여러 배경을 지원합니다. IE9에서도 지원됩니다. en.wikipedia.org/wiki/…
Šime Vidas

4
반복 / 위치 설정을 다르게하려면 다음과 같이
Krisc

2
IE8-IE6의 경우 PIE.js를 사용할 수 있습니다. webdesign.tutsplus.com/tutorials/htmlcss-tutorials/…
Aleš Kotnik

1
배경 크기도 이와 동일한 규칙을 따르나요? 배경 이미지 중 하나를 제외하고 모든 배경 이미지를 전체 높이로 만들고 싶습니다 (이미지 높이가되고 싶습니다).
mtmurdock 2016 년

예, 배경 크기는 다른 모든 배경 속성과 마찬가지로 동일한 규칙을 따릅니다. 배경 속성 (일반적으로 접두사 배경으로 시작한 다음 배경의 특정 속성)을 실제로 배경 속성 자체에서 지정할 수 있으므로 여러 배경 이미지가 지원되므로 나열된 여러 속성도 지원됩니다. 이것은 크기, 위치, 반복 등에 적용됩니다.
Cannicide

35

하나의 div에서 두 개의 다른 배경 이미지를 사용하는 가장 쉬운 방법은 다음 코드 줄입니다.

body {
    background:url(image1.png) repeat-x, url(image2.png) repeat;
}

분명히, 그것은 웹 사이트의 본문만을위한 것이 아니므로 원하는 div에 사용할 수 있습니다.

희망이 도움이됩니다! 누군가가 추가 지침이나 도움이 필요한 경우 내 블로그 에이 내용에 대해 좀 더 자세히 설명하는 게시물이 있습니다 -http : //blog.thelibzter.com/css-tricks-use-two-background-images-for-one- DIV .


이것은 단지 배경이 아닌 배경 이미지와 함께 작동합니다
요엘 halb

24

이것을 사용하십시오

body {
background: url(images/image-1.png), url(images/image-2.png),url(images/image-3.png);
background-repeat: no-repeat, repeat-x, repeat-y;
background-position:10px 20px , 20px 30px ,15px 25px;
}

background-position :으로 모든 이미지 위치를 조정하고 background-repeat :로 반복 속성을 설정하는 간단한 방법 : 모든 이미지에 대해 개별적으로


13

현재 버전의 FF 및 IE 및 일부 다른 브라우저는 단일 CSS2 선언에서 여러 배경 이미지를 지원합니다. 여기 http://dense13.com/blog/2008/08/31/multiple-background-images-with-css2/ 및 여기 http://www.quirksmode.org/css/multiple_backgrounds.html 및 여기 http : /를보십시오 /nicolasgallagher.com/multiple-backgrounds-and-borders-with-css2/

IE의 경우 동작 추가를 고려할 수 있습니다. 여기를보십시오 : http://css3pie.com/


4

예, 가능하며 널리 사용되는 유용성 테스트 웹 사이트 Silverback에 의해 구현되었습니다 . 소스 코드를 살펴보면 배경이 서로 위에 배치 된 여러 이미지로 구성되어 있음을 알 수 있습니다.

다음은 비타민 에서 효과를 볼 수있는 방법을 보여주는 기사 입니다. 이러한 '양파 스킨'레이어를 감싸는 비슷한 개념은 A List Apart 에서 찾을 수 있습니다 .


4

여러 배경 이미지를 원하지만 겹치지 않으려면 다음 CSS를 사용할 수 있습니다.

body {
  font-size: 13px;
  font-family:Century Gothic, Helvetica, sans-serif;
  color: #333;
  text-align: center;
  margin:0px;
  padding: 25px;
}

#topshadow {
  height: 62px
  width:1030px;
  margin: -62px
  background-image: url(images/top-shadow.png);
}

#pageborders {
width:1030px;
min-height:100%;
margin:auto;        
    background:url(images/mid-shadow.png);
}

#bottomshadow {
    margin:0px;
height:66px;
width:1030px;
background:url(images/bottom-shadow.png);
}

#page {
  text-align: left;
  margin:62px, 0px, 20px;
  background-color: white;
  margin:auto;
  padding:0px;
  width:1000px;
}

이 HTML 구조로 :

<body 

<?php body_class(); ?>>

  <div id="topshadow">
  </div>

  <div id="pageborders">

    <div id="page">
    </div>
  </div>
</body>

2

#example1 {
    background: url(http://www.w3schools.com/css/img_flwr.gif) left top no-repeat, url(http://www.w3schools.com/css/img_flwr.gif) right bottom no-repeat, url(http://www.w3schools.com/css/paper.gif) left top repeat;
    padding: 15px;
    background-size: 150px, 130px, auto;
background-position: 50px 30px, 430px 30px, 130px 130px;
}
<!DOCTYPE html>
<html>
<head>

</head>
<body>

<div id="example1">
<h1>Lorem Ipsum Dolor</h1>
<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.</p>
<p>Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat.</p>
</div>

</body>
</html>

CSS3를 사용하여 여러 이미지를 쉽게 추가 할 수 있습니다. 우리는 여기에 자세히 읽을 수 있습니다 http://www.w3schools.com/css/css3_backgrounds.asp


1

하나의 배경을 가진 상단에 대한 div와 기본 페이지에 대한 div를 가질 수 있고 페이지 내용을 분리하거나 다른 z 레벨의 부동 div에 내용을 넣을 수 있습니다. 당신이하고있는 방식은 효과가있을 수 있지만 모든 브라우저에서 작동하는 것은 의심 스럽습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.