我正在使用@angular/flex-layout创建一个网络应用。
当屏幕小于600px(xs
)时,我尝试左右5%的边距。它在较大的屏幕上正常工作(当有fxLayout="row"
- 布局时),但不在xs
和fxLayout="column"
情况下。
Here is a demonstration in Plunker.
问题:如何让div
的不填充右边的剩余空间,但只需要花费90%的5%左右偏移?
答案 0 :(得分:3)
我编辑了你的plunker并使用[ngStyle.xs]
让它工作。
代码:
@Component({
selector: 'test-app',
template: `
<div fxLayout.xs="column"
fxLayout.gt-xs="row"
class="containerX"
[ngStyle.xs]="{'width.%': 90, 'margin-left.%': 5, 'margin-right.%': 5}"
style="background-color: grey">
<div style="background-color: blue"
fxFlex.xs="90"
fxFlex.gt-xs="25"
fxFlex.gt-sm="20"
fxFlexOffset="5"
fxFlexOffset.gt-xs="5"
fxFlexOffset.gt-sm="10">
Left / Top
</div>
<div style="background-color: red"
fxFlex.xs="90"
fxFlex.gt-xs="63"
fxFlex.gt-sm="55"
fxFlexOffset="5"
fxFlexOffset.gt-xs="2"
fxFlexOffset.gt-sm="5">
Right / Bottom
</div>
</div>
`,
styles: [`
.containerX {
border: solid 1px #b6b6b6;
background: skyblue;
height: 200px;
width: 100%;
}`
]
})
export class TestApp {
}
希望这有帮助!
答案 1 :(得分:3)
最后,我使用了与@ Nehal类似的方法,而不是ngStyle.xs
我使用ngClass.xs
并使其正常工作。
<div fxLayout.xs="column"
fxLayout.gt-xs="row"
fxFlex.xs="grow"
fxFlex.gt-xs="grow">
<div ngClass.xs="section-title-xs-margin"
fxFlex.xs="90"
fxFlex.gt-xs="25"
fxFlex.gt-sm="20"
fxFlexOffset.xs="5"
fxFlexOffset.gt-xs="5"
fxFlexOffset.gt-sm="10">
Left / Top
</div>
<div ngClass.xs="content-xs-margin"
fxFlex.xs="90"
fxFlex.gt-xs="63"
fxFlex.gt-sm="55"
fxFlexOffset.xs="5"
fxFlexOffset.gt-xs="2"
fxFlexOffset.gt-sm="5">
Right / Bottom
</div>
</div>
在CSS中:
.section-title-xs-margin {
margin-right: 5%;
}
.content-xs-margin {
margin-right: 5%;
}