angular-material - 角度 Material : How do you specify spacing between two columns in a layout?

标签 angular-material

假设我在 Angular Material 布局中的一行中有两列:

<div layout="row" flex>
  <div layout="column" flex="50">
    Content 1...
  </div>
  <div layout="column" flex="50">
    Content 2...
  </div>
</div>

现在,假设我想在列之间设置任意数量的空间(例如 10 像素的“装订线”)。我可以创建第三个空 div,设置一个小的“flex”值并将“flex”值从 50 修改为更小的值,但这似乎是一种 hack,并且会创建基于百分比的装订线宽度。似乎应该有一种更简洁的方法来获得精确的装订线而不创建空的 div。我是否必须将类放在我的列 div 上并设置 CSS 边距值(并处理左与右等)?任何人都可以通过 Angular Material 方式进行操作吗?

最佳答案

我不确定这是否是“角度 Material ”的处理方式。但我能感受到你的痛苦。

目前,我正在将一些 Bootstrap 代码迁移到 Angular Material,并且确实需要一种方法来执行此操作。

这是我所做的。

由于 Angular Material 的 layout 指令只影响直接的 child ,我相信这是一种 Angular Material 的操作方式。因此,在 layout div 上,我添加了一个类 gutter,这是该类附带的 SASS(只是更漂亮的 CSS,带有变量):

.gutter {
    (greater-than) * {
        padding-right: $layout-gutter-width;
        ~ * {
            padding-left: $layout-gutter-width;
        }
        &:last-of-type {
            padding-right: 0;
        }
    }
}

注意 - 我不确定如何将 > 放在那里,所以用它代替“(大于)”

解释
$layout-gutter-width 实际上是由 Angular Material 附带的 angular-material.scss 定义的(我在我的项目中使用 SASS),但你可以将其设置为任意值你想要,CSS 或 SASS,10px、16px、50px,随便什么。

对于那些不完全熟悉这个 SASS 中发生的事情的人:

> * 这里的意思是“...的任何直系后代”
~ * 这里的意思是“...的任何直系兄弟”
&:last-of-type 这里的意思是“这些直系后代中的最后一个……”

因此,对于类为 gutter 的元素的每个直接后代,我们添加 padding-right。对于每个后续的兄弟元素,我们添加 padding-left,对于最后一个元素,我们删除 padding-right。第一个元素将没有 padding-left,最后一个元素将没有 padding-right

最终这会得到我们想要的填充。

<div layout="row" class="gutter" layout-align="center center">
    <div flex="50">
        ...
    </div>
    <div flex="50">
        ...
    </div>
</div>

关于angular-material - 角度 Material : How do you specify spacing between two columns in a layout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34299918/

相关文章:

ionic-framework - Angular-material - FAB Speed Dial 不适用于 Ionic

javascript - Angular Material : make a md-radio-group required

javascript - Angular 自动完成返回一个空白列表

angular - 如何更改 Material 中的 mat-icon 大小

javascript - 日期选择器的 ngMaterial 在 Angular JS 中不起作用

angularjs - 清除/重置 Material AngularJS <md-autocomplete>

angular - Material 对话框 : Managing Z-index on click event with multiple Dialog instances

angularjs - 如何使用 ng-click 将 Angular Material 选项卡制作为向导?

cordova - 角 Material 和 Cordova : poor animation performance on android

angular - 如何在使用标题模板的表格中使用 Angular Material MatSort?