You need to change the technique to achieve this.
The CSS is :
.breadcrumb {
list-style: none;
overflow: hidden;
font: 18px Helvetica, Arial, Sans-Serif;
}
.breadcrumb li a {
color: white;
text-decoration: none;
padding: 10px 30px 10px 25px;
background: transparent;
position: relative;
display: block;
float: left;
z-index: 1;
}
.breadcrumb li a:after {
content: " ";
display: block;
width: 99%;
height: 50%;
background: linear-gradient(to bottom, lightgreen, green);
position: absolute;
top: 0px;
left: 0px;
z-index: -1;
-webkit-transform: skewX(35deg);
transform: skewX(35deg);
}
.breadcrumb li a:before {
content: " ";
display: block;
width: 99%;
height: 50%;
position: absolute;
bottom: 0px;
left: 0px;
z-index: -1;
background: linear-gradient(to bottom, green, black);
-webkit-transform: skewX(-35deg);
transform: skewX(-35deg);
}
.breadcrumb li a:hover:after {
background: linear-gradient(to bottom, black, green);
}
.breadcrumb li a:hover:before {
background: linear-gradient(to bottom, green, lightgreen);
}
demo
How does it work?
I keep the base element transparent, and only use from it the text.
Then, the 2 pseudo elements are layered in the top half of the base element, slanted backwards, and the bottom half of the base element, slanted forward.
You can easily adjust the angle of the effect.
And finally, the hover state, just changing the gradients.
Only drawback: since the gradient is split in two parts, you need to find the color that matches in the mid point.
I changed your request from brown to green, so it is more easily seen.