【问题标题】:css "background-image" shows unwanted border, img "src" does notcss "background-image" 显示不需要的边框,img "src" 没有
【发布时间】:2016-01-13 16:52:59
【问题描述】:

开始使用 Twitter Bootstrap,我遇到了一个奇怪的问题,我无法找出原因。

当我使用以下方式渲染图像时:

<img class="img-rounded" id="logo" />

在 CSS 中:

#logo {
    background-image: url(/Content/Images/logo.png);
}

图像以窄“边框”显示:

即使我找不到与此效果相关的任何东西。由于img-rounded 类,角落是开放的。

使用以下方式渲染图像:

<img class="img-rounded" id="logo" src="~/Content/Images/SO.png" />

按预期呈现:

我怎样才能摆脱边界? 我尝试过的 CSS 代码没有成功:

  • border: none;
  • color: blue;
  • background-color: blue;
  • border-style: none;

【问题讨论】:

  • 为什么要在图像上插入背景图像?
  • border-style:none?
  • 正在尝试实现这样的目标吗? JSFiddle&lt;img&gt; 标签上使用图像作为background-image 并不是一个好主意。
  • @rblarsen 好问题。我最初有一个
    ,但是看到一个 Bootstrap 示例,我决定将其更改为 ,这对保持相同的 css 毫无意义。我再次将其更改为
    并且效果很好。

标签: html css twitter-bootstrap twitter-bootstrap-3


【解决方案1】:

答案是不要使用&lt;img&gt;标签,尝试在css中设置background-image

使用&lt;div&gt;&lt;img src="pic.png"&gt;,而不是两者的无效混合。

感谢指出这一点的 rblarsen。

【讨论】:

    【解决方案2】:

    这应该可行。我相信这个问题与没有使用src 属性的img 标记有关。在这种情况下,我们可以简单地使用div 标签。

    我之前在 SO 上遇到过这个问题,不过我不记得那个问题的链接了。

    1) 将 heightwidth 设为 0。

    2) 根据图像大小提供适当的填充。 (即填充:宽度/2px 高度/2px 宽度/2px 高度/2px)

    简而言之,您的左右填充应添加到图像的width 和 您的顶部和底部填充应添加到图像的height

    img {
        background: url(http://i.stack.imgur.com/8C4wK.png) no-repeat;
        font-size:0;
        width:0px;
        height:0px;
        padding:36px 99px 36px 99px; /* Since height and width are 0. use appropriate padding. Image is of 197 X 73 dimension. So using 36px on left and right whereas 99px each on top and bottom*/
        border-style:none;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/>
    
    
    <img />

    【讨论】:

      【解决方案3】:

      只需添加这个,希望它会运作良好

      #logo {
          background-image: url(/Content/Images/logo.png);
          border-radius:0px;
          border:0px;
      }
      

      【讨论】:

        【解决方案4】:

        对于遇到这种情况的人,问题的实际解决方案(而不是人们告诉你“不要那样做”)是设置src图像到空白图像;最好是 1x1 图像以减少负载大小,甚至可以选择作为合并的 base64 URI 以消除额外的 HTTP 请求(取决于哪种解决方案更合适)。

        所以从 OP 的例子来看,修改后的代码:

        <img class="img-rounded" id="logo" src="/images/blank.gif" />
        

        <img class="img-rounded" id="logo" src="data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="" />
        

        【讨论】:

          【解决方案5】:

          使用图像作为背景。为什么不设置为按钮的src属性

          <input src="images/submit-bkg.png" id="searchsubmit" name="searchsubmit" type="image" value="" tabindex="2"/>
          

          当您将类型设置为图像时,输入也需要一个 src 属性..

          参考:http://www.w3.org/TR/html401/interact/forms.html#adef-srchttp://www.w3.org/TR/html401/interact/forms.html#h-17.4.1

          【讨论】:

          • 我有不同的主题,例如使用 css 文件更改此徽标。我不想将逻辑移动到标记以设置正确的 src。
          猜你喜欢
          • 2015-02-11
          • 1970-01-01
          • 1970-01-01
          • 2013-03-09
          • 2012-03-01
          • 2013-02-17
          • 1970-01-01
          • 1970-01-01
          • 2010-11-05
          相关资源
          最近更新 更多