CSS 如何通過激活標簽選擇相鄰的前后元素并改變其圓角樣式?

CSS 如何通過激活標簽選擇相鄰的前后元素并改變其圓角樣式?

css巧妙實現:激活標簽影響相鄰元素圓角樣式

網頁交互設計中,常需實現點擊一個元素,其相鄰元素樣式也隨之變化的效果。本文將探討如何利用css選擇器實現此效果,特別是針對激活標簽前后元素圓角的調整。

場景描述

假設一個列表,每個列表項為一個

  • 標簽。點擊某個
  • 并添加active類后,其前一個和后一個
  • 的圓角樣式需相應改變:前一個元素的右下角圓角變圓潤,后一個元素的左上角圓角變圓潤。

    CSS實現

    以下CSS代碼展示如何實現上述效果,無需JavaScript干預:

    .left {     width: 100px; }  .left li {     height: 45px;     display: flex;     align-items: center;     justify-content: center;     transition: all .3s; /* 添加過渡效果 */     background: pink;     border-radius: 0; /* 初始狀態無圓角 */ }  li.active {     background: #fff; }  /* 選擇激活元素的后一個元素 */ li.active + li {     border-radius: 0 10px 0 0; }  /* 選擇激活元素的前一個元素  (使用通用選擇器,避免 :has 的兼容性問題) */ li + li.active {     border-radius: 0 0 10px 0; }

    這段代碼利用了CSS的相鄰兄弟選擇器(+)。li.active + li選擇的是緊跟在具有active類的

  • 元素后面的
  • 元素;li + li.active則選擇的是緊跟在
  • 元素后面的,且具有active類的
  • 元素。 通過設置border-radius屬性,我們分別控制了前后元素的圓角樣式。 transition屬性添加了過渡效果,使樣式變化更平滑。

    立即學習前端免費學習筆記(深入)”;

    此方法避免了:has選擇器可能存在的瀏覽器兼容性問題,并提供了一種更簡潔、高效的解決方案。 通過合理的CSS選擇器和屬性設置,我們輕松實現了預期效果。

  • ? 版權聲明
    THE END
    喜歡就支持一下吧
    點贊11 分享