하나의 요소에 두 개의 CSS3 상자 그림자를 사용하는 방법이 있습니까?


156

두 개의 그림자가있는 Photoshop 모형에서 단추 스타일을 복제하려고합니다. 첫 번째 그림자는 내부의 밝은 상자 그림자 (2px)이고 두 번째 그림자는 버튼 (5px) 외부의 그림자입니다.

여기에 이미지 설명을 입력하십시오

Photoshop에서는 내부 그림자 및 그림자와 같은 작업이 쉽습니다. CSS에서는 분명히 하나 또는 다른 것을 가질 수 있지만 동시에 둘 다 가질 수는 없습니다.

브라우저에서 아래 코드를 시도하면 상자 그림자가 삽입 상자 그림자보다 우선 함을 알 수 있습니다.

삽입 상자 그림자는 다음과 같습니다.

box-shadow: inset 0 2px 0px #dcffa6;

그리고 이것은 버튼의 그림자에 대해 원하는 것입니다.

box-shadow: 0 2px 5px #000;

맥락을 위해 여기에 전체 버튼 코드 (그라디언트 및 모두 포함)가 있습니다.

button {
    outline: none;
    position: relative;
    width: 160px;
    height: 40px;
    font-family: 'Open Sans', sans-serif;
    color: #fff;
    font-weight: 800;
    font-size: 12px;
    text-shadow: 0px 1px 3px black; 
    border-radius: 3px;
    background-color: #669900;
    background: -webkit-gradient(linear, left top, left bottom, from(#97cb52), to(#669900));
    background: -moz-linear-gradient(top, #97cb52, #669900);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#97cb52', endColorstr='#669900');
    box-shadow: inset 0 2px 0px #dcffa6;
    box-shadow: 0 2px 5px #000;
    border: 1px solid #222;
    cursor: pointer;
}

답변:


406

쉼표로 구분 된 그림자를 사용할 수 있습니다.

box-shadow: inset 0 2px 0px #dcffa6, 0 2px 5px #000;

6
또한 첫 번째 선언 그림자에서 다음 중 하나 (들)에 있음을 언급 jsfiddle.net/webtiki/s9pkj
웹 티키

spead 반경 btw가 누락되었습니다. 그것은 큰 차이를 만들 수 있습니다. 또한 그림자의 불투명도는 실제로 차이를 만들 수 있습니다. 내 블로그 항목에서 dev 도구를 열면 상자 그림자로 재생할 수 있습니다. fullstack.life/css3-multiple-box-shadows.html
fullstacklife

16

상자 그림자는 쉼표 를 사용 하여 배경 이미지 (CSS3의 경우)와 같이 여러 효과를 가질 수 있습니다 .


여러 그림자를 적용 할 수 있지만, 삽입 그림자를 적용 하는 것은 특별한 경우입니다. (그러나 그때는 이미지에만 적용됩니다.)
JayC

정말? 현재 모바일을 사용 중이므로 확인할 수 없습니다. 그러나 나는 전에보고 된 것을 듣지 못했습니다 ... 내일 퇴근 후에 그 점을 살펴볼 것입니다. = /
David는 Monica를

이미지에 삽입 그림자를 원하면 요소 또는 유사 요소를 맨 위에 설정해야합니다. 까다로울 수 있습니다.
JayC
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.