聚合物-组件布局

用户名

我正在开发Polymer应用。在这个应用程序中,我有三个试图水平布局的字段。我需要将它们均匀地隔开。基本上,我正在尝试创建以下内容。请注意,[]表示图标。

+----------------------------+----------------------------+----------------------------+
| [] First Name              |        [] Last Name        |          [] Email          |
|    __________              |           _________        |             [email protected] |
+----------------------------+----------------------------+----------------------------+

第一列左对齐。中间列居中(注意,标签在字段上方左对齐)。右列的内容作为一个块右对齐(请注意,该标签在字段上未右对齐)。为了实现此目的,我做了以下工作:

<div class="horizontal flex layout">
  <div class="horizontal layout flex-3">
    <iron-icon icon="home" style="padding:18px 8px 0px 0px;"></iron-icon>
    <paper-input label="first name" value="{{ firstName }}"></paper-input>
  </div>

  <div style="width:18px;">&nbsp;</div>

  <div class="center-justified flex-6">
    <div class="horizontal layout">
      <iron-icon icon="schedule" style="padding:18px 8px 0px 0px;"></iron-icon>
      <paper-input label="last name" value="{{ lastName }}"></paper-input>                                  
    </div>
  </div>

  <div style="width:18px;">&nbsp</div>

  <div class="flex-3">
    <div class="horizontal layout end-justified">
      <iron-icon icon="chart" style="padding:18px 8px 0px 0px;"></iron-icon>
      <paper-input label="email" value="{{ emailAddress }}"></paper-input>                                      
    </div>
  </div>
</div>

上面的代码无法正确对齐元素。电子邮件地址字段在单元格中未正确对齐。此外,即使双方都有足够的空间,姓氏字段也不会增加。它被截断了。我究竟做错了什么?

艾伦·达瓦洛斯(AlanDávalos)

tl; dr:这是一个摆弄着您正在尝试做的事的示例

这是该提琴中的相关代码:

<style is="custom-style">
.horizontal-layout{
   @apply(--layout-horizontal);
   @apply(--layout-center);
}
.flexchild {
  @apply(--layout-flex);
}
.flex2child {
  @apply(--layout-flex-2);
}
.noflex {
  @apply(--layout-flex-none);
}
.center-justified {
  @apply(--layout-center-justified);
}
</style>
<div class="horizontal-layout">
  <div class="horizontal-layout flexchild">
    <iron-icon icon="home" class="noflex"></iron-icon>
    <paper-input label="first name" value=""></paper-input>
  </div>

  <div class="horizontal-layout flex2child center-justified">
    <div class="horizontal-layout">
      <iron-icon icon="schedule" class="noflex"></iron-icon>
      <paper-input label="last name" value=""></paper-input>               
    </div>
  </div>

  <div class="horizontal-layout flexchild">
    <div class="horizontal-layout">
      <iron-icon icon="add" class="noflex"></iron-icon>
      <paper-input label="email" value=""></paper-input>             
    </div>
  </div>
</div>

以下是其中发生的情况的解释:

首先,我没有使用iron-flex-layout类,我使用的混入,这是因为/deep/::shadow组合子被弃用,因为iron-flex-layout类使用它们,聚合物小组建议不使用它们。这是带有更多信息的博客文章

出于这个原因,我创建了一些应用这些mixin的css类:

  • .horizontal-layout使内部元素在水平主轴(--layout-horizontal)中显示并在垂直交叉轴(--layout-center)中居中
  • flexchild并且flex2child在那里,当在Flex容器中同时存在这两个类的元素时,它们会收缩或增长,因此flexchild总是s的一半flex2child
  • noflex 防止相同的缩小和增长(这是为了防止图标缩小)
  • center-justified 使该容器内的元素在其主轴上居中

请注意,我删除了具有固定宽度的div以及其他涉及定位或调整大小的样式,因为这些样式通常会妨碍您的设置或被flexbox样式忽略。

了解所有这些,您应该能够弄清楚小提琴中的所有工作原理。如果要进一步自定义布局,请在Polymer Catalog上找到一个非常酷的指南

希望对您有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

聚合物组件不封装JavaScript

来自分类Dev

样式聚合物Web组件

来自分类Dev

聚合物 2:组件不呈现

来自分类Dev

在聚合物网格布局内自动调整画布

来自分类Dev

似乎没有聚合物布局事件

来自分类Dev

聚合物-纸张切换按钮布局

来自分类Dev

聚合物布局工具栏+核心抽屉面板

来自分类Dev

聚合物布局工具栏+核心抽屉面板

来自分类Dev

聚合物会构建更多的现成组件吗?

来自分类Dev

如何从飞镖聚合物组件中引用图像

来自分类Dev

聚合物Web组件属性值未传递

来自分类Dev

shadowRoot何时可用于聚合物组件?

来自分类Dev

反射聚合物/纤维网组件界面

来自分类Dev

聚合物组件POST功能的错误请求错误

来自分类Dev

是否可以为聚合物组件实施Webpack HMR?

来自分类Dev

如何从飞镖聚合物组件中引用图像

来自分类Dev

反射聚合物/纤维网组件界面

来自分类Dev

聚合物组件POST功能的错误请求错误

来自分类Dev

嵌套组件之间的聚合物1.0事件触发

来自分类Dev

聚合物+流星,在大火的#each循环中,无法将对象传递到聚合物Web组件

来自分类Dev

如何从Angular.Dart组件内部引用聚合物组件

来自分类Dev

为另一个组件内的聚合物组件设置空属性

来自分类Dev

聚合物1.0:有人可以张贴铁挠性布局的可行示例吗?

来自分类Dev

聚合物-带有霓虹灯动画页面的全屏布局

来自分类Dev

聚合物布局属性可在整个视口上拉伸自定义元素

来自分类Dev

聚合物铁挠性布局类不起作用

来自分类Dev

聚合物布局属性可在整个视口上拉伸自定义元素

来自分类Dev

聚合物布局-卡之间的空间和响应能力

来自分类Dev

将聚合物或Web组件模板链接/编译到Angularjs范围

Related 相关文章

热门标签

归档