隐藏在CSS边框形状后面的文本

时间:2017-01-26 13:56:05

标签: html css css3 css-shapes

我正在尝试使用背景颜色创建一个围绕文本的h1样式。

    h1.skew {
        padding-left: 10px;
        text-decoration: none;
        color: white;
        font-weight: bold;
        display: inline-block;
        border-right: 50px solid transparent;
        border-top: 50px solid #4c4c4c;
        height: 0;
        line-height: 50px;
    }
    <h1 class="skew">HELLO WORLD</h1>

https://jsfiddle.net/zo32q98n/

此时文本显示在背景下方。如何让文字出现在棕色背景中?

5 个答案:

答案 0 :(得分:4)

您可以使用change作为背景,并设置pseudo-element,使其显示在文字下方。

z-index: -1
h1.skew {
  padding-left: 10px;
  text-decoration: none;
  color: white;
  font-weight: bold;
  display: inline-block;
  position: relative;
  height: 0;
  line-height: 50px;
}
h1.skew:before {
  content: '';
  z-index: -1;
  border-right: 50px solid transparent;
  border-top: 50px solid #4c4c4c;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
}

答案 1 :(得分:3)

由于边框高度为50px,因此您可以在内部插入相同数量的负边距:

h1.skew::before {
  content: '';
  display: block;
  margin-top: -50px;
}

&#13;
&#13;
body {
  background: #ddd;
}
h1.skew {
  padding-left: 10px;
  text-decoration: none;
  color: white;
  font-weight: bold;
  display: inline-block;
  border-right: 50px solid transparent;
  border-top: 50px solid #4c4c4c;
  height: 0;
  line-height: 50px;
}
h1.skew::before {
  content: '';
  display: block;
  margin-top: -50px;
}
&#13;
<h1 class="skew">HELLO WORLD</h1>
&#13;
&#13;
&#13;

答案 2 :(得分:3)

您可以使用CSS3 linear-gradient()

h1.skew {
  padding: 10px 80px 10px 10px;
  display: inline-block;
  color: white;
  background: #4c4c4c; /* fallback */
  background: linear-gradient(135deg, #4c4c4c 80%, transparent 80%);
}
<h1 class="skew">HELLO WORLD</h1>

答案 3 :(得分:1)

如果您使用border-top代替body { background: #ddd; } h1.skew { padding-left: 10px; text-decoration: none; color: white; font-weight: bold; display: inline-block; border-right: 50px solid transparent; border-bottom: 50px solid #4c4c4c; height: 0; line-height: 50px; },则没有问题。

<h1 class="skew">HELLO WORLD</h1>
allprojects {
    if (plugins.hasPlugin('java')) {
        dependencies {
            testCompile 'junit:junit:4.12'
        }
    }
}

答案 4 :(得分:0)

您可以将文字换成span ...

<h1 class="skew"><span class="text">HELLO WORLD</span></h1>

然后将以下内容添加到样式表中......

span.text {
  position: relative;
  top: -50px;
}

这会将文本向上移动,使其显示在您已定义的边框上。