在網(wǎng)頁(yè)設(shè)計(jì)中,有些情況下我們需要?jiǎng)?chuàng)建一些不規(guī)則的區(qū)域鏈接,這時(shí)候 CSS 可以幫助我們實(shí)現(xiàn)這個(gè)效果。
首先,我們需要理解 CSS 的border-radius
屬性,它可以用來(lái)控制一個(gè)元素的邊角的圓角程度。而對(duì)于不規(guī)則區(qū)域,我們可以利用組合多個(gè)圓角不同的元素,來(lái)創(chuàng)造出需要的形狀。
.shape{ background-color: #f00; width: 200px; height: 100px; border-radius: 50px 0 0 0; } .shape::before{ content: ""; display: block; position: absolute; top: -50px; left: 0; width: 100px; height: 100px; background-color: #f00; border-radius: 0 0 50px 0; } .shape::after{ content: ""; display: block; position: absolute; top: -50px; right: 0; width: 100px; height: 100px; background-color: #f00; border-radius: 0 0 50px 0; }
上面的代碼通過(guò)利用::before
和::after
偽元素創(chuàng)建出兩個(gè)半圓形狀的元素,并使用position:absolute
把他們放到了主元素的上方。通過(guò)調(diào)整每個(gè)元素的 position、top、right、bottom 和 left 屬性的值,我們可以創(chuàng)造出各種不同的不規(guī)則形狀,同時(shí)保證鏈接可點(diǎn)擊。
有了這個(gè)技巧,我們可以創(chuàng)造出更多未被傳統(tǒng)方法支持的有趣效果,以實(shí)現(xiàn)更加多樣的網(wǎng)頁(yè)設(shè)計(jì)。