所以,在獲取頁面上呈現HTML一切都只是一個不同大小的矩形。它可能不會以這種方式出現,但所有東西都有一個邊界框,它決定了它在頁面上的存在。
有迂迴的方式來創建形狀(如給予50%border-radius
只是把它變成一個圓圈),但他們只是這樣,他們不是很理想。
什麼是構成形狀的東西是SVG,在這裏你可以將矢量繪製到你自己的規範的頁面上。
但是,我質疑你所展示的內容是構成「設計」還是僅僅是看起來有某種特定意義的元素。
我能拿出最好的解決方案:
- 插入兩個元素,並使用CSS
transform
屬性skew
一個單向和一個其他的方式:
<div id="bar">
<div class="arrow">
<a>asdf</a>
</div>
<div class="arrow">
<a>hjkl</a>
</div>
<div class="arrow">
<a>qwer</a>
</div>
</div>
#bar {
display: flex;
padding: 10px;
}
.arrow a {
position: absolute;
line-height: 100px;
margin-top: -50px;
width: 200px;
margin-left: 25px;
text-align: center;
z-index: 1;
}
.arrow::before {
content: '';
background: blue;
height: 50px;
width: 200px;
margin-left: 25px;
display: block;
transform: skew(45deg);
}
.arrow::after {
content: '';
background: blue;
height: 50px;
width: 200px;
margin-left: 25px;
display: block;
transform: skew(-45deg);
}
https://jsfiddle.net/7nku4474/1
- 使用SVG以繪製形狀:
<div id="bar">
<a href="asdf">
<svg fill="blue">
<path d="M 0,0 L 200,0, L 250,50 L 200,100 L 0,100 L 50,50 Z">
</path>
<text x="125" y="50" font-size="12" fill="#fff" text-anchor="middle" alignment-baseline="central">
asdf
</text>
</svg>
</a>
<a href="asdf">
<svg fill="blue">
<path d="M 0,0 L 200,0, L 250,50 L 200,100 L 0,100 L 50,50 Z">
</path>
<text x="125" y="50" font-size="12" fill="#fff" text-anchor="middle" alignment-baseline="central">
hjkl
</text>
</svg>
</a>
<a href="asdf">
<svg fill="blue">
<path d="M 0,0 L 200,0, L 250,50 L 200,100 L 0,100 L 50,50 Z">
</path>
<text x="125" y="50" font-size="12" fill="#fff" text-anchor="middle" alignment-baseline="central">
qwer
</text>
</svg>
</a>
</div>
#bar {
display: flex;
}
#bar svg {
height: 100px;
width: 250px;
margin: 10px;
}
#bar a:not(:first-of-type) {
margin-left: -50px;
}
https://jsfiddle.net/1smpuL1r/
是這是麪包屑? –
我建議你看看形式嚮導,這裏是一個引導示例https://bootsnipp.com/snippets/featured/form-wizard-using-tabs – Nicolas
@ChandraShekhar,不,它不是一個麪包屑。我已經用當前狀態更新了我的主題。 – nielsv