Home >Web Front-end >CSS Tutorial >How Can I Create an Elongated Hexagonal Button with Arrows Using Only One HTML Element?

How Can I Create an Elongated Hexagonal Button with Arrows Using Only One HTML Element?

Barbara Streisand
Barbara StreisandOriginal
2024-12-17 19:59:15590browse

How Can I Create an Elongated Hexagonal Button with Arrows Using Only One HTML Element?

Creating an Elongated Hexagon-Shaped Button with a Single HTML Element

Problem:

Design a button with an elongated hexagonal shape, featuring arrows on both ends, using only one HTML element and CSS.

Challenge:

Using both :before and :after elements would create two arrows on one side, necessitating an additional element. Additionally, aligning and sizing the arrows is problematic.

Solution with a Single Element:

To address these challenges, an alternative approach emerged that employed two pseudo-elements within a single element:

  1. Pseudo-Elements: The :before and :after pseudo-elements, both half the size of the main button, form the upper and lower halves of the shape.
  2. Positioning: The :before element is placed at the top with a perspective and rotation to achieve the angled effect. The :after element is positioned below and rotated to create the opposite angle.
  3. Border Manipulation: By removing the border at certain points, the appearance of a hexagon is created, with arrows extending at both ends.

Example Code:

.button {
  position: relative;
  display: block;
  background: transparent;
  width: 300px;
  height: 80px;
  ...

  .button:before,
  .button:after {
    position: absolute;
    content: '';
    width: 300px;
    left: 0px;
    height: 34px;
    z-index: -1;
  }

  .button:before {
    transform: perspective(15px) rotateX(3deg);
  }
  .button:after {
    top: 40px;
    transform: perspective(15px) rotateX(-3deg);
  }

  /* Button Border Style */

  .button.border:before,
  .button.border:after {
    border: 4px solid #e04e5e;
  }
  .button.border:before {
    border-bottom: none;
  }
  .button.border:after {
    border-top: none;
  }

  /* Button hover styles */

  .button.border:hover:before,
  .button.border:hover:after {
    background: #e04e5e;
  }
  .button.border:hover {
    color: #fff;
  }
}

With this approach, the elongated hexagon-shaped button can be created using just one HTML element and CSS, without the need for additional elements.

The above is the detailed content of How Can I Create an Elongated Hexagonal Button with Arrows Using Only One HTML Element?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn