美文网首页web进阶
web进阶之十五:关于背景的图片在元素中的位置

web进阶之十五:关于背景的图片在元素中的位置

作者: 甚得朕心 | 来源:发表于2018-09-11 23:16 被阅读7次

    精确控制背景图片在元素中的位置

    上篇我们可以把图片设置为元素的背景,而且也能让它铺满或者不铺满,那么我们同时也能将图片放到一个固定的位置。
    需要通过background-position用来精确控制背景 图片在元素中的位置。
    通过三种方式来确定图片在水平方向 和垂直方向的起点。

    • 关键字:top right bottom left center
    • 百分比
    • 数值
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>背景与偏移量</title>
        <style>
            .box1{
                width: 1072px;
                height: 560px;
                background-color: red;
                margin: 0 auto;
                background-image: url(img/002.jpg);
                background-repeat: no-repeat;
                /*可以通过数值来指定相对位置*/
                background-position: 50px 50px;
                /*通过关键字来设置方向*/
                /*background-position: bottom right;*/
                /*background-position: left;*/
                /*通过设置页面的百分比来指定位置*/
                /*background-position: 50% 50%;*/
            }
        </style>
    </head>
    <body>
        <div class="box1"></div>
    </body>
    </html>
    

    注意写对图片的路径,不然图片无法显示。

    背景图片的固定

    通过背景图片的固定,我们也能实现犹如网站的购物车图标,不会随着屏幕的滚动而变化。在设置背景图片的时候,最好是设置在<body>内,这样不会因为其他元素的滚动而消失。

    CSS Sprite

    CSS Sprites是一种网页图片应用处理方式。
    好处:

    1. 通过这种方式我们可以将网页中的零星图片集中放到一张大图上,这样只需要网页发送一次请求。
    2. 一次请求便可以同时加载多张图片,大大提高了图片的加载效率,提高了访问效率。
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>按钮</title>
        <style type="text/css">
            /*如果我们在不同的状态时,传入三张图片,那么在点击时会闪烁,而且浏览器请求次数增加,每次都得传入图片,增加传输速度。*/
            /*不写图片的位置的时候,就是传入了固定的位置
            而且加载了三次,降低访问次数,增加流量。
            */
            /*只写图片位置的时候,就是传入了一张整合过得图片
            通过移动图片的位置来显示我们所需要的样子*/
            .btn:link{
                display: block;
                width: 93px;
                height: 29px;
                background-image:url(img/btn.png);
                background-repeat: no-repeat;
            }
            .btn:hover{
                background-position: -93px 0px;
                /*background-image: url(img/hover.png);*/
            }
            .btn:active{
                background-position: -186px 0px;
                /*background-image: url(img/active.png);*/
            }
        </style>
    </head>
    <body>
        <a href='#' class="btn"></a>
    </body>
    </html>
    

    上面代码中,要么写图片路径在hover 和 acitve中不写位移,那这就是传入三次图片,要么就是不写路径,通过传入一张整合以后的图片,来进行移动,实现我们想要看到的效果。提交加载速度。

    相关文章

      网友评论

        本文标题:web进阶之十五:关于背景的图片在元素中的位置

        本文链接:https://www.haomeiwen.com/subject/bnqpgftx.html