使用css/html将svg图标添加到按钮中?

Mik*_*ael 13 html css svg

我想在按钮标签内显示图标,请参阅下面的代码:

#header-search {
  width: 200px;
  background: @header-color;
  color: white;
  font-size: 12pt;
  border: 0px solid;
  outline: 0;
  vertical-align: -50%;
}

#header-search::-webkit-input-placeholder {
  color: white;
}

#search-button {
  background: #FFFFFF;
  vertical-align: -50%;
}

.header-view-logo {
  vertical-align: middle;
}

#search-icon {
  fill: white;
}
Run Code Online (Sandbox Code Playgroud)
<button id="search-button" />
<svg id="search-icon" class="search-icon" viewBox="0 0 24 24">
    <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>
    <path d="M0 0h24v24H0z" fill="none"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

但是图标只显示在整个地方非常大,我怎么能让它适合按钮?

sha*_*ed9 22

不确定按钮是否未关闭或只是您将其复制到此处并忘记关闭它.

#search-button {
  width: 100px;
  height: 50px;
}
    
#search-button svg {
  width: 25px;
  height: 25px;
}
Run Code Online (Sandbox Code Playgroud)
<button id="search-button">
    <svg id="search-icon" class="search-icon" viewBox="0 0 24 24">
        <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>
        <path d="M0 0h24v24H0z" fill="none"/>
    </svg>
 </button>
Run Code Online (Sandbox Code Playgroud)


Jos*_*one 6

我稍微修改了你的代码,把它放在这个小提琴上。

这两个问题是:

  1. 你没有button正确关闭你的,它需要在 SVG之后结束
  2. 您需要为按钮指定宽度(如您所见,我省略了其他一些 CSS)


Pmp*_*mpr 6

我建议你这样做:

#header-search, #search-button {
    display: inline-block;
    vertical-align: top;
    line-height: 0;
    font-size: 1.1rem;
    height: 1.7rem;
    padding: 0;
}

#header-search {
    margin: 0;
    line-height: 0;
    padding: 0.8rem 0.7rem
}

#search-button {
    width: 2.4rem;
    height: 1.9rem;
}

#search-icon {
  width: 1.3rem;
  height: 1.3rem;
}
Run Code Online (Sandbox Code Playgroud)
<div class="search">
    <input id="header-search" type="search" placeholder="Search..." />
    <button id="search-button">
        <svg id="search-icon" class="search-icon" viewBox="0 0 24 24">
            <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>
            <path d="M0 0h24v24H0z" fill="none"/>
        </svg>
    </button>
</div>
Run Code Online (Sandbox Code Playgroud)