gpt4 book ai didi

HTML/CSS - 在 DIV 的一侧创建 "arrow"

转载 作者:太空宇宙 更新时间:2023-11-03 22:44:56 29 4
gpt4 key购买 nike

我正在转换一个 div 以在其一端像箭头一样给它一个点。我使用第二个 div 和 CSS 转换将其边框旋转 45 度来完成此操作。我的问题是原始 div 的背景渗入并仍然形成一个正方形。我该如何解决这个问题?我在下面的链接中创建了一个 fiddle ,我希望“第 1 步”的蓝色背景以点而不是平面边缘结束。谢谢。 Fiddle

<ul class="progress">
<li class="completed">
<span>
<span class="order">1 </span>Step 1
</span>
<div class="diagonal"></div>
</li>
<li>
<span>
<span class="order">2 </span>Step 2
</span>
<div class="diagonal"></div>
</li>
<li>
<span>
<span class="order">3 </span>Step 3
</span>
</li>
</ul>

CSS:

.progress {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
height: 40px;
margin: 0 0 1em;
padding: 0;
}

.progress > li {
width: 100% !important;
height: 100% !important;
border-radius: 0 !important;
color: #fff !important;
list-style: none;
font-size: 16px;
z-index: 100;
background-color: #bbb;
overflow: hidden;
}

.progress > li:last-child {
border-right: 0;
}

.progress > li.completed {
background-color: #0071bc;
}

.progress > li span {
position: relative;
top: 5px;
}

.progress > li span .order {
display: inline-block;
border: 2px solid #555;
border-radius: 27px;
width: 27px;
height: 27px;
background-color: #fff;
color: #555;
margin: 0 5px 0 10px;
font-weight: bold;
text-align: center;
position: relative;
top: -1px;
line-height: 25px;
}


.diagonal {
width: 28px;
height: 28px;
position: relative;
float: right;
top: -7px;
}

.diagonal:after {
content: "";
position: absolute;
border-top: 2px solid #f5f5f5;
border-right: 2px solid #f5f5f5;
width: 38px;
height: 38px;
transform: rotate(45deg);
transform-origin: 0% 0%;
}

最佳答案

您可以通过设置透明的顶部和底部边框来制作像这样的右箭头/三 Angular 形,然后为左边框提供您想要的箭头颜色。然后对其进行样式设置,使其适合您的布局。

.progress {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
height: 40px;
margin: 0 0 1em;
padding: 0;
}

.progress > li {
width: 100% !important;
height: 100% !important;
border-radius: 0 !important;
color: #fff !important;
list-style: none;
font-size: 16px;
background-color: #bbb;
position: relative;
}

.progress > li:last-child {
border-right: 0;
}

.progress > li.completed {
background-color: #0071bc;
}

.progress > li:not(.completed) {
padding-left: 20px;
}

.progress > li span {
position: relative;
top: 5px;
}

.progress > li span .order {
display: inline-block;
border: 2px solid #555;
border-radius: 27px;
width: 27px;
height: 27px;
background-color: #fff;
color: #555;
margin: 0 5px 0 10px;
font-weight: bold;
text-align: center;
position: relative;
top: -1px;
line-height: 25px;
}

.diagonal {
width: 0;
height: 0;
border-top: 20px solid transparent;
border-bottom: 20px solid transparent;
border-left: 20px solid #bbb;
top: 0; right: 0;
position: absolute;
transform: translateX(100%);
z-index: 1;
}
.completed .diagonal {
border-left-color: #0071bc;
}
<ul class="progress">
<li class="completed">
<span>
<span class="order">1 </span>Step 3
</span>
<div class="diagonal"></div>
</li>
<li>
<span>
<span class="order">2 </span>Step 2
</span>
<div class="diagonal"></div>
</li>
<li>
<span>
<span class="order">3 </span>Step 3
</span>
</li>
</ul>

关于HTML/CSS - 在 DIV 的一侧创建 "arrow",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42427021/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com