Hexagon shape with a border/outline
I know it’s possible to create a hexagon shape using the following code:
How can I create a hexagon that’s filled with one color, and outlined with another? I’m trying to fiddle with it, but it does not seem to be possible.
Any other alternatives are welcome, I would like to avoid using images.
It is not directly possible to achieve this, as hexagons are created by borders through pseudo elements. An alternative would be to overlay hexagons within hexagons, thus achieving the same desired results.
Here is an example of what can be achieved:
HTML - pretty basic, continue the same pattern for more borders.
CSS (three layers - two inner elements)
Start with the hexagon class, defining the shape/size/colors:
Style the inner class and use
transform: scale() to proportionally decrease the dimensions of the inner elements. In this example, a scale of
scale(.8, .8) is used. If you want thicker borders, decrease the numbers; conversely, if you want thinner borders, increase the numbers.
Specify and overwrite the colors, also increase the
z-index value to bring the element forward.
Style the second nested element, essentially following the same steps as last time. It’s worth nothing that the same
scale value is used, because it is within an already scaled element. Of course, you can use whatever you want; this is just a basic example.
Again, live example here