CSS:两个背景图像,位置在一个元素上

axkjgtzd  于 2023-10-21  发布在  其他
关注(0)|答案(4)|浏览(133)

在我的CSS文件中,我有一个规则:在文本元素前后添加两个背景图像。之前我用了两张图片,一切都很好。但现在我使用精灵:所以我需要得到大图像的区域,并将其发布到元素(背景位置),但我有一个麻烦:如果我设置背景位置:我不能坚持它的位置,像左中心和右中心:
background: url(../images/png/elements.png) no-repeat -5px -152px, url(../images/png/elements.png) no-repeat -5px -104px;
我怎么能浮动第一部分到左边和第二部分到右边的元素?
之前是:
background: url(../images/png/mail.png) no-repeat left center, url(../images/png/edit.png) no-repeat right center;
这是真实的吗?
我用:hover

6uxekuva

6uxekuva1#

我担心这是不可能的,以限制可视区域的精灵图像,除非元素本身的大小是有限的。
然而,也许你可以将背景图像分配给::before::after伪元素,它们被正确地定位在父框的左侧/右侧(通过floatabsolute定位)。
这样你就可以独立地处理每个图标的位置。
例如:

  1. .box:before, .box:after {
  2. content: "";
  3. display: inline-block; /* or position these elements by floats, etc. */
  4. width: 48px; /* for instance */
  5. height: 48px; /* for instance */
  6. }
  7. .box:before {
  8. background: url(../images/png/elements.png) no-repeat -5px -152px;
  9. }
  10. .box:after {
  11. background: url(../images/png/elements.png) no-repeat -5px -104px;
  12. }
  1. <div class="box"></div>
展开查看全部
plupiseo

plupiseo2#

您正在使用的leftright属于background-position。像素定义覆盖了它们。
你应该把图像分成两个不同的元素。

0yg35tkg

0yg35tkg3#

不要使用Shorthand(特别是在position属性中):
试着用这样的东西:

  1. div {
  2. width: 100%;
  3. height: 190px;
  4. border: 1px solid red;
  5. background: url(http://alt-web.com/Images/CSSSprite.jpg), url(http://alt-web.com/Images/CSSSprite.jpg);
  6. background-position: left top, right bottom;
  7. background-repeat: no-repeat;
  8. }
  1. <div></div>

编辑:像素、零和%的示例。

  1. div {
  2. width: 100%;
  3. height: 190px;
  4. border: 1px solid red;
  5. background-image: url(http://alt-web.com/Images/CSSSprite.jpg), url(http://alt-web.com/Images/CSSSprite.jpg);
  6. background-position: 0 0, 100% -1215px;
  7. background-repeat: no-repeat;
  8. }
  1. <div></div>
展开查看全部
mwg9r5ms

mwg9r5ms4#

  1. section.homepage.customer{
  2. background-image: url('/assets/img/homepage/top-left.png'), url('/assets/img/homepage/bottom-right.png');
  3. background-position: top left, bottom right;
  4. background-repeat: no-repeat;
  5. background-size: 672px;
  6. }

相关问题