多個相鄰按鈕切換效果出現邊框重疊問題的解決方法

2021-10-01 03:20:38 字數 2043 閱讀 3051

下圖所示的是一種常見的切換效果,在實現這種切換效果時,經常會遇到相鄰按鈕邊框重疊的問題(檢視demo),有沒有好的解決方法呢?

所出現的邊框重疊問題:

目前,很多優秀的ui元件庫都有這種切換效果的元件,通過對他們實現方式的學習,現對邊框重疊問題的解決方法做如下總結:

1、border-left+box-shadow

使用vue或react的夥伴,肯定都非常熟悉elementant-design元件庫,對於這種邊框重疊問題,他們的解決方法相同,都是通過border-left+box-shadow來解決;具體展開就是:對於正常狀態下的按鈕,讓所有按鈕的border-left設定為0,並為第乙個按鈕單獨設定border-left;對於處於啟用狀態的按鈕,改變其border-color,此時啟用狀態的按鈕由於左邊框為0,產生顏色缺失,通過設定box-shadow來解決啟用狀態按鈕左邊框顏色缺失,box-shadow在盒模型中不佔據空間,因此該解決方法非常巧妙。

核心**如下:

class

="btn-group"

>

class

="btn-item active"

>

北京div

>

class

="btn-item"

>

上海div

>

class

="btn-item"

>

廣州div

>

class

="btn-item"

>

深圳div

>

class

="btn-item"

>

杭州div

>

div>

.btn-item

.btn-item:first-child

.btn-item.active

.btn-item.active:first-child

最終效果如下(檢視demo):

2、margin+z-index

使用margin+z-index來解決邊框重疊問題,具體如下:按鈕的每個邊框都保留,對於正常狀態的按鈕,通過設定margin-left: -1px;將每個按鈕向左移動乙個畫素,這樣後乙個按鈕的左邊框會遮蓋前乙個按鈕的右邊框;一次來解決正常狀態下邊框重疊問題;對於處於啟用狀態按鈕,通過改變其z-index值來將被後乙個按鈕覆蓋的右邊框顯示出來;

核心**如下:

class

="btn-group"

>

class

="btn-item active"

>

北京div

>

class

="btn-item"

>

上海div

>

class

="btn-item"

>

廣州div

>

class

="btn-item"

>

深圳div

>

class

="btn-item"

>

杭州div

>

div>

.btn-item

.btn-item.active

最終效果如下(檢視demo):

以上就是目前我覺的解決邊框重疊問題比較好的解決方案,僅供參考。

按鈕外掛程式和按鈕狀態切換

按鈕外掛程式 1.data loading text 正在登入.按鈕單擊後不能點選,按鈕顏色變淺並且 文字為 正在登入.2000秒後恢復正常 繫結事件 定時器 id button loading window.settimeout function 2000 2.data complete text...

網頁切換效果

網頁切換漸隱效果 拿來測試下,看看有用不,呵呵,沒事玩玩先 在網頁的 中最上面加入以下 就可以有本 的動態漸隱效果.成都軍區聯勤部機關醫院兒科 說明 page enter是指進入頁面的時候,page exit離開頁面的時候,duration 0.5 是設定漸隱時間的成都兒童專科醫院 duration...

tab切換效果

今天上一套tab切換效果的 就自己實現吧!下面貼html 大體分兩部分,div和按鈕div,很容易看懂 123 45這個還是比較簡單的div結構,下面是對應的css button btn p main pictures 對所有div的簡單布局,最後主要實現功能 所以重要的js 如下 window.o...