带有 CSS 文本的上/右三角形

5 html css

首先,我刚开始接触 HTML 和 CSS。

我想如何使用此代码:https : //codepen.io/martinjkelly/pen/vEOBvL

.container {
  width: 250px;
  height: 250px;
  position:relative;
  background-color:grey;
}

.corner {
  width: 0; 
  height: 0; 
  border-top: 150px solid #ffcc00;
  border-bottom: 150px solid transparent;
  border-right: 150px solid transparent;
}

.corner span {
  position:absolute;
  top: 35px;
  width: 100px;
  left: 5px;
  text-align: center;
  font-size: 16px;
  font-family: arial;
  transform: rotate(-45deg);
  display:block;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="corner"><span>20% Special Offer</span></div>
</div>
Run Code Online (Sandbox Code Playgroud)

但我想在顶部/右侧制作三角形。

我试过的:

.corner {
  width: 0; 
  height: 0; 
  border-top: 150px solid transparent;
  border-bottom: 150px solid transparent;
  border-left: 150px solid transparent;
}

.corner span {
  position:absolute;
  top: 35px;
  width: 100px;
  left: 5px;
  text-align: center;
  color: #ffffff;
  text-transform: uppercase;
  font-size: 14px;
  transform: rotate(45deg);
  display:block;
}
Run Code Online (Sandbox Code Playgroud)

它有效,但文本放置不正确......

非常感谢你的帮助。

APA*_*AD1 6

您必须进行一些调整,因为三角形会自然地向左对齐,您不能只是以其他方式旋转它,您还需要使用绝对定位使其在右侧对齐。这也需要对文字的定位做一些调整:

.container {
  width: 250px;
  height: 250px;
  position:relative;
  background-color:grey;
}

.corner {
  width: 0;
  height: 0;
  border-top: 150px solid #ffcc00;
  border-bottom: 150px solid transparent;
  border-left: 150px solid transparent;
  position:absolute;
  right:0;
}

.corner span {
  position:absolute;
  top: -110px;
  width: 100px;
  left: -100px;
  text-align: center;
  font-size: 16px;
  font-family: arial;
  transform: rotate(45deg);
  display:block;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
  <div class="corner"><span>20% Special Offer</span></div>
</div>
Run Code Online (Sandbox Code Playgroud)