我有这样的div:
<div id="mybox">Hello World</div>
,这个的CSS是:
#mybox {
position:absolute;
left:30px;
top:147px;
width:556px;
height:31px;
font-family : Verdana, Helvetica, sans-serif;
font-size : 24px;
color: white;
background-image:url('images/image2.jpg');
background-repeat:no;
text-align:left;
vertical-align:middle;
text-shadow: 0px 0px 10px #000;
}
就像我说的,这个div里面有一个文本。在这个例子中:“你好世界”。
但我觉得文字太靠近左边框了,我想在div上加一点填充。所以我添加了这个
padding-left:5px;
问题在于,通过这样做,div的图像向右移动并覆盖右边的另一个div。
如何将文本向右移动5个像素并保持div的图像固定?
感谢。
答案 0 :(得分:4)
您必须使用text-indent
FROM http://reference.sitepoint.com/css/text-indent
边距和填充影响整个块,文本缩进仅适用 到元素中第一个渲染的文本行。
{c} text-indent
#mybox {
position:absolute;
left:30px;
top:147px;
width:556px;
height:31px;
font-family : Verdana, Helvetica, sans-serif;
font-size : 24px;
color: white;
background-image:url('images/image2.jpg');
background-repeat:no;
text-align:left;
vertical-align:middle;
text-shadow: 0px 0px 10px #000;
text-indent:100px;
}
检查此working Demo
重要提示:
来自http://css-plus.com/2010/09/best-of-css-plus/
如果您的设置宽度为200px,然后添加20px左边的填充,则 总元素大小为220px。有可能解决这个问题 通过将宽度更改为180px,但我发现这非常烦人 每次更改填充时都必须更改宽度。文本缩进 绝对精彩地解决了这个问题。
答案 1 :(得分:2)
您应该在背景图片中添加位置:
background-image: url('images/image2.jpg');
background-position: left top;
background-repeat: no-repeat;
答案 2 :(得分:0)
编辑:
填充工作正常,您可以在这个小提琴中查看它:http://jsfiddle.net/6HxJ4/
我只是添加一个边框来显示边界线的内容
padding-left:50px;
答案 3 :(得分:0)
你可以使用
padding-left:5px;
background-position: -5px 0px;
答案 4 :(得分:0)
最简单的解决方案是将文本包装在另一个元素中,并为该元素赋予5个像素的左边距,如下所示:
<div id="mybox">
<p>Hello World</p>
</div>
CSS:
p {
margin-left:5px;
}
在div上设置一个边距不会在框内移动文本。
答案 5 :(得分:0)
迟到的回应......
这可以通过CSS background-origin解决。
正如w3schools所指出的那样......
background-origin: padding-box|border-box|content-box|initial|inherit;
在这个例子中......
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding-left: 20px;
padding-top: 40px;
background-origin: padding-box;
background-repeat: no-repeat;
background-position: 20px 10px;
background-size: 22px 22px;
background-image: url(../artwork/image.png);
...文本和图像以20像素左对齐,图像距离div顶部20像素,文本从顶部开始40像素。