给body设置背景图片

效果

在这里插入图片描述

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>换肤效果</title>
    <style>
    body{
   		 background:url(image/changeBack/04.jpg) no-repeat center top;
   		 background-size:cover;
   		 background-attachment:fixed;
		}
    </style>
</head>
<body>

</body>
</html>

background-size:cover

background-size 设置背景图片大小。图片可以保有其原有的尺寸,或者拉伸到新的尺寸,或者在保持其原有比例的同时缩放到元素的可用空间的尺寸。
cover
缩放背景图片以完全覆盖背景区,可能背景图片部分看不见。和 contain 值相反,cover 值尽可能大的缩放背景图像并保持图像的宽高比例(图像不会被压扁)。该背景图以它的全部宽或者高覆盖所在容器。当容器和背景图大小不同时,背景图的 左/右 或者 上/下 部分会被裁剪。
contain
缩放背景图片以完全装入背景区,可能背景区部分空白。contain 尽可能的缩放背景并保持图像的宽高比例(图像不会被压缩)。该背景图会填充所在的容器。当背景图和容器的大小的不同时,容器的空白区域(上/下或者左/右)会显示由 background-color 设置的背景颜色。
background-size属性MDN详解

background-attachment

background-attachment CSS 属性决定背景图像的位置是在视口内固定,或者随着包含它的区块滚动。
fixed
此关键属性值表示背景相对于视口固定。即使一个元素拥有滚动机制,背景也不会随着元素的内容滚动。
local
此关键属性值表示背景相对于元素的内容固定。如果一个元素拥有滚动机制,背景将会随着元素的内容滚动, 并且背景的绘制区域和定位区域是相对于可滚动的区域而不是包含他们的边框。
scroll
此关键属性值表示背景相对于元素本身固定, 而不是随着它的内容滚动(对元素边框是有效的)。
background-attachment属性MDN详解

### 在 Vue 中为 `body` 元素添加背景图片 在 Vue 应用中,直接操作全局的 HTML 元素如 `<body>` 并不是最佳实践,因为这超出了单个组件的作用范围。然而,可以通过几种方法实现这一需求。 #### 方法一:使用全局样式文件 创建一个全局样式的 CSS 文件,在其中定义 `body` 的背景图片: ```css /* styles/global.css */ body { background-image: url('/path/to/image.jpg'); background-size: cover; background-position: center; } ``` 然后在项目的入口文件(通常是 `main.js` 或者 `App.vue`)引入这个全局样式文件: ```javascript // main.js import './styles/global.css'; ``` 这种方法适用于整个应用都需要统一的背景图片的情况[^1]。 #### 方法二:通过根组件挂载前修改 如果希望更灵活地控制背景图片的变化,可以在应用程序启动之前动态设置 `body` 样式。例如,在 `main.js` 中执行如下代码: ```javascript document.body.style.backgroundImage = "url('/path/to/image.jpg')"; document.body.style.backgroundSize = 'cover'; document.body.style.backgroundPosition = 'center'; const app = createApp(App); app.mount('#app'); ``` 这种方式允许开发者基于不同的条件来设定背景图,比如根据路由变化或是用户的偏好调整[^2]。 #### 方法三:利用事件监听器或生命周期钩子更新 对于更加复杂的场景,可以考虑在一个特定的 Vue 组件内部处理这个问题。假设有一个按钮点击后更改页面背景的功能,则可以在该组件的方法里加入相应的逻辑,并确保当组件卸载时恢复默认状态: ```vue <template> <button @click="changeBackground">Change Background</button> </template> <script> export default { mounted() { this.originalStyle = document.body.getAttribute('style') || ''; }, beforeUnmount() { document.body.setAttribute('style', this.originalStyle); }, methods: { changeBackground() { const imageUrl = '/new/background/path.jpg'; // 新的背景图片路径 document.body.style.backgroundImage = `url(${imageUrl})`; document.body.style.backgroundSize = 'cover'; document.body.style.backgroundPosition = 'center'; } } }; </script> ``` 此方案提供了更高的灵活性和交互性,适合需要响应用户行为的应用程序部分[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值