如何在 Ionic 4 中设置背景图片
How to set a background image in Ionic 4
如何在 Ionic 4 中设置背景图片?试了好几种方法都没用。
我正在学习本教程:
https://javebratt.com/ionic-firebase-tutorial-auth/
我也试过了
--background: #fff url('../../assets/images/cover.jpg') no-repeat center center / cover;
}
如有任何帮助,我们将不胜感激。我正在使用 Ionic 4
ion-content {
.background{
background-image: url('../../../assets/img/login-image.jpg');
-webkit-background-size: cover;
-moz-background-size: cover;
background-size: cover;
}
form {
margin-bottom: 32px;
button {
margin-top: 20px !important;
}
}
p {
font-size: 0.8em;
color: #d2d2d2;
}
ion-label {
margin-left: 5px;
}
ion-input {
padding: 5px;
}
.invalid {
border-bottom: 1px solid #ff6153;
}
.error-message {
min-height: 2.2rem;
ion-label {
margin: 2px 0;
}
}
}
<ion-content class="background">
<form [formGroup]="loginForm">
<ion-item>
<ion-label position="stacked">Email</ion-label>
<ion-input
formControlName="email"
type="email"
placeholder="Your email address"
[class.invalid]="!loginForm.controls['email'].valid &&
loginForm.controls['email'].touched"
>
</ion-input>
</ion-item>
<ion-item
class="error-message"
*ngIf="!loginForm.controls['email'].valid &&
loginForm.controls['email'].touched"
>
<ion-label>Please enter a valid email address.</ion-label>
</ion-item>
<ion-item>
<ion-label position="stacked">Password</ion-label>
<ion-input
formControlName="password"
type="password"
placeholder="Your password"
[class.invalid]="!loginForm.controls['password'].valid&& loginForm.controls['password'].touched"
>
</ion-input>
</ion-item>
<ion-item
class="error-message"
*ngIf="!loginForm.controls['password'].valid
&& loginForm.controls['password'].touched"
>
<ion-label>Your password needs more than 6 characters.</ion-label>
</ion-item>
<ion-button (click)="loginUser(loginForm)" expand="block" [disabled]="!loginForm.valid">
Log In
</ion-button>
</form>
<ion-button expand="block" fill="clear" routerLink="/signup">
Create a new account
</ion-button>
<ion-button expand="block" fill="clear" routerLink="/reset-password">
I forgot my password
</ion-button>
<ion-footer no-shadow>
<div>
<button ion-button icon-left block>
Login with Google
</button>
</div>
<div>
<button ion-button icon-left block>
Login with Facebook
</button>
</div>
</ion-footer>
</ion-content>
让我们尝试这些步骤,看看效果如何:
您可以 select 离子含量直接在您的 CSS 中而不是创建另一个 CSS class。我假设您需要页面的背景图像。所以通过 ion-content 元素抓取整个页面。然后为元素背景使用通常的 CSS 属性。但是在使用 Ionic 时,请确保相对路径的形式不正确。例如,我认为您的 assets(image) 路径不正确。这就是 ionic 无法在设备上 render/find 的原因。我在下面给出的代码片段对我有用。
page-details {
ion-content {
--background: none;
background-image: url("assets/imgs/img_bg_floral.png");
-webkit-background-image: url("../../assets/imgs/img_bg_floral.png");
background-repeat: no-repeat;
background-size: cover;
}
这有效
ion-content {
--background: #fff url("../../../assets/img/login-image.jpg") no-repeat center center / cover;
}
如果您需要更多控制,请先将 css 变量 --background 设置为 none,然后指定通常的 css 属性:
ion-content {
--background: none;
background-image: url('../../../assets/img/login-image.jpg');
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
这在浏览器和真实设备上都有效:
--background: url('/assets/recover_form_bg.jpg') no-repeat center/cover fixed;
不要为图像使用 ../../../assets 路径,因为它在真实设备中不起作用。
我在 android 测试过。它对我来说很好用。
SCSS:
ion-content {
--background: #34B0D2 url('../../assets/yourimage.jpeg') no-repeat center top fixed;
background-size: cover;
}
如何在 Ionic 4 中设置背景图片?试了好几种方法都没用。
我正在学习本教程: https://javebratt.com/ionic-firebase-tutorial-auth/
我也试过了
--background: #fff url('../../assets/images/cover.jpg') no-repeat center center / cover; }
如有任何帮助,我们将不胜感激。我正在使用 Ionic 4
ion-content {
.background{
background-image: url('../../../assets/img/login-image.jpg');
-webkit-background-size: cover;
-moz-background-size: cover;
background-size: cover;
}
form {
margin-bottom: 32px;
button {
margin-top: 20px !important;
}
}
p {
font-size: 0.8em;
color: #d2d2d2;
}
ion-label {
margin-left: 5px;
}
ion-input {
padding: 5px;
}
.invalid {
border-bottom: 1px solid #ff6153;
}
.error-message {
min-height: 2.2rem;
ion-label {
margin: 2px 0;
}
}
}
<ion-content class="background">
<form [formGroup]="loginForm">
<ion-item>
<ion-label position="stacked">Email</ion-label>
<ion-input
formControlName="email"
type="email"
placeholder="Your email address"
[class.invalid]="!loginForm.controls['email'].valid &&
loginForm.controls['email'].touched"
>
</ion-input>
</ion-item>
<ion-item
class="error-message"
*ngIf="!loginForm.controls['email'].valid &&
loginForm.controls['email'].touched"
>
<ion-label>Please enter a valid email address.</ion-label>
</ion-item>
<ion-item>
<ion-label position="stacked">Password</ion-label>
<ion-input
formControlName="password"
type="password"
placeholder="Your password"
[class.invalid]="!loginForm.controls['password'].valid&& loginForm.controls['password'].touched"
>
</ion-input>
</ion-item>
<ion-item
class="error-message"
*ngIf="!loginForm.controls['password'].valid
&& loginForm.controls['password'].touched"
>
<ion-label>Your password needs more than 6 characters.</ion-label>
</ion-item>
<ion-button (click)="loginUser(loginForm)" expand="block" [disabled]="!loginForm.valid">
Log In
</ion-button>
</form>
<ion-button expand="block" fill="clear" routerLink="/signup">
Create a new account
</ion-button>
<ion-button expand="block" fill="clear" routerLink="/reset-password">
I forgot my password
</ion-button>
<ion-footer no-shadow>
<div>
<button ion-button icon-left block>
Login with Google
</button>
</div>
<div>
<button ion-button icon-left block>
Login with Facebook
</button>
</div>
</ion-footer>
</ion-content>
让我们尝试这些步骤,看看效果如何:
您可以 select 离子含量直接在您的 CSS 中而不是创建另一个 CSS class。我假设您需要页面的背景图像。所以通过 ion-content 元素抓取整个页面。然后为元素背景使用通常的 CSS 属性。但是在使用 Ionic 时,请确保相对路径的形式不正确。例如,我认为您的 assets(image) 路径不正确。这就是 ionic 无法在设备上 render/find 的原因。我在下面给出的代码片段对我有用。
page-details {
ion-content {
--background: none;
background-image: url("assets/imgs/img_bg_floral.png");
-webkit-background-image: url("../../assets/imgs/img_bg_floral.png");
background-repeat: no-repeat;
background-size: cover;
}
这有效
ion-content {
--background: #fff url("../../../assets/img/login-image.jpg") no-repeat center center / cover;
}
如果您需要更多控制,请先将 css 变量 --background 设置为 none,然后指定通常的 css 属性:
ion-content {
--background: none;
background-image: url('../../../assets/img/login-image.jpg');
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
这在浏览器和真实设备上都有效:
--background: url('/assets/recover_form_bg.jpg') no-repeat center/cover fixed;
不要为图像使用 ../../../assets 路径,因为它在真实设备中不起作用。
我在 android 测试过。它对我来说很好用。
SCSS:
ion-content {
--background: #34B0D2 url('../../assets/yourimage.jpeg') no-repeat center top fixed;
background-size: cover;
}