斜线的样式

use*_*300 10 html css css3 css-shapes

我想在两个数字之间添加一个大斜线,以获得输出,如下图所示: 在此输入图像描述

我试图用来/添加斜杠,但它做得不对(它显示在数字之后,而不是在数字之下).反正有没有让输出接近上面的图像?

<div class="box">
    <span class="top">41</span>
    <span class="line">&#47;</span>
     <span class="bottom">50</span>
</div>

.top {
    font-size: 100px;
    font-weight: bold;
}

.line {
    font-size: 100px
}
Run Code Online (Sandbox Code Playgroud)

JSFiddle: http ://jsfiddle.net/jxk8fvus/

Har*_*rry 7

使用偏斜变换

此方法使用以下内容:

  • 伪元素,transform: skew(-45deg)border-left产生类似斜杠字符的线.
  • 两个span包含数字的绝对定位.分子span相对于左上方定位,而分母span相对于右下方定位.

这种方法的一个潜在缺点是浏览器支持,如果你想支持IE8和更低.

.box {
  position: relative;
  height: 150px;
  width: 150px;
}
.top, .bottom {
  position: absolute;
  font-weight: bold;
}
.top{
  top: 0px;
  left: 0px;
  font-size: 100px;
}
.bottom {
  bottom: 0px;
  right: 0px;
  font-size: 25px;
}
.box:after {
  position: absolute;
  content: '';
  bottom: 0px;
  right: 0px;
  height: 60%;
  width: 0%;
  border-left: 1px solid;
  transform: skew(-45deg);
  transform-origin: top left;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
<div class="box">
  <span class="top">41</span>
  <span class="bottom">50</span>
</div>
Run Code Online (Sandbox Code Playgroud)


使用斜杠字符

此方法使用以下内容:

  • 一个普通的斜杠字符,用于产生斜杠.
  • 容器元素,其display属性设置inline-block为数字和斜杠字符.
  • 适当vertical-align设置每个容器,使它们看起来像一个分数.

如果您想支持旧版本的IE,这种方法很有用.缺点是斜线字符不允许对斜线的角度进行太多控制.

.top {
  font-size: 50px;
  vertical-align: top;
  margin-top: 10px;
}
.bottom {
  font-size: 25px;
  vertical-align: bottom;
  margin-bottom: 20px;
}
.line {
  font-size: 100px;
  vertical-align: middle;
}
.top, .bottom{
  font-weight: bold;
}
.box * {
  display: inline-block;
}
Run Code Online (Sandbox Code Playgroud)
<div class="box">
  <span class="top">41</span><!--
  --><span class="line">&#47;</span><!--
  --><span class="bottom">50</span>
</div>
Run Code Online (Sandbox Code Playgroud)

注:<!-- -->第二片段是避免之间的额外空间inline-block的元素.


使用渐变

此方法使用以下内容:

  • 角度linear-gradient设置background为父框容器的角度.
  • 容器元素,其display属性设置inline-block为数字以及适当的vertical-align设置.

这种方法的优点是它不使用任何额外的真/伪元素.缺点是对渐变的浏览器支持相对较低.

.box {
  height: 125px;
  width: 125px;
  font-size: 100px;
  background: linear-gradient(to top left, transparent 49.5%, black 49.5%, black 50.5%, transparent 50.5%);
  background-size: 75% 75%;
  background-position: 100% 100%;
  background-repeat: no-repeat;
}
.top {
  font-size: 75px;
  vertical-align: top;
  margin-top: 10px;
}
.bottom {
  font-size: 25px;
  vertical-align: bottom;
  margin-left: -10px;
}
.box * {
  display: inline-block;
  font-weight: bold;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
<div class="box">
  <span class="top">41</span>
  <span class="bottom">50</span>
</div>
Run Code Online (Sandbox Code Playgroud)


Ita*_*tay 5

这样做:

的jsfiddle

更新小提琴

.line {
        width: 80px;
        height: 80px;
        border-bottom: 1px solid black;
        -webkit-transform: translateY(50px) translateX(5px) rotate(135deg);
            -ms-transform: translateY(50px) translateX(5px) rotate(135deg);
             -o-transform: translateY(50px) translateX(5px) rotate(135deg);
                transform: translateY(50px) translateX(5px) rotate(135deg);
        position: absolute;
}
Run Code Online (Sandbox Code Playgroud)

玩数字.

  • @chiapa因为浏览器前缀.从中删除-webkit- (2认同)