eCatalog 검색 뷰어에 대한 모든 시각적 사용자 지정 및 대부분의 동작 사용자 지정은 사용자 지정 CSS를 만들어 수행합니다.
제안된 워크플로우는 적절한 뷰어에 대한 기본 CSS 파일을 가져와 다른 위치에 복사하고 사용자 지정하고 style=
명령.
기본 CSS 파일은 다음 위치에 있습니다.
<s7_viewers_root>/html5/eCatalogSearchViewer_dark.css
사용자 지정 CSS 파일은 기본 선언과 동일한 클래스 선언을 포함해야 합니다. 클래스 선언을 생략하면 사용자 인터페이스 요소에 기본 스타일을 제공하지 않으므로 뷰어가 제대로 작동하지 않습니다.
사용자 지정 CSS 규칙을 제공하는 또 다른 방법은 웹 페이지나 연결된 외부 CSS 규칙 중 하나에 직접 포함된 스타일을 사용하는 것입니다.
사용자 지정 CSS를 만들 때 뷰어가 할당한다는 것을 기억하십시오 .s7ecatalogsearchviewer
클래스 이름을 컨테이너 DOM 요소로 지정합니다. 와 함께 전달된 외부 CSS 파일을 사용하는 경우 style=
명령, 사용 .s7ecatalogsearchviewer
이 클래스는 CSS 규칙의 하위 선택기에서 상위 클래스로 사용됩니다. 웹 페이지에서 포함된 스타일을 수행하는 경우 컨테이너 DOM 요소의 ID로 이 선택기의 자격을 다음과 같이 지정해야 합니다.
#<containerId>.s7ecatalogsearchviewer
사용자의 장치 또는 특정 웹 페이지 레이아웃에 따라 콘텐츠를 다르게 표시하려면 CSS에 다양한 장치와 포함 크기를 타깃팅할 수 있습니다. 이 타겟팅에는 다양한 웹 페이지 레이아웃, 사용자 인터페이스 요소 크기 및 아트워크 해상도가 포함되지만 이에 제한되지 않습니다.
뷰어는 응답형 디자인 CSS를 만드는 두 가지 방법을 지원합니다. CSS 마커 및 표준 CSS 미디어 쿼리. 이러한 메서드를 독립적으로 또는 함께 사용할 수 있습니다.
CSS 마커
반응형 디자인 CSS를 생성하기 위해 뷰어는 런타임 뷰어 크기 및 현재 장치의 입력 유형을 기반으로 최상위 뷰어 컨테이너 요소에 동적으로 할당된 특수 CSS 클래스를 CSS 마커를 지원합니다.
CSS 마커의 첫 번째 그룹은 다음과 같습니다 .s7size_large
, .s7size_medium
, 및 .s7size_small
클래스를 참조하십시오. 뷰어 컨테이너의 런타임 영역을 기반으로 적용됩니다. 즉, 뷰어 영역이 일반 데스크탑 모니터의 크기보다 크거나 같은 경우 .s7size_large
를 사용하는 경우 영역이 일반적인 태블릿 장치에 가까운 경우 .s7size_medium
이(가) 할당됩니다. 휴대폰 화면과 유사한 영역입니다. 마커 .s7size_small
이(가) 설정되어 있습니다. 이러한 CSS 마커의 주요 목적은 다양한 화면 및 뷰어 크기에 맞는 서로 다른 사용자 인터페이스 레이아웃을 만드는 것입니다.
두 번째 CSS 마커 그룹은 다음과 같습니다 .s7mouseinput
및 .s7touchinput
. 마커 .s7touchinput
현재 장치에 터치 입력 기능이 있는 경우 설정됩니다. 그렇지 않으면 .s7mouseinput
이 사용됩니다. 이러한 마커는 일반적으로 터치 입력에는 더 큰 요소가 필요하므로 다른 입력 유형에 대해 화면 크기가 다른 사용자 인터페이스 입력 요소를 만들기 위한 것입니다. 장치의 마우스 입력과 터치 기능이 모두 있는 경우, .s7touchinput
가 설정되고 뷰어가 터치에 적합한 사용자 인터페이스를 렌더링합니다.
다음 샘플 CSS는 마우스 입력이 있는 시스템의 경우, 확대 단추 크기를 28 x 28픽셀, 터치 장치의 56 x 56픽셀로 설정합니다. 또한 뷰어 크기가 너무 작을 경우 버튼을 완전히 숨깁니다.
.s7ecatalogsearchviewer.s7mouseinput .s7zoominbutton {
width:28px;
height:28px;
}
.s7ecatalogsearchviewer.s7touchinput .s7zoominbutton {
width:56px;
height:56px;
}
.s7ecatalogsearchviewer.s7size_small .s7zoominbutton {
visibility:hidden;
}
다른 픽셀 밀도를 사용하는 장치를 타깃팅하려면 CSS 미디어 쿼리를 사용합니다. 다음 미디어 쿼리 블록에는 고집적 화면에만 적용되는 CSS가 포함됩니다.
@media screen and (-webkit-min-device-pixel-ratio: 1.5)
{
}
CSS 마커를 사용하는 것은 반응형 디자인 CSS를 빌드하는 가장 유연한 방법입니다. 장치 화면 크기뿐만 아니라 실제 뷰어 크기를 타깃팅할 수 있으므로 응답형 디자인 페이지 레이아웃에 유용합니다.
CSS 마커 접근 방식의 예로 기본 뷰어 CSS 파일을 사용하십시오.
CSS 미디어 쿼리
순수한 CSS 미디어 쿼리를 사용하여 장치 감지를 수행할 수도 있습니다. 지정된 미디어 쿼리 블록 내에 둘러싸인 모든 것은 해당 장치에서 실행되는 경우에만 적용됩니다.
모바일 뷰어에 적용할 때 CSS에 정의된 네 가지 CSS 미디어 쿼리를 다음 순서로 사용합니다.
모든 터치 장치에 대한 특정 규칙만 포함합니다.
@media only screen and (max-device-width:13.5in) and (max-device-height:13.5in) and (max-device-width:799px),
only screen and (max-device-width:13.5in) and (max-device-height:13.5in) and (max-device-height:799px)
{
}
고해상도 화면이 있는 태블릿에 대한 규칙만 포함합니다.
@media only screen and (max-device-width:13.5in) and (max-device-height:13.5in) and (max-device-width:799px) and (-webkit-min-device-pixel-ratio:1.5),
only screen and (max-device-width:13.5in) and (max-device-height:13.5in) and (max-device-height:799px) and (-webkit-min-device-pixel-ratio:1.5)
{
}
모든 휴대폰에 대한 특정 규칙만 포함합니다.
@media only screen and (max-device-width:9in) and (max-device-height:9in)
{
}
고해상도 화면을 사용하는 휴대폰에 대한 규칙만 포함합니다.
@media only screen and (max-device-width:9in) and (max-device-height:9in) and (-webkit-min-device-pixel-ratio: 1.5),
only screen and (device-width:720px) and (device-height:1280px) and (-webkit-device-pixel-ratio: 2),
only screen and (device-width:1280px) and (device-height:720px) and (-webkit-device-pixel-ratio: 2)
{
}
미디어 쿼리 방법을 사용하면 다음과 같이 장치 센싱으로 CSS를 구성해야 합니다.
각 미디어 쿼리에서 전체 뷰어 CSS를 복제할 필요가 없습니다. 지정된 장치에 고유한 속성만 미디어 쿼리 내에서 다시 정의됩니다.
많은 뷰어 사용자 인터페이스 요소는 비트맵 아트웍을 사용하여 스타일이 지정되며 두 개 이상의 고유한 시각적 상태를 갖습니다. 좋은 예는 일반적으로 세 개 이상의 서로 다른 상태를 갖는 단추입니다. "up", "over" 및 "down" 각 상태에는 고유한 비트맵 아트웍이 할당됩니다.
스타일링에 대한 클래식 접근 방식으로, CSS는 사용자 인터페이스 요소의 각 상태에 대해 서버의 개별 이미지 파일에 대한 별도의 참조를 갖게 됩니다. 다음은 확대 단추 스타일을 지정하는 샘플 CSS입니다.
.s7ecatalogsearchviewer.s7mouseinput .s7zoominbutton[state='up'] {
background-image:url(images/v2/ZoomInButton_dark_up.png);
}
.s7ecatalogsearchviewer.s7mouseinput .s7zoominbutton[state='over'] {
background-image:url(images/v2/ZoomInButton_dark_over.png);
}
.s7ecatalogsearchviewer.s7mouseinput .s7zoominbutton[state='down'] {
background-image:url(images/v2/ZoomInButton_dark_down.png);
}
.s7ecatalogsearchviewer.s7mouseinput .s7zoominbutton[state='disabled'] {
background-image:url(images/v2/ZoomInButton_dark_disabled.png);
}
이 접근 방식의 단점은 요소가 처음으로 상호 작용할 때 최종 사용자가 깜박이거나 지연된 사용자 인터페이스 응답을 경험하는 것입니다. 이 작업은 새 요소 상태에 대한 이미지 아트웍이 아직 다운로드되지 않았기 때문에 발생합니다. 또한 이 접근 방식은 서버에 대한 HTTP 호출 수가 증가하여 성능에 다소 부정적인 영향을 줄 수 있습니다.
CSS 스프라이트는 모든 요소 상태에 대한 이미지 아트워크가 "스프라이트"라는 단일 PNG 파일에 결합되는 다른 접근 방법입니다. 이러한 "sprite"에는 서로 다른 위치에 배치된 지정된 요소에 대한 모든 시각적 상태가 있습니다. 스프라이트를 사용하여 사용자 인터페이스 요소에 스타일을 지정할 때 CSS의 다른 모든 상태에 대해 동일한 스프라이트 이미지가 참조됩니다. 또한, background-position
속성은 각 상태에 대해 "sprite" 이미지의 어느 부분이 사용되는지를 지정하는 데 사용됩니다. 적합한 방식으로 "스프라이트" 이미지를 구성할 수 있습니다. 시청자는 보통 세로로 적층되어 있습니다. 다음은 위에서 동일한 확대/축소 단추에 스타일을 지정하는 "Sprite" 기반 예입니다.
.s7ecatalogsearchviewer .s7zoominbutton[state] {
background-image: url(images/v2/ZoomInButton_dark_sprite.png);
}
.s7ecatalogsearchviewer.s7mouseinput .s7zoominbutton[state='up'] {
background-position: -84px -560px;
}
.s7ecatalogsearchviewer.s7mouseinput .s7zoominbutton[state='over'] {
background-position: -56px -560px;
}
.s7ecatalogsearchviewer.s7mouseinput .s7zoominbutton[state='down'] {
background-position: -28px -560px;
}
.s7ecatalogsearchviewer.s7mouseinput .s7zoominbutton[state='disabled'] {
background-position: -0px -560px;
}
!IMPORTANT
스타일 뷰어 요소에는 규칙이 지원되지 않습니다. 특히, !IMPORTANT
규칙은 뷰어 또는 Viewer SDK에서 제공하는 기본 또는 런타임 스타일을 재정의하는 데 사용해서는 안 됩니다. 이유는 올바른 구성 요소의 동작에 영향을 줄 수 있기 때문입니다. 대신, 이 참조 안내서에 설명된 CSS 속성을 설정하려면 적절한 특성과 함께 CSS 선택기를 사용해야 합니다.background-image
속성을 사용합니다.width
및 height
사용자 인터페이스 요소의 속성은 논리 크기를 정의합니다. 에 전달된 비트맵의 크기 background-image
논리 크기에 영향을 주지 않습니다.-webkit-background-size:contain
배경을 논리 사용자 인터페이스 요소 크기로 축소하는 속성입니다.display:none
CSS 클래스로 가리키도록 업데이트하는 것이 좋습니다.rgba(R,G,B,A)
. 그렇지 않으면 형식을 사용할 수 있습니다 #RRGGBB
.다음은 eCatalog Search Viewer에 적용되는 사용자 인터페이스 요소 참조 설명서입니다.