简体   繁体   中英

Font awesome icon button with label below

I need to create a button with a font awesome icon and a text below that icon for a navigation menu. The result should look like ie the icons in the MS ribbon:

在此处输入图片说明

I also need the arrow below of that (ie. "new"-button) for more options...

This is how I would create the button:

JSFiddle: http://jsfiddle.net/3GMjp/77/

 .my-fancy-container { display: inline-block; border: 1px solid #ccc; border-radius: 6px; margin: 60px; padding: 10px; } .my-text { font-family: "Courier-new"; } .my-icon { vertical-align: middle; font-size: 40px; } 
 <div class="my-fancy-container"> <span class='icon icon-file-text my-icon'></span> <span class="my-text">New</span> </div> 

To place the text bellow the button, add display: block :

.my-text {
  display: block;
  font-family: "Courier-new";
}

To center your image, add a text-align :

.my-fancy-container {
  border: 1px solid #ccc;
  border-radius: 6px;
  display: inline-block;
  margin: 60px;
  padding: 10px;
  text-align: center;
}

For the arrow, add a div and this css :

<div class="arrow-down"></div>

CSS:

.arrow-down {
    width: 0; 
    height: 0; 
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid black;
    margin: 0 auto;
}

JSfiddle: http://jsfiddle.net/ghorg12110/3GMjp/418/

SNIPPET :

 .my-fancy-container { border: 1px solid #ccc; border-radius: 6px; display: inline-block; margin: 60px; padding: 10px; text-align: center; } .my-text { display: block; font-family: "Courier-new"; } .my-icon { vertical-align: middle; font-size: 40px; } .arrow-down { width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 5px solid black; margin: 0 auto; } 
 <link href="http://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet"/> <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet"/> <div class="my-fancy-container"> <span class='icon icon-file-text my-icon'></span> <span class="my-text">Hello World</span> <div class="arrow-down"></div> </div> 

Add display: block and text-align: center to your icon class.

Fiddle

A nother possibility is to use the before and after selector

See this fiddle

As you can see in your css

  .my-fancy-container { display: inline-block; border: 1px solid #ccc; border-radius: 6px; margin: 60px; padding: 30px; position: relative; } .my-fancy-container::after { content: "\\f0d7"; font-family: FontAwesome; font-style: normal; font-weight: normal; text-decoration: inherit; /*--adjust as necessary--*/ color: #000; font-size: 18px; padding-right: 0.5em; position: absolute; bottom: 5px; left: 45%; } .my-text { font-family: "Courier-new"; } .my-fancy-container::before { content: "\\f15c"; font-family: FontAwesome; font-style: normal; font-weight: normal; text-decoration: inherit; /*--adjust as necessary--*/ color: #000; font-size: 28px; padding-right: 0.5em; position: absolute; top: 5px; left: 40%; } .my-icon { vertical-align: middle; font-size: 40px; } 
 <link href="http://netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.min.css" rel="stylesheet"/> <link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet"/> <div class="my-fancy-container"> <span class="my-text">Hello World</span> </div> 

there are only a few changes :)

Of course you can place the image with the before selector as well.. so you have two images on the button and the text in the middle.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM