Home >Web Front-end >CSS Tutorial >How to Create a Responsive CSS Triangle Using Percentage Width?

How to Create a Responsive CSS Triangle Using Percentage Width?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-02 02:40:09676browse

How to Create a Responsive CSS Triangle Using Percentage Width?

Creating a Responsive CSS Triangle with Percentage Width

The code provided below generates an arrow positioned below an element:

.btn {
    position: relative;
    display: inline-block;
    width: 100px;
    height: 50px;
    text-align: center;
    color: white;
    background: gray;
    line-height: 50px;
    text-decoration: none;
}
.btn:after {
    content: "";
    position: absolute;
    bottom: -10px;
    left: 0;
    width: 0;
    height: 0;
    border-width: 10px 50px 0 50px;
    border-style: solid;
    border-color: gray transparent transparent transparent;   
}

However, this method requires specifying the link width to ensure the arrow's proper size. To address this limitation, we can employ a responsive approach using a skewed and rotated pseudo element:

.btn {
  position: relative;
  display: inline-block;
  height: 50px; width: 50%;
  text-align: center;
  color: white;
  background: gray;
  line-height: 50px;
  text-decoration: none;
  padding-bottom: 15%;
  background-clip: content-box;
  overflow: hidden;
}
.btn:after {
  content: "";
  position: absolute;
  top:50px;  left: 0;
  background-color: inherit;
  padding-bottom: 50%;
  width: 57.7%;
  z-index: -1;
  transform-origin: 0 0;
  transform: rotate(-30deg) skewX(30deg);
}

This approach ensures that the triangle maintains its aspect ratio with the padding-bottom property. Removing the width property on the .btn class allows the triangle to adapt its size according to its content, making it fully responsive.

The above is the detailed content of How to Create a Responsive CSS Triangle Using Percentage Width?. 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