为什么聚合物的 flex 属性/类不起作用?

2024-02-27

浏览器:Firefox v35 操作系统:Linux Ubuntu 14,Polymer:v1.4

正在关注 Rob Dodson 的 Polycasts - 大多数视频都提到使用“flex”(flexbox)来实现响应式设计。然而,我很难让它发挥作用。

在下面列出的示例文件中,

  • paper-header-panel 上的 flex 属性是多余的(即使没有它,元素​​也会拉伸 - 请注意蓝色边框
  • 工具栏中 span 标签上的 flex 属性确实有效 - 请参阅“更多”图标一直滑到右侧。这很好/预期的
  • 最后,我希望内容类的 div 为“flex” - 但它不会。理想情况下不应有白色区域。

文档&guide https://elements.polymer-project.org/guides/responsive-material-design-layouts没有一点帮助。即使指南上的片段也不适合我。

代码如下:

<!DOCTYPE html>
<html>

<head>
<script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>

<link rel='import' href='elements.html' />
<link rel="stylesheet" href="app.css" />
<style>
    .icon-snooze {
        color: red;
        width: 48px;
        height: 48px;
    }
</style>


<style is="custom-style" include='iron-flex iron-positioning'>
    body {
        border: 1px dashed red;
    }
    
    paper-header-panel {
        border: 2px dashed dodgerblue;
    }
    
    .content {
        border: 2px dashed tomato;
        background-color: var(--paper-light-blue-500);
    }
</style>

</head>

<body class='fullbleed vertical layout'>

<paper-header-panel class='flex'>
    <paper-toolbar>
        <paper-icon-button id="navicon" icon="icons:menu"></paper-icon-button>
        <div>Header</div>
        <span class='flex'></span>
        <paper-icon-button id='morebutton' icon='icons:more-vert'></paper-icon-button>

    </paper-toolbar>
    <div class='content flex'>Content </div>

</paper-header-panel>
</body>
</html>

更多观察:
水平弯曲按预期工作/开箱即用。

对于垂直弯曲,如果我设置它就可以工作父级/容器的明确高度- 这有点违背了目的。

<body class='fullbleed vertical layout'>
<div class='layout vertical container' style='height:50vh;' >
    <div>one</div>
    <div class="flex">two (won't flex without height set)</div>
    <div>three</div>
</div>
<div class='layout horizontal container'>
    <div>one</div>
    <div class="flex">two (will flex)</div>
    <div>three</div>
</div>
</div>

iron-flex-layout一开始甚至以后可能会很难使用。

让我们分解一下如何实现所需的输出。
首先我们需要那个fullbleed身体上的阶级。这使得我们使用全尺寸的屏幕。然后我们添加<paper-header-panel>负责标题和内容的显示、定位和大小调整的元素。我们不需要添加任何类paper-header-panel.
接下来我们添加两个div元素。其他是实际的标头paper-headerclass 和 other 是内容托管者fit班级。这fit类负责确保我们的内容填满整个屏幕。

第一个 div 的内部paper-header我们按照您提供的方式在工具栏和其他内容中添加了类。这有效并且是正确的。

如果您想为您的内容使用不同的布局类型(horizontal or vertical例如)您可以使用以下命令将所需的类添加到 div 中fit class.

请参阅下面的代码。

<!doctype html>

<head>
  <meta charset="utf-8">
  <!---- >
  <base href="https://polygit.org/components/">
  Toggle below/above as backup when server is down
  <!---->
  <base href="https://polygit2.appspot.com/components/">
  <script src="webcomponentsjs/webcomponents-lite.min.js"></script>
  <link rel="import" href="polymer/polymer.html">
  <link rel="import" href="paper-header-panel/paper-header-panel.html">
  <link rel="import" href="paper-toolbar/paper-toolbar.html">
  <link rel="import" href="paper-icon-button/paper-icon-button.html">
  <link rel="import" href="iron-icons/iron-icons.html">
  <link rel="import" href="iron-icon/iron-icon.html">
  <link rel="import" href="iron-flex-layout/iron-flex-layout-classes.html">

  <style is="custom-style" include='iron-flex iron-positioning'>
    body {
      border: 1px dashed red;
    }
    paper-header-panel {
      border: 2px dashed dodgerblue;
    }
    .fit {
      @apply(--iron-positoning-fit);
      height: 100%;
      border: 2px dashed tomato;
      background-color: #00B7FF;
    }
  </style>

</head>

<body class='fullbleed'>
  <paper-header-panel>
    <div class="paper-header">
      <paper-toolbar>
        <paper-icon-button id="navicon" icon="icons:menu"></paper-icon-button>
        <div>Header</div>
        <span class="flex"></span>
        <paper-icon-button id='morebutton' icon='icons:more-vert'></paper-icon-button>
      </paper-toolbar>
    </div>
    <div class="fit">
      <div>Content</div>
    </div>
  </paper-header-panel>
</body>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么聚合物的 flex 属性/类不起作用? 的相关文章

  • 聚合物示例代码在 Firefox 中不起作用

    我正在尝试 Google 提供的示例代码https www polymer project org 1 0 start first element intro https www polymer project org 1 0 start
  • 如何在 Polymer 中将事件从 rootScope 广播到元素?

    例如 我们有根范围
  • 嵌套聚合物组件内容问题

    foo html
  • 带有图像和分隔符的完全对齐的水平菜单

    I would like to achieve this fully justified horizontal menu 对齐是通过 Flexbox 完成的并且有效 但是我也无法使分隔的中点对齐 它们是通过伪类使用 css content
  • 获取纸张下拉菜单的选定值

    我用的是聚合物paper dropdown menu https www polymer project org 0 5 docs elements paper dropdown menu html作为我的项目的下拉菜单 现在 当用户从下拉
  • “core-header-panel”似乎不能开箱即用

    我正在尝试一些core聚合物元素 我在使用时遇到了麻烦core header panel in my demo http enriquemorenotent com demos webcomponents core header panel
  • Flexbox 布局,左侧有两个项目,右侧有一个项目

    我正在尝试使用 Flexbox 实现以下布局 A C B 是否可以在不将 A 和 B 包装到包装器中的情况下这样做 是的 这是可能的 请考虑到在此示例中主容器具有固定的宽度和高度 container height 200px width 3
  • 为什么 Firefox 会忽略弹性项目的下边距?

    它尊重margin bottom只有当有足够的空间时 否则 Firefox 会表现得好像没有margin bottom at all 全面镀铬 铬合金缩小 火狐浏览器缩小了 Flexbox 的行为是否正确 如何修复它 codepen htt
  • 带有无序列表的 Flexbox

    我正在尝试学习 Flexbox 我真的很喜欢它 我正在尝试 玩动态宽度 当我这样做时div它有效 如果我尝试这样做li 它也不起作用 我的代码已上线codepen http codepen io jrock2004 pen pjvZJd d
  • 有聚合物模板的印章活动吗?

    我试图在每次标记其内容时将输入元素聚焦在聚合物模板内 问题是在模板加载之前我无法选择输入元素 目前 我只是使用 setTimeout 在模板加载后 100 毫秒集中输入 但我想知道是否有更优雅的解决方案 此外 自动对焦属性不起作用 因为模板
  • 弹性项目的等高子项

    我在创建 Flexbox 响应式网格时遇到问题 希望有人能给我指出正确的方向 我想要所有的 blockdiv 的高度相等 并且 bottomdiv 绝对定位到底部 这实际上在当前的解决方案中有效 但是当 的时候h2标题太长 达到了2行 我想
  • 聚合物嵌套应用程序路由未正确映射

    我正在努力找到一些正确的基本路线 我正在使用 Polymer 1 5 0 但在使用嵌套路由时遇到问题 我正在使用应用程序路由0 9 2 As 这篇文章建议 https www polymer project org 1 0 blog rou
  • 如何删除flexbox中所有换行行的左右边距(没有nth-child或js)

    我正在寻找一种好方法来删除每行中每个第一个和最后一个项目的左右边距 而不使用 nth child 或 JavaScript 如果这是不可能的 那么我想下一个最好的方法是在主弹性盒元素上设置负左 右边距 但我不太确定使用弹性盒来做到这一点的最
  • 即使在包裹后也具有等宽的弹性项目

    是否可以制作一个像这样的纯 CSS 解决方案 物品有一些min width 它们应该动态增长以填充所有容器宽度 然后换行到新行 列表中的所有项目都应具有相同的宽度 现在看起来是这样的 这就是我希望它看起来像的样子 我已经手动管理这些底部项目
  • 聚合物在核心输入上使用功能验证

    有人可以解释一下如何使用函数验证吗这种聚合物元素 http www polymer project org docs elements core elements html core input 导航到 验证 部分
  • React Native FlatList 具有不同列数的替代行

    i want to have a FlatList which renders a single item on odd rows and 2 items on even rows 是否可以实现这种布局 抱歉 我还没有代码 FlatList
  • 最大宽度不适用于弹性项目

    我有一列中有一个弹性容器和两个弹性子容器 顶部 div 应填充所有剩余空间 底部 div 的高度应由内容和max width 但底部 div 的宽度正在缩小到其内容的宽度 这max width正在被忽视 hero image min hei
  • 使用 CSS 等高列

    我想对我的 CSS 表使用百分比 不幸的是 它对我不起作用 这段代码有什么问题 我应该使用 flexbox 而不是 table 吗 我想使用表格 因为我想要相同高度的列 ul list style none margin 0 display
  • 如何在反应组件中使用聚合物组件?是否可以?

    我已经使用谷歌的聚合物来制作网络组件 但我也很有兴趣尝试一下 React 所以我想知道是否可以从反应组件的渲染函数内部使用聚合物组件 对的 这是可能的 我使用的方法有点复杂 但我很乐意分享 如果您已经使用过聚合物 则只需像使用任何其他聚合物
  • 我不明白 flex-grow 属性吗?

    恐怕我一定不明白flex grow 如果你跳到下面的 JSFiddle 按照我的理解 big应该是另一个大小的三倍 flex item 正如你所看到的 事实并非如此 为什么 http jsfiddle net nrur6mmo http j

随机推荐

  • 如何在 WordPress 中将 HTML 表单中的数据保存到数据库表中?

    我有一个 WordPress 主题 我正在尝试将 HTML 表单中的数据保存到数据库中 我制作了 HTML 表单并添加了一个 保存并关闭 按钮 该按钮调用名为的 JavaScript 函数saveData 从表单中获取数据并将其发送到add
  • 如何删除 Apple APNS 反馈收到的设备令牌

    我成功通过 PHP 获取 Apple APNS 反馈数据 我得到的结构 经过一些处理 看起来像这样 时间戳 设备令牌 我的问题是如何知道应该从数据库中删除哪些设备令牌并停止向它们发送通知 Regardz Mladjo 时间戳是这里的关键元素
  • 如何从React中的函数参数设置状态[重复]

    这个问题在这里已经有答案了 我将名称和值从子组件传递给handleChange 函数 现在我想将状态设置为与提供的名称匹配的值 但我不知道如何设置 我尝试了这种方式 但它给出了错误 this setState 不是函数 class Pare
  • MySQL 作业启动失败

    我在 Kubuntu 12 04 上 通过 apt get 安装 mysql mysql 版本 5 5 35 后 我尝试启动 mysql 服务 但出现此错误 sudo 服务 mysql 启动 开始 作业启动失败 所以我用谷歌搜索了这个问题
  • 循环分组依据、聚合并根据组创建新列

    我正在尝试获取学生专栏 根据他们的进度水平来统计活动 Data looks like STUDENT ID STUDENT ACTIVITY SESSION ID NODE NAME ACTIVITY NAME prog level Fre
  • 从 JSF 操作返回 null 和 "" 之间的区别

    据我了解 当 JSF 操作返回时 空字符串 用户停留在当前页面 但视图已刷新 然而 当动作返回时null用户仍然停留在当前页面 但旧视图被重用 我的问题是 上述说法正确 准确 吗 如果是 那么这意味着什么 具体来说 使用其中一种与另一种对页
  • Python图像库椭圆具有宽轮廓

    用PIL创建椭圆时 是否可以有更粗 更宽的轮廓 目前 我正在尝试做canvas ellipse box outline colour fill None 但希望能够给予outline参数a宽度 你可以使用aggdraw http effbo
  • 将行数组转换为列数组

    将任何 等长 行数组转换为列数组的最优雅的方法是什么 Eg 1 2 3 4 5 6 To 1 4 2 5 3 6 这是我到目前为止所拥有的 grid 1 2 3 4 5 6 grid2 for i in grid 0 grid2 push
  • Angularjs 多个 Dropzone 用于在单页上上传图像

    我使用 dropzone js 进行多图片上传 当单个页面上只有一个 dropzone 时 它 工作正常 但是 如果我尝试在单个页面上使用多个拖放区 则只有一个拖放区正在工作 即第二个拖放区 而第一个拖放区保持空闲 我试图寻找答案 但它们只
  • 传单仅呈现在一个角落

    我有一张只渲染到一个角落的传单地图 当我调整浏览器窗口大小时 整个地图都会呈现 这就是我调用地图的方式 var map L map map crs L CRS EPSG3857 setView 105 2 100 6 var tiles L
  • 印刷图片盒

    当我尝试打印PictureBox an ArgumentException被抛出 参数无效 这是打印功能 void pdGroupBox PrintPage object sender PrintPageEventArgs e foreac
  • 如何使用 sbt 跳过 javadoc 依赖项下载

    1 Javadoc 工件往往需要太多的空间和时间来下载 例如 scala library 2 10 2 sources jar是 1 Mb 但是scala library 2 10 2 javadoc jar是 34 Mb 2 大多数情况下
  • Mercurial - 同时比较多个变更集?

    为了比较我们使用 hg diff c
  • 定时器速度问题WPF

    我正在使用计时器来滚动列表 每毫秒间隔我都会启动 Tick 事件 事件虽然动画看起来很慢 repeatTimer Tick this new EventArgs repeatLeftTimer Interval TimeSpan FromM
  • 这些对象字面量有什么区别?

    我创建了两个对象 第一个正在按预期工作 let working constructor function console log working let notworking constructor console log notworki
  • 将代码拆分为多个文件时出现 LNK2019 && LNK1120 错误

    我的代码存储在main cpp文件包含void main 函数和类MyClass我现在想将其拆分为另一个文件 IDE 是 Microsoft Visual Studio 2008 Professional myclass h include
  • 如何在 OS X 静态库中包含 nib?

    我看过几篇关于 iOS 的文章讨论这个主题 但是一两次提到 OS X 只是说构建一个框架而不是静态库 我找不到有合适框架说明的帖子 我已将项目创建为静态库 并相应地对整个项目进行了编码 现在 我只想将我的框架放入演示应用程序中 但它抱怨缺少
  • java.lang.IllegalStateException:片段已添加

    我在使用目标 SDK 4 3 编译和运行的 Android 应用程序时遇到问题 该应用程序有两个 Activity 一个 MainActivity 也是启动器 Activity 和一个 SecondActivity 两者都使用 Fragme
  • 结构体末尾的空数组是C标准吗?

    我注意到在开源项目中经常使用结构末尾的空数组 typedef struct A void arr A 我想知道这是C标准吗 或者只适合 gcc 编译器 从 C99 开始 它现已成为 C 标准 C99 之前的编译器可能不支持它 旧的方法是声明
  • 为什么聚合物的 flex 属性/类不起作用?

    浏览器 Firefox v35 操作系统 Linux Ubuntu 14 Polymer v1 4 正在关注 Rob Dodson 的 Polycasts 大多数视频都提到使用 flex flexbox 来实现响应式设计 然而 我很难让它发