Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add svg icon into button with css/html?

Tags:

html

css

svg

I want to have the icon displayed inside the button tag, see code below:

#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;  }
<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>

But the icon is just displayed all over the place really big one, how can i get it to fit inside the button ?

like image 249
Mikael Avatar asked Dec 21 '15 10:12

Mikael


People also ask

How use SVG icons in HTML CSS?

SVG images can be written directly into the HTML document using the <svg> </svg> tag. To do this, open the SVG image in VS code or your preferred IDE, copy the code, and paste it inside the <body> element in your HTML document.

How do I make a SVG clickable?

The simplest way to make a portion of an SVG clickable is to add an SVG hyperlink element to the markup. This is as easy as wrapping the target with an <a> tag, just as you would a nested html element. Your <a> tag can surround a simple shape or more complex paths. It can surround a group of SVG elements or just one.

Can you add SVG to CSS?

We can use SVG in CSS via data URI, but without encoding it works only in Webkit based browsers. If encode SVG using encodeURIComponent() it will work everywhere. SVG must have attribute xmlns like this: xmlns='http: //www.w3.org/2000/svg' . If it doesn't exist, it will be added automagically.

Can you embed SVG in HTML?

You can embed SVG elements directly into your HTML pages.


2 Answers

Not sure if the button is not closed or just you copied it here and forgot to close it.

#search-button {    width: 100px;    height: 50px;  }        #search-button svg {    width: 25px;    height: 25px;  }
<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>
like image 144
shadeed9 Avatar answered Sep 22 '22 04:09

shadeed9


I've modified your code a bit an put it up at this fiddle.

The two problems were:

  1. You didn't close your button properly, it needs to end after the SVG
  2. You needed to specify a width for the button (As you can see I left off some of your other CSS)
like image 29
JosephGarrone Avatar answered Sep 24 '22 04:09

JosephGarrone