作者:songaihua853185820299 | 来源:互联网 | 2023-06-01 11:13
我正在将Ionic 3项目迁移到Ionic 4,偶然发现了页面特定背景图片的问题,该背景图片在Ionic 3中效果很好,但在Ionic 4中效果不佳。
页面上的图像应覆盖整个页面,但是该页面也包含ion-header
和ion-footer
组件。
在我的Ionic 3
中,html
如下所示:
type="text"
name="username"
[(ngModel)]="account.username"
[placeholder]="'username' | translate"
required>
type="password"
name="password"
[(ngModel)]="account.password"
[placeholder]="'PASSWORD' | translate"
required>
Some Footer Text
使用scss
:
page-login {
.content {
background: url('../assets/img/background.png') no-repeat;
background-size: cover;
#logo {
padding-top: 5rem;
}
form {
position: absolute;
bottom: 0;
width: 100%;
.logo-row {
margin-bottom: 40%;
}
.form-inputs {
.label-ios {
width: 60px;
max-width: 60px;
}
}
}
}
}
结果:
在Ionic 4
中,页眉和页脚的行为有所不同,由于某种原因,我必须将ion-tool bar
中的transparent
scss
移到{{1} }和ion-header
在ion-footer
内以使图像ion-content
重叠:
scss
ion-toolbar {
--background: transparent;
//--ion-toolbar-text-color: white;
//--ion-color-base: transparent !important;
}
ion-content {
--background: url('../../../assets/img/background.png') no-repeat center/cover fixed;
--background-size: cover;
#logo {
padding-top: 5rem;
}
form {
--position: absolute;
--bottom: 0;
--width: 100%;
// rest of scss..
}
}
:
html
这对我来说似乎没有意义,必须有一种方法可以将html中的
type="text"
name="username"
[(ngModel)]="account.username"
[placeholder]="'username' | translate"
required>
type="password"
name="password"
[(ngModel)]="account.password"
[placeholder]="'PASSWORD' | translate"
required>
block
[disabled]="!f.valid || isLoading">
{{'LOGIN' | translate}}
{{'DEVELOPED_BY' | translate}}
Some Text
和ion-header
移动到ion-footer
之外,同时保持图像重叠?
如果我将两者都移回,结果将如下所示,因此是错误的:
更新
@Sergey Rudenko提出的答案在一定程度上可以起作用,背景图像可以正确显示,但是缺点是ion-content
上的position: absolute
不会将footer
元素推到页脚上方,相反,表单元素位于页脚上方/上方:
抱歉,如果我不能完全理解您的情况,但是您不能执行以下操作:
模板:
Ionic 4 template
Hit Me
SCSS:
ion-toolbar {
--background: transparent;
--ion-color-base: transparent !important;
}
ion-content {
--background: url('https://via.placeholder.com/150') no-repeat center/cover fixed;
--background-size: cover;
}
ion-header,ion-footer {
border: 0px !important;
border-bottom-color: transparent !important;
background-image: none !important;
border-bottom: none !important;
}
取决于您的用例,可能不是使用“绝对”位置而是“固定”位置等?