CSS——背景图片固定(不随页面大小改变而改变)

方法一:

使用 background-size 和 background-attachment:
可以设置 background-size 为 auto,这样背景图片将按照它的原始尺寸显示,不会随容器大小的变化而缩放。此外,使用 background-attachment: fixed; 可以将背景图片固定在视口中,而不是相对于元素。

body {
       margin: 0;
       padding: 0;
       /* 背景图片 URL */
       background: url('/img/background2.png') no-repeat center center;
       /* 背景图片固定在视口中(固定背景图片,不随页面滚动) */
      background-attachment: fixed;
      /* 自定义比例:100% 宽度,200% 高度 */
      background-size: 100% 200%;
      /* 原始尺寸 */
      /* background-size: auto;*/
   }

方法二:

固定元素的位置:
元素的宽度和高度没有随着页面大小的变化而动态调整,所以背景图片也不会改变大小

设置元素的最小高度为视口的高度:min-height: 100vh
然后在设置背景图片:
background: url(“https://gw.alipayobjects.com/zos/rmsportal/FfdJeJRQWjEeGTpqgBKj.png”)
0% 0% / 100% 100%;

background-position: 0% 0%; :这个属性将背景图片定位在容器的左上角
background-size: 100% 100%; :这个属性使得背景图片的宽度和高度都设置为容器的100%。当容器的大小发生变化时(例如通过页面的放大或缩小),背景图片的尺寸也会相应地调整,以完全填充容器。
但由于容器大小不变,所以背景图片的尺寸也不变

<template>
    <div id="UserLayout">
        <!-- 设置元素的最小高度为视口的高度 -->
        <a-layout style="min-height: 100vh">
            <a-layout-header class="header">
                <a-space>
                    <img src="../assets/img.png" class="logo" alt="" />
                    <div>Amelia</div>
                </a-space>
            </a-layout-header>
            <a-layout-content class="content">
                <router-view />
            </a-layout-content>
            <a-layout-footer class="footer">
                 by Amelia
            </a-layout-footer>
        </a-layout>
    </div>
</template>

<script></script>
<!-- scoped 属性,这会将 CSS 限制在当前组件内,使其不会影响全局样式 -->
<style scoped>
#UserLayout {
    text-align: center;
    background: url("/img/background2.png")
        0% 0% / 100% 100%;
}
#UserLayout .logo {
    width: 64px;
    height: 64px;
}
#UserLayout .header {
    /* 导航阴影 */
    /* box-shadow: 3px 3px 6px #c2c1c1; */
    margin-top: 16px;
}
/* 渐变背景色 */
#UserLayout .content {
    /* background: linear-gradient(to right, #bbb, #fff); */
    margin-top: 8px;
    padding: 20px;
}

#UserLayout .footer {
    padding: 16px;
    /* 绝对定位到底部absolute */
    /* 粘性定位,能够在用户滚动页面时,让元素在特定的滚动位置“粘住”,直到另一个边界达到 */
    position: sticky;
    bottom: 0;
    /* 居中 */
    left: 0;
    right: 0;
    text-align: center;
}
</style>
您可以使用CSS将一张图片的某个区域设置为背景,并固定它的位置,使其不随浏览器的大小改变改变位置。下面是一个示例: HTML代码: ```html <div class="container"> <img src="your-image.jpg" alt="Your Image"> </div> ``` CSS代码: ```css .container { position: relative; width: 500px; /* 背景图容器的宽度 */ height: 300px; /* 背景图容器的高度 */ overflow: hidden; /* 超出容器的部分隐藏 */ } .container img { position: absolute; left: -100px; /* 要设置为背景的区域左边缘到容器左边缘的距离 */ top: -50px; /* 要设置为背景的区域上边缘到容器上边缘的距离 */ width: 800px; /* 图片的实际宽度 */ height: 500px; /* 图片的实际高度 */ } ``` 在上面的示例中,我们使用了一个`<div>`元素作为背景图容器,并在其中嵌套了一个`<img>`元素。我们将容器的宽度和高度设置为固定值,使其成为一个固定大小的容器,然后将`overflow`属性设置为`hidden`,以隐藏超出容器大小的部分。 接下来,我们使用绝对定位将图片的位置固定在容器内,并通过设置`left`和`top`属性来指定要设置为背景的区域的左上角坐标。最后,我们使用实际图片的宽度和高度来设置`img`元素的宽度和高度。 请注意,这种方法可能需要进行微调以确保所选的区域与背景图容器完全对齐,并且在不同大小的浏览器窗口中仍保持相同的位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值