CSS 对角线 - 如何适应其父元素?

lau*_*kok 3 html css diagonal css-transforms

如何使对角线填充并适合框(只是纯 css - 不使用任何背景图像)?

div.diagonal-container {
    border: 1px solid #000;
    width:400px;
    height:400px;
    margin: 0 auto;
}

.to-right,
.to-left {
    border-top:1px solid #ff00ff;
    width:100%;

    -moz-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}

.to-right {
    -moz-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    transform: rotate(-45deg);
}
Run Code Online (Sandbox Code Playgroud)
<div class="diagonal-container" style="">
    <div class="to-right"></div>
</div>

<div class="diagonal-container" style="">
    <div class="to-right"></div>
</div>

<div class="diagonal-container" style="">
    <div class="to-left"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

结果:

在此处输入图片说明

jsfiddle

另外,是否可以只拥有一个元素而不包装它?例如:

<div class="to-right"></div>
<div class="to-right"></div>
<div class="to-left"></div>
Run Code Online (Sandbox Code Playgroud)

是否可以?

pol*_*pol 5

您可以添加一个linear-gradient background并丢弃内部元素,将该类添加到另一个 div

div.diagonal-container {
  border: 1px solid #000;
  width: 400px;
  height: 400px;
  margin: 0 auto;
}

.to-right {
  background: linear-gradient(135deg, transparent calc(50% - 1px), red 50%, transparent calc(50% + 1px) );
}

.to-left {
  background: linear-gradient(45deg, transparent calc(50% - 1px), red 50%, transparent calc(50% + 1px) );
}
Run Code Online (Sandbox Code Playgroud)
<div class="diagonal-container to-right"></div>

<div class="diagonal-container to-right"></div>

<div class="diagonal-container to-left"></div>
Run Code Online (Sandbox Code Playgroud)