html css 如何将图片作为背景,CSS背景图片和HTML中的img标签

背景图片:

该图片是218*170

1062fff77103cb91865c0fadb0ce08c8.png

css内容:

div{

width: 100px;

height: 100px;

background: url(img/1.jpg);

border: 2px solid red;

}

c5ab1e872171ee3452d0a0a1d0f5cb36.png

div{

width: 500px;

height: 500px;

background: url(img/1.jpg);

border: 2px solid red;

}

0fb51a439d70f1c6bbfae71ad2df5ef7.png

背景图片的默认格式:

当图片大于div时,图片部分填充;当图片小于div时,图片同时水平平铺和垂直平铺(背景图片的大小不发生改变)。

可以通过background-size设置背景图片的大小

div{

width: 300px;

height: 300px;

border: 2px solid red;

background: url(img/1.jpg) no-repeat;

background-size: 100%,100%;

}

04cd2068effc1603d431a4c913d28b4b.png

background-size: contain  图片的宽和高都在div内部时,停止缩放。图片能完整显示。

div{

width: 100px;

height: 100px;

border: 2px solid red;

background: url(img/1.jpg) no-repeat;

background-size: contain;

}

633d7a30bf86646015e968a638b1f346.png

background-size: cover图片宽高比不变、铺满整个容器的宽高,而图片多出的部分则会被截掉;

div{

width: 100px;

height: 100px;

border: 2px solid red;

background: url(img/1.jpg) no-repeat;

background-size: cover;

}

846125eee28a0d2aa5e9e1a4bb3a27ac.png

background-size:contain 和cover

相同点: 都是将图片以**相同宽高比**缩放以适应整个容器的宽高。

不同点:

1.  在no-repeat情况下,如果容器宽高比与图片宽高比不同,

cover:图片宽高比不变、铺满整个容器的宽高,而图片多出的部分则会被截掉;(图片不完整)

contain:图片自身的宽高比不变,缩放至图片自身能完全显示出来,所以容器会有留白区域;(图片是完整的)

2.  在repeat情况下:cover:与上述相同;contain:容器内至少有一张完整的图,容器留白区域则平铺背景图,铺不下的再裁掉。

background-position: center center;使背景图片居中显示

没有使用时:

div{

width: 1000px;

height: 410px;

border: 2px solid red;

background-image: url(img/2.jpg);

}

9a3e48e160cccace8471f3c2991f9fc2.png

使用background-position: center center;时,背景图片居中显示

div{

width: 1000px;

height: 410px;

border: 2px solid red;

background-image: url(img/2.jpg);

background-position: center center;

}

4689e28d764662441462abe752d5b90c.png

img标签中的图片

如果img设置了宽,图片的宽和高是等比缩放

img{

width: 640px;

}

3cb02b7fd91da72d9932d4aad924697f.png

img{

width: 320px;

}

93fd9633a128ec9c78e559bd778dfd0f.png

两种结合的轮播效果

屏幕大于768px时,高度设置410px,高度不发生改变,宽度一直变化,且图片一直居中。

屏幕小于768时,div不设置宽度,并在div中添加img标签

@media (min-width: 768px) {

#main_ad > .carousel-inner > .item {

height: 410px;

}

}

#main_ad > .carousel-inner > .item > img {

width: 100%;

}

上面的做法有一个不足的地方:容器的高度由img标签决定,当网速慢时,图片一点一点地加载,img的高度逐渐增大,这样页面出现抖动,可以设置img容器的高度和宽度成比例,该比例等于图片的宽高比,利用padding-bottom:xxx%,height:0;padding充当高度,此时img的display:absolute,left:0;top:0;

js文件

$(function() {

// 当文档加载完成才会执行

/**

* 根据屏幕宽度的变化决定轮播图片应该展示什么

* @return {[type]} [description]

*/

function resize() {

// 获取屏幕宽度

var windowWidth = $(window).width();

// 判断屏幕属于大还是小

var isSmallScreen = windowWidth < 768;

// 根据大小为界面上的每一张轮播图设置背景

// $('#main_ad > .carousel-inner > .item') // 获取到的是一个DOM数组(多个元素)

$('#main_ad > .carousel-inner > .item').each(function(i, item) {

// 因为拿到是DOM对象 需要转换

var $item = $(item);

// var imgSrc = $item.data(isSmallScreen ? 'image-xs' : 'image-lg');

var imgSrc =

isSmallScreen ? $item.data('image-xs') : $item.data('image-lg');

// jQuery方式

// $element.data()

// 是一个函数 ,专门用于取元素上的自定义属性(data-abc)

// 函数的参数是我们要取得属性名称(abc)

//

// $element.attr('data-abc')

//

// JS中的写法

// element.dataset['abc']

//

// element.getAttribute('data-abc')

// element.setAttribute('data-abc','')

// 设置背景图片

$item.css('backgroundImage', 'url("' + imgSrc + '")');

//

// 因为我们需要小图时 尺寸等比例变化,所以小图时我们使用img方式

if (isSmallScreen) {

$item.html('

'%20+%20imgSrc%20+%20'');

} else {

$item.empty();

}

});

}

// $(window).on('resize', resize);

// // 让window对象立即触发一下resize

// $(window).trigger('resize');

$(window).on('resize', resize).trigger('resize');

});

  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值