【问题标题】:CSS: background image on background colorCSS:背景颜色的背景图像
【发布时间】:2012-01-01 23:20:04
【问题描述】:

我有一个面板,如果这个面板被选中(点击它),我将它涂成蓝色。此外,我在该面板上添加了一个小符号(.png 图像),表示所选面板之前已被选中。

因此,如果用户看到例如 10 个面板,其中 4 个有这个小标志,他就知道他之前已经点击过这些面板。到目前为止,这项工作很好。现在的问题是我不能同时显示小标志和使面板变蓝。

我使用 css background: #6DB3F2; 将面板设置为蓝色,使用 background-image: url('images/checked.png') 设置背景图像。但似乎背景颜色在图像上方,因此您看不到标志。

因此可以为背景颜色和背景图像设置z-indexes 吗?

【问题讨论】:

    标签: css background background-image background-color


    【解决方案1】:

    您需要使用每个属性的完整名称:

    background-color: #6DB3F2;
    background-image: url('images/checked.png');
    

    或者,您可以使用背景速记并在一行中全部指定:

    background: url('images/checked.png'), #6DB3F2;
    

    【讨论】:

    • 第一种方法对我不起作用。第二种速记方法效果很好。
    【解决方案2】:

    非常有趣的问题,还没看到。这段代码对我来说很好。在 chrome 和 IE9 中测试过

    <html>
    <head>
    <style>
    body{
        background-image: url('img.jpg');
        background-color: #6DB3F2;
    }
    </style>
    </head>
    <body>
    </body>
    </html>
    

    【讨论】:

      【解决方案3】:
      body 
      {
      background-image:url('image/img2.jpg');
      margin: 0px;
       padding: 0px;
      }
      

      【讨论】:

        【解决方案4】:

        对我来说,这个解决方案没有奏效:

        background-color: #6DB3F2;
        background-image: url('images/checked.png');
        

        但它却以另一种方式工作:

        <div class="block">
        <span>
        ...
        </span>
        </div>
        

        CSS:

        .block{
          background-image: url('img.jpg') no-repeat;
          position: relative;
        }
        
        .block::before{
          background-color: rgba(0, 0, 0, 0.37);
          content: '';
          display: block;
          height: 100%;
          position: absolute;
          width: 100%;
        }
        

        【讨论】:

        • 感谢代码 Francisc !正如他所说,加入背景颜色和图像也没有解决我的问题。有了这些帮助和对我的代码的小改动,我设法解决了这个问题。
        【解决方案5】:

        你也可以像这样使用小技巧来使用图像和颜色:-

        body {
             background:#000 url('images/checked.png');
         }
        

        【讨论】:

        • 我试过这个,而且它总是在显示图像之前闪烁背景颜色!我用&lt;div style="background: red url('FILE.jpg')"&gt;。如果最后放置红色,它也会闪烁红色。
        【解决方案6】:

        &lt;li style="background-color: #ffffff;"&gt;&lt;a href="/&lt;%=logo_marka_url%&gt;"&gt;&lt;img border="0" style="border-radius:5px;background: url(images/picture.jpg') 50% 50% no-repeat;width:150px;height:80px;" src="images/clearpixel.gif"/&gt;&lt;/a&gt;&lt;/li&gt;

        其他示例框中心图像和背景颜色

        1.首先clearpixel修复图像区域 2.style中心图像区域框 3.li背景或div颜色样式

        【讨论】:

        • 如果有其他合理的选择,内联 CSS 是不合适的。
        【解决方案7】:

        基于MDN Web Docs,您可以使用速记background 属性或除background-color 之外的单个属性设置多个背景。在你的情况下,你可以像这样使用linear-gradient 做一个技巧:

        background-image: url('images/checked.png'), linear-gradient(to right, #6DB3F2, #6DB3F2);
        

        参数中的第一个项目(图像)将放在最上面。第二个项目(彩色背景)将放在第一个项目的下方。您还可以单独设置其他属性。例如,设置图像大小和位置。

        background-size: 30px 30px;
        background-position: bottom right;
        background-repeat: no-repeat;
        

        这种方法的好处是你可以很容易地在其他情况下实现它,例如,你想让蓝色覆盖在具有一定不透明度的图像上。

        background-image: linear-gradient(to right, rgba(109, 179, 242, .6), rgba(109, 179, 242, .6)), url('images/checked.png');
        background-size: cover, contain;
        background-position: center, right bottom;
        background-repeat: no-repeat, no-repeat;
        

        单独设置属性参数。因为图像放在颜色叠加层下面,所以它的属性参数也放在颜色叠加层参数之后。

        【讨论】:

          【解决方案8】:

          如果你想在背景中生成黑色阴影,你可以使用 以下内容:

          background:linear-gradient( rgba(0, 0, 0, 0.5) 100%, rgba(0, 0, 0, 0.5)100%),url("logo/header-background.png");
          

          【讨论】:

            【解决方案9】:

            这是我如何在背景中使用图标设置彩色按钮的样式

            我使用“背景颜色”属性作为颜色,使用“背景”属性作为图像。

              <style>
                .btn {
                  display: inline-block;
                  line-height: 1em;
                  padding: .1em .3em .15em 2em
                  border-radius: .2em;
                  border: 1px solid #d8d8d8;
            
                  background-color: #cccccc;
                }
            
                .thumb-up {
                  background: url('/icons/thumb-up.png') no-repeat 3px center;
                }
            
                .thumb-down {
                  background: url('/icons/thumb-down.png') no-repeat 3px center;
                }
              </style>
            
              <span class="btn thumb-up">Thumb up</span>
              <span class="btn thumb-down">Thumb down</span>
            

            【讨论】:

              【解决方案10】:

              这实际上对我有用:

              background-color: #6DB3F2;
              background-image: url('images/checked.png');
              

              您还可以放置一个实心阴影并设置背景图片:

              background-image: url('images/checked.png');
              box-shadow: inset 0 0 100% #6DB3F2;
              

              如果第一个选项由于某种原因不起作用并且您不想使用框阴影,您可以随时为图像使用伪元素,而无需任何额外的 HTML:

              .btn{
                  position: relative;
                  background-color: #6DB3F2;
              }
              .btn:before{
                  content: "";
                  display: block;
                  width: 100%;
                  height: 100%;
                  position:absolute;
                  top:0;
                  left:0;
                  background-image: url('images/checked.png');
              }
              

              【讨论】:

              • 谢谢,它对我有用
              【解决方案11】:

              也可以使用下一个语法。

              background: <background-color> 
                          url('../assets/icons/my-icon.svg')
                          <background-position-x background-position-y>
                          <background-repeat>;
              

              它允许您组合background-colorbackground-imagebackground-positionbackground-repeat 属性。

              示例

              background: #696969 url('../assets/icons/my-icon.svg') center center no-repeat;
              

              【讨论】:

                【解决方案12】:

                假设您希望在右侧(或左侧)有一个图标,那么这应该是最好的:

                .show-hide-button::after {
                    content:"";
                    background-repeat: no-repeat;
                    background-size: contain;
                    display: inline-block;
                    background-size: 1em;
                    width: 1em;
                    height: 1em;
                    background-position: 0 2px;
                    margin-left: .5em;
                }
                .show-hide-button.shown::after {
                    background-image: url(img/eye.svg);
                }
                

                您也可以使用background-size: contain;,但这应该基本相同。 background-position 将取决于您的形象。

                然后您可以轻松地在悬停时执行替代状态:

                .show-hide-button.shown:hover::after {
                    background-image: url(img/eye-no.svg);
                }
                

                【讨论】:

                  猜你喜欢
                  • 2017-08-11
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2023-03-10
                  • 2023-02-21
                  • 2011-07-22
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多