아래 HTML은 포함 된 기본보기 (응용 프로그램 페이지)의 영역에서 해당 공간 내에 중첩 된 하위 사용자 정의 요소를 사용하여 높이를 100 % 정확하게 채우는 간단한 예제에서 복사 한 것입니다. (응용 프로그램은 pub에서 다운로드 한 다트 - 폴리머 패키지를 사용합니다.) 컨테이너는 Polymer의 레이아웃 속성 (플렉스 모델)을 사용하여 구현됩니다. 간단한 맞춤 요소 (텍스트 콘텐츠)는 #left div 요소에 중첩되어 있습니다. W3C Grid Layout을 사용하는보다 복잡한 사용자 정의 요소는 #right div 요소에 중첩됩니다. #right의 네 직사각형은 my-gridcontent의 높이가 공간을 오버 플로우하는 것을 제외하고는 올바르게 렌더링되고 채색됩니다.중첩 된 웹 구성 요소 사용자 정의 요소의 높이를 지정하여 할당 된 공간을 올바르게 채우는 방법은 무엇입니까?
[편집 : 스크린 샷은 제가보고있는 것입니다. 원하는 것이 아닙니다. #left와 my-gridcontent를 오버레이하여 #right를 오버레이하기 위해 내 간단한 콘텐츠를 원합니다. 스크롤바가 없어야합니다.]
Devtools는 #left와 #right의 높이가 562px, my-simplecontent가 18px, my-gridcontent가 626px로 표시됩니다. 중첩 된 구성 요소의 너비가 예상대로 각각의 공백을 채 웁니다. 나는 {display : block; 높이 : 100 %} 다양한 요소가있는 규칙.
관련 항목 : cannot get height 100% to work in polymer elements.
다트 SDK : 1.7.2. Dartium : 37.0.2062.120 (292122)
pubspec.yaml
dependencies:
# Dart Polymer and essential libraries
polymer: ">=0.15.0 <0.16.0"
core_elements: ">=0.3.1 <0.4.0"
paper_elements: ">=0.4.0 <0.5.0"
web_components: ">=0.7.0 <0.8.0"
index.html을
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My App</title>
<!-- include the web_components polyfills with support for Dart. -->
<script src="packages/web_components/platform.js"></script>
<script src="packages/web_components/dart_support.js"></script>
<link rel="import" href="packages/core_elements/core_icons.html">
<link rel="import" href="packages/polymer/polymer.html">
<link rel="import" href="packages/core_elements/core_toolbar.html">
<link rel="import" href="packages/paper_elements/paper_icon_button.html">
</head>
<body unresolved fullbleed>
<polymer-element name="my-app" noscript vertical layout>
<template>
<style type="text/css">
:host { width: 100%; height: 100%; }
div#left { background: lightyellow; }
div#right { background: lightblue; }
</style>
<core-toolbar id="appToolbar">
<paper-icon-button id="navmenu" icon="menu"></paper-icon-button>
<div flex>App</div>
<paper-icon-button id="morebutton" icon="more-vert"></paper-icon-button>
</core-toolbar>
<div horizontal layout flex>
<div id="left" flex>
<my-simplecontent id="simple"></my-simplecontent>
</div>
<div id="right" flex>
<my-gridcontent id="grid"></my-gridcontent>
</div>
</div>
</template>
</polymer-element>
<polymer-element name="my-simplecontent" noscript>
<template>
<style type="text/css">
:host { display: block; height: 100%; background: lightcoral; }
</style>
Simple content
</template>
</polymer-element>
<polymer-element name="my-gridcontent" noscript>
<template>
<style type="text/css">
:host {
display: grid; height: 100%;
grid-template-columns: 1fr 1fr;
grid-template-rows: 1fr 1fr;
}
#a { grid-column: 1; grid-row: 1; }
#b { grid-column: 2; grid-row: 1; }
#c { grid-column: 1; grid-row: 2; }
#d { grid-column: 2; grid-row: 2; }
div { height: 100%; }
.red { background: red; }
.blue { background: blue; }
.green { background: green; }
.yellow { background: yellow; }
</style>
<div id="a" class="red">A</div>
<div id="b" class="blue">B</div>
<div id="c" class="green">C</div>
<div id="d" class="yellow">D</div>
</template>
</polymer-element>
<my-app></my-app>
<!-- bootstrap polymer -->
<script type="application/dart">export 'package:polymer/init.dart';</script>
<script src="packages/browser/dart.js"></script>
</body>
</html>
이 전체 브라우저 창을 채우고 스크롤 막대를 표시하지 않습니다. 나 한테 잘됐다. 마커가있는 스크린 샷을 현재와 다른 방식으로 추가 할 수 있습니까? (Dartium'Version 38.0.2125.0 (292384) (64-bit)'와 Chrome'Version 38.0.2125.104 (64-bit)'에서 사용). –
@ GünterZöchbauer : 스크린 샷이 추가되었습니다. 내가 설명하는 레이아웃이 아닌 Chrome v38에서 동일한 레이아웃을 얻습니다. 나는 안정된 DE/Dart SDK를 사용하지만 Dartium v38에 대한 테스트를 위해 dev 채널 배포를 진행 중입니다 (배포판에 있다고 가정). OSX 10.10. – wjohnson
@ GünterZöchbauer : OSX 용 64 비트 Dartium v38에 대한 배포판을 찾을 수 없습니다. dev 채널 빌드를위한 링크는 dartium-macos-ia32-release.zip입니다. 제발 조언. – wjohnson