关于html,我在css里通过background引入一张图片,但是无论怎么设置,宽高都为0,要怎么解决?

关于html,我在css里通过background引入一张图片,但是无论怎么设置,宽高都为0,要怎么解决?,第1张

a标签和span标签默认都是行内元素,如果里面的内容为空(指实际内容如文字和图片为空,即使里面包含了空的行内元素也是不算作实际内容的,此外背景图片也不是实际内容),则它的宽高始终是保持为0的,不管怎么设置都是不行的(你可以试着在span内加入一些文字,它立刻就会有宽高了,但实际上这是文字的宽高,不是span本身的宽高)。

解决办法就是使用块级元素,方法有:

1、直接换用块级元素,比如 div 就是

2、在css中用 display:block 可以把行内元素改成块级元素

3、浮动元素(float:left或float:right)会自动变为块级元素

4、绝对定位(position:absolute)的元素也会变成块级元素

CSS显示一个大图片中的多个小图标,主要是用background-position这个属性来控制的。

先看下面这张300*300的大图片,每个小图标是100*100的。(这张图片名字叫9pic2.jpg)

首先先将你要放置背景小图标的元素的大小设置成图片里图标的实际大小,用width和height设置,然后用background-image把背景图片放进去,比如:

.showImage{

    background-image: url(9pic2.jpg)

    width: 100px

    height: 100px

}

这么设置完毕后,大图片左上角那个小图标(这里假设是100*100的小图标)就出来了。

然后用background-position属性调整背景图片的位置,它有两个值分别表示背景图片沿着x和y轴移动的距离。你想象背景图片一开始是和当前元素左上角重合,但背景图片是可以移动的,由于浏览器坐标系x轴正向右,y轴正向下。所以,背景图片一般需要向左移动,和向上移动,这样移动的值往往都是负的。

比如上面第2张小图标,需要把大图片沿着x方向向左移动100px,y方向不变,设置background-position属性如下:

#item2{

    background-position: -100px 0

}

其他的同理。

最后贴出来一个例子,看明白了这个属性就懂了。

用到的另一张图片名字叫9pic1.jpg,先贴出来:

代码如下:

<!doctype html>

<html lang="en">

    <head>

    <meta charset="UTF-8">

    <title>背景background-position切图</title>

    <style>

        .showImage{

            background-image: url(9pic2.jpg)

            width: 100px

            height: 100px

        }

        .showImage:hover{

            background-image: url(9pic1.jpg)

        }

        ul{

            list-style: none

        }

        ul li{

            float: left

            margin: 20px

        }

        #item1{

            background-position: 0 0

        }

        #item2{

            background-position: -100px 0

        }

        #item3{

            background-position: -200px 0

        }

        #item4{

            background-position: 0 -100px

        }

        #item5{

            background-position: -100px -100px

        }

        #item6{

            background-position: -200px -100px

        }

        #item7{

        background-position: 0 -200px

        }

        #item8{

            background-position: -100px -200px

        }

        #item9{

            background-position: -200px -200px

        }

    </style>

    </head>

    <body>

        <div class="container">

            <ul>

                <li id="item1" class="showImage"></li>

                <li id="item2" class="showImage"></li>

                <li id="item3" class="showImage"></li>

                <li id="item4" class="showImage"></li>

                <li id="item5" class="showImage"></li>

                <li id="item6" class="showImage"></li>

                <li id="item7" class="showImage"></li>

                <li id="item8" class="showImage"></li>

                <li id="item9" class="showImage"></li>

            </ul>

        </div>

    </body>

</html>

这个例子把那个图片打散,横排在页面上,还用:hover伪类实现了你鼠标移动到上面就从黑白变彩色。

解析:前面的url是自定义鼠标图标的路径,可以为相对/绝对路径。第二个参数是css标准的cursor样式。可换成其他属性(如pointer/crosshair/default/等)

注意:w3school推荐第二个参数必须定义一个普通的光标,以防止url定义的光标有备用选项。另外,IE下第二个参数可以省略。

自定义鼠标图标,需要注意以下几点:

① 图标的格式

IE支持cur,ani,ico这三种格式,FF支持bmp,gif,jpg,cur,ico这几种格式,不支持ani格式,也不支持gif动画格式,因此一般将url引用的图标存为ico或cur格式比较好。

② 图标的大小

鼠标图标的尺寸推荐32*32,否则可能出现大小不一致问题。

参考文章: 使用自定义的鼠标图标


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11304195.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存