1、首先我们需要插入一张图片,并且图片只出现一次,并设计图片出现的位置在左上角,可以按照如下代码来完成:
<html>
<head>
<title>图片位置设置</title>
<style type="text/css">
body{
background-image:url("2.jpg")
background-attachment:scorll
background-repeat:no-repeat
background-position:top left
}
</style>
</head>
<body>
</body>
</html>
可以看到背景图片出现的位置在浏览器的左上角,这个和默认的设置是一样的。
2、我们需要让图片出现在上方的正中间,这里我就用代码来说明问题,具体详细代码如下:
<html>
<head>
<title>图片位置设置</title>
<style type="text/css">
body{
background-image:url("2.jpg")
background-attachment:scorll
background-repeat:no-repeat
background-position:top center
}
</style>
</head>
<body>
</body>
</html>
从下图的执行结果可以看到,我们的背景图片出现在了上方的正中间这个位置上了。
3、在上方的中间和左边都出现了,接下来设置图片出现在上方的右边,具体代码如下所示:
<html>
<head>
<title>图片位置设置</title>
<style type="text/css">
body{
background-image:url("2.jpg")
background-attachment:scorll
background-repeat:no-repeat
background-position:top right
}
</style>
</head>
<body>
</body>
</html>
可以看到如下图所示的执行效果图,图片出现的位置在上方的右边了。
4、如果需要图片出现的位置在正中间,我们知道设计网页的时候背景图片等等元素一般都是需要放在正中间这个位置上的,这里我就来分析下如何将背景图片放置在正中间这个位置上,具体代码如下:
<html>
<head>
<title>图片位置设置</title>
<style type="text/css">
body{
background-image:url("2.jpg")
background-attachment:scorll
background-repeat:no-repeat
background-position:center center
}
</style>
</head>
<body>
</body>
</html>
可以看到如下的执行结果,背景图片出现在了下方的正中间这个位置上了。
5、设置图片出现在背景图片的下方左边这个位置,下边用到了bottom这个属性值来设置的,具体代码如下:
<html>
<head>
<title>图片位置设置</title>
<style type="text/css">
body{
background-image:url("2.jpg")
background-attachment:scorll
background-repeat:no-repeat
background-position:bottom left
}
</style>
</head>
<body>
</body>
</html>
可以看到如下图所示的结果,
6、还可以设置背景图片出现的位置在最下方,可以看到如下代码:
<html>
<head>
<title>图片位置设置</title>
<style type="text/css">
body{
background-image:url("2.jpg")
background-attachment:scorll
background-repeat:no-repeat
background-position:bottom
}
</style>
</head>
<body>
</body>
</html>
通过如下图可以看到具体的执行效果,只用一个bottom就能设置图片出现在最下方这个位置上了。
7、用background-position设置图片的位置除了使用相对位置还能使用绝对位置来设置,可以设置像素值来确定背景图片左上角的坐标点来确定,具体代码如下:
<html>
<head>
<title>图片位置设置</title>
<style type="text/css">
body{
background-image:url("2.jpg")
background-attachment:scorll
background-repeat:no-repeat
background-position:150px 150px
}
</style>
</head>
<body>
</body>
</html>
从下图可以看到我们的执行结果,背景图片出现的位置是150px,150px这个点作为左上角的起始点。
在理解css的背景图片之前需要清楚两个问题,在什么情况下去使用css的背景图片?又在什么情况下去使用img标签的内容图片?html中专门有一个img标签用于向页面中去插入内容图片,那么如何区分这两种情况呢?
网页中可以使用很多的图片格式,下面简单的列举一些:
background-position 属性既可以使用关键字,也可以使用像素、em、百分比,最简单的情况下:可以给两个值,一个表示相对于左侧的偏移量,一个表示相对于顶部的偏移量。
calc()可以让浏览器代替你计算任何数值,包括(角度、像素、百分比等),甚至还支持混合单位的计算,非常强大,比如:你使用的页面布局为百分比布局,但是在UI设计稿中又需要去进行20px的偏移,那么就可以写成“calc(100% + 20px)”。
同样的,背景图片右侧定位的问题也可以使用calc()去处理,比如:左侧为文本内容,右侧icon图标的定位。
默认的情况下,背景图片是绘制在元素边框以内的,如果把图片定位到边框的下方,而边框又被设置为半透明,那么图片边缘就会出现半透明的边框,使用background-clip属性可以处理这种情况,background-clip:border-box将其改为padding-box就可以把图片剪裁到内边距盒子内,content-box值会把图片位于内边距及其之外的部分剪裁掉。
背景会附着在指定的元素后面,如果滚动页面,那么背景也会随着页面的滚动而滚动,通过background-attachment属性改变这种行为。
除了fixed和默认值scroll,还可以把background-attachment设为local,它与scroll的区别在于,scroll会让图片相对于元素本身固定,而local会让背景图片相对于元素中的内容固定,也就是元素设置了固定大小,overflow设置了auto或scroll,则元素内部内容滚动显示时,图片会随之滚动。
background-size明确指定一个值,可以重新设置图片大小,也可以让它随着元素大小缩放.
如果希望图片随着元素的缩放而缩放,则必须设置为百分比的形式,不过,百分比设置时不是相对于图片固有的大小,而是相对于容器的大小,如果给图片的宽高都加以百分比的形式处理,那么会导致图片产生变形。
还有一个属性值contain,这个值会让浏览器尽可能的保持图片的最大化,同时不改变图片的宽高比,浏览器决定哪一边使用auto。
另一个属性值为cover,意思是图片会缩放,覆盖整个元素,同时不会变形,如果在一个高而窄的元素中,元素高度会填满,但是图片的两边会被切除掉。