我需要一些帮助。我想用边角画两条线,但是有问题。最终结果将如下所示:
我做了一些草稿,我认为我做对了。
HTML:
<div class="left"></div>
<div class="right"></div>
CSS:
.left {
width: 48%;
padding-top: 2rem;
position: absolute;
right: -100%;
float: left;
left:0;
transform: skewX(25deg);
border-top: 0.2rem solid;
border-right: 0.2rem solid;
}
.right {
width: 50%;
padding-top: 2rem;
float: right;
position: relative;
right:0;
border-top: 0.2rem solid;
border-left: 0.2rem solid;
transform: skewX(-25deg);
}
您可以在codepen.io上看到相同的代码。跟随链接
我认为它不在中心。
您需要指定transform-origin
为两个.left
和.right
元素,改变其宽度小于50%(按一半的边框宽度)。
该transform-origin
属性指定转换应围绕的点或轴。在这里,.left
元素应倾斜以使其右下角保持固定,.right
元素应倾斜以使其左下点保持固定。因此,我们将这些值赋予transform-origin
属性。
因为width
当我们给出50%
作为值然后再加上一个值border
时,元素的实际宽度变得大于50%(变为50%+ 0.2rem),因为边框通常不是元素宽度的一部分。您可以通过修改box-sizing
元素的属性或减小来更改此设置width
。在这里,我们只将其减小边框宽度的一半,因为边框应该重叠。
.left {
width: calc(50% - 0.1rem); /* change this */
/* other properties from your code */
transform: skewX(25deg);
transform-origin: bottom right; /* add this */
}
.right {
width: calc(50% - 0.1rem); /* change this */
/* other properties from your code */
transform-origin: bottom left; /* add this */
transform: skewX(-25deg);
}
body {
font-family: "Open Sans";
font-size: 1.125rem;
line-height: 1.618em;
color: #454545;
}
.left {
width: calc(50% - 0.1rem);
padding-top: 2rem;
position: absolute;
right: -100%;
float: left;
left:0;
transform: skewX(25deg);
transform-origin: bottom right;
border-top: 0.2rem solid;
border-right: 0.2rem solid;
}
.right {
width: calc(50% - 0.1rem);
padding-top: 2rem;
float: right;
position: relative;
right:0;
border-top: 0.2rem solid;
border-left: 0.2rem solid;
transform: skewX(-25deg);
transform-origin: bottom left;
}
<div class="wrapper">
<div class="left"></div>
<div class="right"></div>
</div>
下面是一个稍作调整的版本,它产生相同的输出。以下是已完成的调整:
overflow: hidden
在父级上添加,以防止出现水平滚动条。body
消除的左右边界,以确保线从一端到另一端。body {
font-family: "Open Sans";
font-size: 1.125rem;
line-height: 1.618em;
color: #454545;
margin-left: 0;
margin-right: 0;
}
.wrapper{
position: relative;
width: 100%;
height: 2rem;
overflow: hidden;
}
.left {
position: absolute;
left:0;
width: 50%;
height: 100%;
border-top: 0.2rem solid;
border-right: 0.2rem solid;
transform: skewX(25deg);
transform-origin: bottom right;
}
.right {
position: absolute;
right:0;
width: 50%;
height: 100%;
border-top: 0.2rem solid;
border-left: 0.2rem solid;
transform: skewX(-25deg);
transform-origin: bottom left;
}
<div class="wrapper">
<div class="left"></div>
<div class="right"></div>
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句