이 페이지에서는 다중 영역 레이아웃에 대한 사용자 지정 템플릿을 만드는 방법을 소개합니다.
다중 영역 레이아웃에서 사용자 지정 템플릿을 만들기 전에 알아야 하는 두 가지 중요한 고려 사항이 있습니다.
픽셀 크기 또는 백분율이 수정되었습니다.
사용자 지정 레이아웃에 대해 서로 다른 영역에 고정 픽셀 크기를 사용할지 아니면 백분율을 사용하여 사용자 지정 레이아웃을 생성할지 결정해야 합니다.
백분율을 사용하여 사용자 지정 레이아웃의 영역을 설정하면 다양한 화면 크기로 템플릿을 다시 사용할 수 있습니다.
이름 지정 규칙:
AEM Screens 프로젝트에서 사용할 사용자 지정 다중 영역 템플릿을 만드는 방법을 이해하려면 먼저 만들려는 템플릿의 버전을 이해하는 것이 좋습니다.
레이아웃 이름 | 설명 |
---|---|
Left20-LandscapeHD3Zone | 영역 1은 왼쪽에서 가로 및 세로 화면의 20%로, 영역 2는 가로 화면의 80%로, 오른쪽 화면의 20%로 세로 화면의 가로 및 세로 화면의 20%로, 영역 3은 가로 100%로, 세로 화면의 80%로 가로 및 세로 화면의 가로 비율이 16:9인 3영역 가로 레이아웃을 나타냅니다 |
Upper20-세로HD2Zone | 16:9의 종횡비로 맨 위에서 화면의 20%를 포함하는 2영역 세로 템플릿을 나타냅니다 |
Right20-LandscapeSD3Zone | 화면의 20%를 오른쪽의 가로 세로 비율로 포함하는 3영역 템플릿을 나타냅니다. |
사용자 지정 레이아웃 내에 정의된 영역이 전체 레이아웃의 전체 종횡비와 일치하지 않을 수 있습니다. 이 문서에서 다음에 나오는 이름 지정 규칙은 사용자 지정 레이아웃의 종횡비를 전체적으로 지정합니다.
다음 구성으로 사용자 지정 템플릿 Left20-LandscapeHD3Zone을(를) 만들려면 아래 섹션을 따르십시오.
Left20-LandscapeHD3Zone 레이아웃 을 사용하면 프로젝트에 다음과 같은 다중 영역 레이아웃을 만들 수 있습니다.
AEM Screens 프로젝트용 Left20-LandscapeHD3Zone 레이아웃을 만들려면 아래 절차를 따르십시오.
사용자 지정 템플릿으로 명명된 AEM Screens 프로젝트를 만듭니다.
AEM 인스턴스에서 CRXDE Lite 도구 —> CRXDE Lite로 이동합니다.
customtemplate으로 명명된 apps 아래에 폴더를 만듭니다. 마찬가지로, 아래 그림과 같이 customtemplate 아래에 template이라는 이름의 다른 폴더를 만듭니다.
컨텐츠를 만들거나 편집하거나 노드에 복사할 때마다 CRXDE Lite의 작업 표시줄에서 모두 저장을 클릭하는 것이 좋습니다. 그렇지 않으면 업데이트를 커밋할 수 없습니다.
왼쪽 막대 템플릿을 /libs/screens/core/templates/splitscreenchannel/lbar-left
에서 /apps/customtemplate/template
(으)로 복사합니다.
복사한 bar-left(/apps/customtemplate/template
)의 이름을 my-custom-layout로 변경합니다.
/apps/customtemplate/template/my-custom-layout
로 이동하고 속성 jcr:description을 Template for Left20-LandscapeHD3Zone 및 jcr:title을 Left20-LandscapeHD3Zone으로 업데이트합니다.
/apps/customtemplate/template/my-custom-layout/jcr:content/offline-config
에서 offline-config 노드로 이동하고 jcr:title을 Left20-LandscapeHD3Zone으로 업데이트합니다.
/apps/customtemplate/template/my-custom-layout/jcr:content
에서 my-custom-template의 jcr:content 속성으로 이동하고 cq:cssClass 속성을 aem-Layout my-custom-layout로 업데이트합니다.
왼쪽 위 템플릿을 복사한 단계(4)를 참조하여 my-custom-layout/jcr:content
아래에 3개의 응답형 그리드를 표시합니다. cq:cssClass 속성의 각 응답형 그리드에 사용자 지정 css 클래스를 추가합니다. 예를 들어, my-custom-layout—top-left for r1c1 노드.
마찬가지로 my-custom-layout—top-right for r1c2 및 my-custom-layout—bottom for r2c1 노드를 추가합니다.
이러한 사용자 지정 클래스는 css에서 이러한 응답형 그리드의 너비/높이를 설정하는 데 사용됩니다.
원하는 전체 그리드 수에 따라 응답형 그리드를 추가하거나 제거할 수 있습니다. 이 예에서는 첫 번째 행에 2개의 그리드를 표시하고 두 번째 행에 1개의 그리드를 표시하므로 총 3개의 응답형 그리드가 있습니다(r1c1, r1c2, r2c1).
/libs/settings/wcm/designs/screens
을 /apps/settings/wcm/designs/
에 복사하고 복사된 디자인의 이름을 custom-template-designs로 변경합니다.
/apps/settings/wcm/designs/custom-template-designs
로 이동하고 custom-template-designs의 jcr:title 속성을 customtemplate-design으로 업데이트합니다.
/apps/settings/wcm/designs/custom-template-designs
로 이동하여 static.css 파일을 만듭니다.
컨텐츠를 static.css
파일에 복사합니다.
/*my-custom-layout styles*/
.cq-Screens-channel--multizone.my-custom-layout .my-custom-layout--top-left {
width:20%;
height: 36%;
float: left !important;
}
.cq-Screens-channel--multizone.my-custom-layout .my-custom-layout--top-right {
width:80%;
height: 36%;
float: left !important;
}
.cq-Screens-channel--multizone.my-custom-layout .my-custom-layout--bottom {
width:100%;
height: 64%;
}
사용자 지정 템플릿에 대한 요구 사항에 맞게 백분율을 업데이트할 수 있습니다.
/apps/<project>/templates/my-custom-layout/jcr:content
로 이동하고 cq:designPath 를 /apps/settings/wcm/designs/customtemplate-designs
로 업데이트하여 static.css에 구성된 스타일을 로드합니다
복사 또는 붙여넣기가 아닌 모든 스타일을 입력하는 것이 좋습니다. 이렇게 하면 공백에 따라 css 스타일 문제가 발생할 수 있습니다.
AEM Screens 프로젝트에서 위의 사용자 지정 템플릿을 사용하려면 아래 절차를 따르십시오.
(1) 단계에서 만든 스크린 프로젝트로 이동하고 채널 폴더를 선택합니다.
작업 표시줄에서 만들기를 클릭하고 만들기 마법사에서 Left20-LandscapeHD3Zone 템플릿을 선택합니다.
사용자 지정된 템플릿으로 채널을 만든 후에는 편집기에서 채널에 자산을 추가할 수 있습니다. 다음 미리 보기는 사용자 지정 템플릿의 이미지를 보여줍니다.
이미지를 레이아웃에 배경 레이어로 삽입할 수 있습니다.
CSS 규칙을 조정하여 "data-uri"라고 하는 항목을 사용하고, CSS 파일에서 이미지(Base64 인코딩)를 직접 인라인으로 만들 수 있습니다. 이 경우 (13단계), static.css에서 만들 수 있습니다.
이 작업은 다음과 같이 수행됩니다.
.cq-Screens-channel--multizone.my-CustomLayout { background: url('data:image/…;base64,…') no-repeat center center; }
또는 아래 단계를 따를 수 있습니다.
배경색을 변경하려면 다음 코드를 xml 파일(13단계), static.css에 추가합니다.
.cq-Screens-channel--multizone.my-CustomLayout { background-color: …; }