Antd組件中單選框、復選框自定義樣式的優雅實現


表單組件的樣式控制算是antd組件使用的一大坑了。

.以antd-mobile為例,checkbox選中與非選中狀態是由Input包裹的父元素的‘.am-checkbox-checked’來控制的

未選中時的DOM結構(沒有am-checkbox-checked)

選中時的DOM結構(有am-checkbox-checked類名)

然而通常情況下選中和非選中的時候我們需要改變的是  class="am-checkbox-wrapper" 的樣式,

這時候問題就變成了  子元素改變,父元素需要跟着改變,用css目前為止還不能實現,由於瀏覽器的渲染機制,父選擇器的出現幾乎還不可能,在我優化代碼之前,源代碼是之前公司做后台的一個大佬寫的,他的解決辦法是在 onchange事件里實時的監控 ,js獲取DOM,操作父節點;

作為一個有原則有底線的前端,怎么能忍受使用react的同時又頻繁的操作DOM?

不說廢話,直接上代碼

 

 給 Radio 或checkbox 添加一個父元素div,類名隨Radio 或checkbox的checked值變化,然后在css中寫好兩套自定義樣式,o了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM