如何在div中居中(背景)图像?

oom*_*pah 129 html css background image center

是否可以将背景图像置于div中?我几乎尝试过所有事情 - 但没有成功:

<div id="doit">
  Lorem Ipsum ...
</div>

//CSS
#doit { background-image: url(images/pic.png); background-repeat: none; text-align: center; }
Run Code Online (Sandbox Code Playgroud)

这可能吗?

Jak*_*cas 265

#doit {
    background: url(url) no-repeat center;
}
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.用于居中的特定CSS是"background-position:center;" (22认同)
  • 如果背景图像是精灵,则不起作用. (5认同)
  • 如果要使整个div充满图像且没有多余的空间,则应使用“ background-size:cover;”;如果要显示整个图像而没有图像的任何部分被剪切或拉伸,则要使用`background-size:包含;` (2认同)

Tim*_*NET 77

尝试 background-position:center;

编辑:因为这个问题得到了很多观点,值得添加一些额外的信息:

text-align: center 将无法工作,因为背景图像不是文档的一部分,因此不是流程的一部分.

background-position:center是简写background-position: center center; (background-position: horizontal vertical);


Cap*_*ule 15

使用背景位置:

background-position: 50% 50%;
Run Code Online (Sandbox Code Playgroud)


cla*_*lew 7

如果您的背景图像是垂直对齐的精灵表,您可以像这样水平居中每个精灵:

#doit {
    background-image: url('images/pic.png'); 
    background-repeat: none;
    background-position: 50% [y position of sprite];
}
Run Code Online (Sandbox Code Playgroud)

如果您的背景图像是水平对齐的精灵表,您可以像这样垂直居中每个精灵:

#doit {
    background-image: url('images/pic.png'); 
    background-repeat: none;
    background-position: [x position of sprite] 50%;
}
Run Code Online (Sandbox Code Playgroud)

如果您的精灵表是紧凑的,或者您没有尝试将您的背景图像置于上述场景之一的中心,则这些解决方案不适用.


Mor*_*dri 6

要居中或定位背景图像,应使用background-positionproperty。background-position属性设置元素背景topleft元素侧面的背景图像的起始位置。CSS语法为background-position : xvalue yvalue;

支持的“ xvalue”和“ yvalue”值是长度单位,例如px和百分比以及方向名称,例如left,right等。

“ xvalue”是背景的水平位置,从元素的顶部开始。这意味着,如果您使用50px它,则距元素顶部至少50px。而“ yvalue”是具有相同条件的垂直位置。

因此,如果您使用background-position: center;背景图像,则图像将居中。

但是我总是使用以下代码:

.yourclass {
  background: url(image.png) no-repeat center /cover;
 }
Run Code Online (Sandbox Code Playgroud)

我知道这是如此令人困惑,但这意味着:

.yourclass {
  background-image: url(image.png);
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
Run Code Online (Sandbox Code Playgroud)

而且我也知道这background-size是一个新属性,在压缩代码中什么是,/cover但是这些代码意味着fillWindows桌面背景中的背景大小和位置。

你可以看到更多的细节background-position这里background-size这里


Hem*_*ela 5

这对我有用:

#doit{
    background-image: url('images/pic.png');
    background-repeat: no-repeat;
    background-position: center;  
}  
Run Code Online (Sandbox Code Playgroud)