首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么核心列表没有在核心标题面板中设置一个高度?

为什么核心列表没有在核心标题面板中设置一个高度?
EN

Stack Overflow用户
提问于 2014-12-02 14:14:53
回答 1查看 1.4K关注 0票数 3

我试图将一个<core-list>放入一个<core-header-panel>中,但是在给它一个高度之前,核心列表是不会呈现的。

因此,我的示例代码确实适用于一个非常愚蠢的黑客,但我认为一定有更好的方法将核心列表插入到页面中。

结构如下:

这是我的密码:

JSFiddle: http://jsfiddle.net/gu0g8kt3/2/

代码语言:javascript
复制
<link rel="import" href="http://www.polymer-project.org/components/polymer/polymer.html">
<link rel="import" href="http://www.polymer-project.org/components/paper-elements/paper-elements.html">
<link rel="import" href="http://www.polymer-project.org/components/core-elements/core-elements.html">

<core-drawer-panel>
  <core-header-panel drawer>
    <core-image style="width:256px; height:170px; background-color: lightgray;"
                sizing="cover" preload fade src="http://lorempixel.com/256/170/abstract/"></core-image>

      <core-menu selectedAttribute="">
      <paper-item>
        <core-icon icon="assignment"></core-icon>
        <div>Option #1</div>
      </paper-item>
      <paper-item>
        <core-icon icon="account-circle"></core-icon>
        <div>Option #2</div>
      </paper-item>
    </core-menu>
  </core-header-panel>

  <core-header-panel id="hPanel" main>
    <core-toolbar id="toolbar">
      <paper-menu-button icon="menu" core-drawer-toggle></paper-menu-button>
      <span flex>This is my app!</span>
    </core-toolbar>

    <div class="content">


      <!-- here is the problem -->        
      <core-list id="list" height="120">
        <template>
            <div class="row {{ { selected: selected } | tokenList }}">
                <div flex><core-image style="width:40px; height:40px; background-color: lightgray;" src="{{model.image_src}}" sizing="cover" preload></core-image></div>
            </div>
        </template>
       </core-list>
       <paper-fab class="fab" icon="add"></paper-fab>


    </div>

  </core-header-panel>
</core-drawer-panel>

CSS

代码语言:javascript
复制
core-header-panel {
  background-color: #f9f9f9;
}

.fab {
  position: absolute;
  bottom: 16px;
  right: 16px;
}

/* main area content */
core-list {
  overflow: hidden;
  display: block;
  height: 200px; /* this is just a bad workaround, must be > 0 */
  margin: 0 auto;
}

.row {
  background: lightblue;
  height: 120px;
  overflow: hidden;
  border-bottom: 1px #dedede solid;
}

.selected {
  background: orange;
}

/* drawer content */
core-toolbar {
  color: #2c2c2c;
  letter-spacing: 0.05em;
  text-shadow: 1px 1px 0px #d5d5d5, 2px 2px 0px rgba(0, 0, 0, 0.2);
  text-rendering: optimizeLegibility; }

core-menu {
  margin: 0px;
  margin-top: -4px; }
  core-menu paper-item {
    border-bottom: 1px grey solid; }
    core-menu paper-item > div {
      padding-left: 10px !important; }

JavaScript

代码语言:javascript
复制
var data = [];

for (var i = 0; i < 10000; ++i) {
    data.push({
        image_src: 'http://lorempixel.com/40/40/business/?' + Math.round(Math.random()*100)
    });
}

document.querySelector('#list').data = data;

// the only way it works for me is the following:
var mainPanel = document.querySelector('#hPanel');
var toolbar = document.querySelector('#toolbar');
var list = document.querySelector('#list');

var contentHeight = mainPanel.clientHeight - toolbar.clientHeight;
list.style.height = contentHeight + 'px';
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-02 22:55:08

正如在本评论中所提到的,核心列表需要一些帮助才能适当调整大小:https://github.com/Polymer/core-list/issues/47#issuecomment-63126241

我可以用两种改变来解决你的小动作:

  1. 为content提供“fit”布局,这样它将填充hPanel中的整个剩余区域:

  1. 给列表100%的高度

对于这些更改,不需要为javascript中的列表设置高度。

JSFiddle:http://jsfiddle.net/6ktwg9kk/

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27251551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档