以下代码中左上方的border区域未显示图片,按理来说图片会默认占满border区域

以下代码中左上方的border区域未显示图片,按理来说图片会默认占满border区域

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Clip</title>

<style type="text/css">

* {

    margin: 0;

    padding: 0;

    border: none;

}

div {

    width: 800px;

    height: 400px;

    padding: 50px;

    border: 50px solid transparent;

    background: url('bg1.jpg') no-repeat ;

    /* background-origin: border-box;

    background-origin: padding-box;

    background-origin: content-box; */

}

span.div_border {

    position: absolute;

    top: 0;

    left: 0;

    width: 800px;

    height: 400px;

    padding: 50px;

    border: 50px solid rgba(255, 0, 0, .25);

}

span.div_padding {

    position: absolute;

    top: 50px;

    left: 50px;

    width: 800px;

    height: 400px;

    border: 50px solid rgba(255, 255, 0, .25);

}

</style>

</head>

<body>

<div></div>

<span class="div_border"></span>

<span class="div_padding"></span>

</body>

</html>


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,因为背景图片是比较大的,原本默认从padding方向显示,图片超出div的部分被裁减。同学后来提供的代码给background-position设置水平、垂直方向都设置了居中,这时候图片会铺满整个div,也就是从border开始显示图片。(background-position 属性设置背景图像的起始位置。)

http://img1.sycdn.imooc.com//climg/5de9ba9009a4936b08080303.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

  • 慕运维5475419 提问者 #1
    为什么background-position水平、垂直方向都设置了居中后,背景图会铺满整个div
    2019-12-06 10:38:36
好帮手慕星星 2019-12-05 17:26:56

同学你好,背景图片比较特殊,默认起始位置是padding部分,所以左侧和上面border部分不会显示,可以添加background-origin属性,参考:

http://img1.sycdn.imooc.com//climg/5de8d28709f0cfff06650380.jpg


如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 提问者 慕运维5475419 #1
    下面的代码为什么显示背景图占满了border,下面的代码和我之前发的有什么区别吗 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Clip</title> <style type="text/css"> * { margin: 0; padding: 0; border: none; } div { width: 800px; height: 400px; padding: 50px; border: 50px solid transparent; background: url('bg1.jpg') no-repeat center center; /* background-clip: border-box; background-clip: padding-box; background-clip: content-box; */ } span.div_border { position: absolute; top: 0; left: 0; width: 800px; height: 400px; padding: 50px; border: 50px solid rgba(255, 0, 0, .25); } span.div_padding { position: absolute; top: 50px; left: 50px; width: 800px; height: 400px; border: 50px solid rgba(255, 255, 0, .25); } </style> </head> <body> <div></div> <span class="div_border"></span> <span class="div_padding"></span> </body> </html>
    2019-12-06 05:28:42
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师