Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Polygon Button with pure CSS [duplicate]

I need to code a polygon button that has an outline with pure css and html. This is what I have right now but I can't figure out how to add the outline. This need to be supported in IE as well. How do I do this?

/**** CSS ***/

#statement .polygon {
  width: 290px;
  height: 75px;
  background: #590f20;
  position: relative;
  color: #F94141;
  text-align: center;
  font-size: 1.8em;
  line-height: 2.9em;
  font-weight: 400;
  text-transform: uppercase;
  margin-top: 50px;
  margin-bottom: 35px;
}
#statement .bottom:before {
  content: "";
  position: absolute;
  top: 0;
  left: -50px;
  width: 0;
  height: 0;
  border-left: 25px solid transparent;
  border-right: 25px solid #590f20;
  border-bottom: 37.5px solid transparent;
}
#statement .bottom:after {
  content: "";
  position: absolute;
  top: 0px;
  left: 290px;
  width: 0;
  height: 0;
  border-left: 25px solid #590f20;
  border-right: 25px solid transparent;
  border-bottom: 37.5px solid transparent;
}
#statement .top:before {
  content: "";
  position: absolute;
  bottom: 37.5px;
  left: -50px;
  width: 0;
  height: 0;
  border-left: 25px solid transparent;
  border-right: 25px solid #590f20;
  border-top: 37.5px solid transparent;
}
#statement .top:after {
  content: "";
  position: absolute;
  bottom: 37.5px;
  left: 290px;
  width: 0;
  height: 0;
  border-left: 25px solid #590f20;
  border-right: 25px solid transparent;
  border-top: 37.5px solid transparent;
}
<div id="statement">
  <div class="container">
    <div class="row">
      <div class="col-md-8 col-md-offset-2">
        <div class="heading">
          <h1></h1>
        </div>
      </div>
    </div>
    <!-- /.row -->
    <div class="row">
      <div class="col-md-3 col-md-offset-4-5">
        <a class="button" href="#button">
          <div class="polygon bottom top">
            Work With Us
          </div>
        </a>
      </div>
    </div>
  </div>
  <!-- /.containter -->
</div>
<!-- /#statement -->
like image 770
Joshua Szuslik Avatar asked Jun 08 '15 22:06

Joshua Szuslik


1 Answers

You can try using a css clip-path ploygon and then add another div to get a border.

#statement .polygon .outer {
  display: inline-block;
  width: 290px;
  height: 75px;
  background: #590f20;
  position: relative;
  color: #F94141;
  text-align: center;
  font-size: 1.8em;
  line-height: 2.9em;
  font-weight: 400;
  text-transform: uppercase;
  -webkit-clip-path: polygon(30px 80px, 0px 50%, 30px 0px, 260px 0px, 290px 50%, 260px 80px);
  clip-path: polygon(30px 80px, 0px 50%, 30px 0px, 260px 0px, 290px 50%, 260px 80px);
  -webkit-transform: scale(0.98, 0.95);
  transform: scale(0.98, 0.95);
}
#statement .polygon.border {
  -webkit-clip-path: polygon(30px 80px, 0px 50%, 30px 0px, 260px 0px, 290px 50%, 260px 80px);
  clip-path: polygon(30px 80px, 0px 50%, 30px 0px, 260px 0px, 290px 50%, 260px 80px);
  background-color: orange;
}
<div id="statement">
  <div class="container">
    <div class="row">
      <div class="col-md-8 col-md-offset-2">
        <div class="heading">
          <h1></h1>
        </div>
      </div>
    </div>
    <!-- /.row -->
    <div class="row">
      <div class="col-md-3 col-md-offset-4-5">
        <a class="button" href="#button">
          <div class="polygon border">
            <span class="outer">
                            Work With Us
                        </span>
          </div>
        </a>
      </div>
    </div>
  </div>
  <!-- /.containter -->
</div>
<!-- /#statement -->
like image 57
Amy Avatar answered Sep 30 '22 06:09

Amy