투명 테두리가있는 CSS 전용 이미지 공개 효과 만들기
에이 CSS 전용 이미지 공개 효과 다른 방법으로 해결할 수 있습니다. 실제로 코드를 작성하는 것은 매우 쉽습니다. 이미지가 돋보인다. (에 의해 오버플로됩니다) 그 단색 배경 -방금 이미지를 배치하다 단색 배경의 작은 요소 위로.
사용하면 동일한 결과를 얻을 수 있습니다. 투명 테두리, 너 어디서 배경 요소의 크기 포어 그라운드로 사용하고 투명 테두리를 추가하여 빈 공간을 만든다. 전경이 넘치도록.
있다 후자의 방법을 사용할 때의 이점. 전경이 넘쳐나는 영역을 제공하는 투명 테두리이기 때문에 오버 플로우의 방향 제어 왼쪽, 오른쪽, 위쪽 및 아래쪽 테두리 사이. 또한 전경과 배경에 동일한 크기를 가짐 두 요소를 동시에 이동하는 것이 더 쉽습니다. 페이지 전체.
간단히 말해, 우리는 어떻게 CSS 전용 이미지 공개 효과 만들기 ~을 사용하여 더 작고 단단한 배경 ~와 투명한 테두리가있는 전경 이미지. 체크 아웃 할 수 있습니다. 최종 데모 이하.
1. 초기 코드 만들기
HTML 방식, 오직 하나 CSS에서는 두 개의 CSS 변수, 우리는 또한 우리 빈을 추가하십시오. 그만큼 우리는 이미지를 그만큼 에 아래의 스크린 샷 당신은 우리가 지금까지 가지고있는 것을 볼 수 있습니다 ( 추가하려면 이미지 뒤에 작은 (슬라이드 아웃) 배경, 다른 의사 요소를 사용합니다., 다른 CSS 변수를 만듭니다., 그만큼 폭 다음과 같이 계산됩니다. 그만큼 신장 다음과 같이 계산됩니다. 와 더불어 CSS 필터 여기에 데모 스크린 샷 지금까지 렌더링 된 우리 더하기 우리로 이미 아래에서 최종 데모. 표시하는 경우
--bgc
과 --어둑한
그 배경색 그리고 치수 ~의 .푸
컨테이너. 이 예에서는 같은 가치 너비와 높이가 사각형 모양의 상자를 만들려면 별도의 변수들 직사각형을 원한다면 높이와 너비가 필요합니다..직위 : 상대적
~에 통치하다 .푸
, 그래서 우리가 사용하려고하는 의사 요소가 이미지 공개, 될 수있다. 절대 위치 (아래 참조), 따라서 서로 겹쳐서. .foo --bgc : # FFCC03; --dim : 300px; 너비 : var (- dim); 높이 : var (- dim); 배경색 : var (- bgc); 위치 : 상대적;
함유량
재산 두 의사 요소 모두에게, .foo :: before
과 .foo :: after
, 제대로 렌더링되도록하기. .foo :: before, .foo :: after content : "; 위치 : 절대, 왼쪽 : 0, 위쪽 : 0;
.푸
요소, 두 개의 의사 요소, .foo :: before
, .foo :: after
, 그리고 그들의 : 마우스 오버
가상 클래스 도착 전이
재산 그럴거야. 편함 전환을 추가하다. 500 밀리 초 동안 (0.5 초). .foo, .foo : hover, .foo :: before, .foo :: after, .foo : hover :: before, .foo : hover :: after 전환 : 변환 500ms 용이함;
2. 이미지를 추가하십시오.
.foo :: before
의사 요소 배경 이미지로, 과 전체 의사 요소를 감싸는 크기 와 더불어 폭
과 신장
속성. 우리 바로 아래에 쌓아 놓으십시오. .푸
요소 ~을 사용하여 Z- 색인 : -1
규칙. .foo :: before width : 100 %; 높이 : 100 %; 배경 : url (camel.png) 센터 / 커버; z- 색인 : -1;
센터
예어 이미지를 중심에 두다., 동안 덮개
키워드가 이미지 크기를 전체 요소를 덮다. 가로 세로 비율을 유지하면서. Z- 색인
님이에서 삭제되었습니다. .foo :: before
그래서 그것은 볼 수 있습니다) :3. 슬라이드 아웃 배경 추가
.foo :: after
.--비
, 그 테두리 너비. 우리는 준다. 세 개의 투명 테두리 ~로 ::후
의사 요소 : 위, 아래, 오른쪽. .foo :: after --b : 20px; 너비 : calc (100 % - var (- b)); 높이 : calc (100 % - calc (var (- b) * 2)); border : var (-b) 단색 투명; border-left : none; 상자 그림자 : inset 0 var (- dim) 0 var (- bgc); 필터 : 밝기 (.8); z- 지수 : -2;
calc (100 % - var - b))
돌아 오는 총 너비 .푸
수평 경계의 전체 폭을 뺀 값 (왼쪽 테두리가 없으므로 오른쪽 테두리 만).calc (100 % - calc (var (-b) * 2))
돌아 오는 총 높이 .푸
수직 경계의 전체 폭을 뺀 값 (상단 및 하단 테두리).상자 그림자
재산, 우리도 수평 삽입 그림자를 추가한다. 같은 크기의 .푸
(이것은 var (- dim)
).밝기 (.8)
배경색을 어둡게한다. 조금, 마침내 Z 지수 : -2
규칙 장소 ::후
밑에 의사 요소 ::전에
이미지가 포함 된.Z- 색인
두 가상 요소에서 제거하여 볼 수 있음).4. 변환 추가
변환
재산 두 의사 요소에 연결되므로 사용자가 마우스 오버하면 .푸
, 두 유사 요소는 수평으로 움직였다..전이
모든 요소에 대한 속성 1 단계가 끝나면 이미지의 움직임과 배경이 두 애니메이션. .foo : hover :: before, .foo : hover :: after 변형 : translateX (100 %);
보너스 : 선택 마진
.푸
다른 요소들 옆에 페이지에서 다른 요소를 떠나다 이미지와 배경이 슬라이드 아웃되면 너비와 같은 너비의 오른쪽 여백을 더한다. .푸
~로 .foo : 마우스 오버
요소. .foo : hover margin-right : var (- dim);