html5 - css 選擇器not問題
問題描述
<!DOCTYPE html><html><head><style>.iSerror:not(.usermodel) input{ border:1px solid red}</style></head><body><p class='iSerror'> <input> <p class='usermodel'> <input></p></p></body></html>
結果 為什么usermodel下面的input border會變成紅色呢
問題解答
回答1:.iSerror:not(.usermodel) input{ border:1px solid red} 先解釋一下:.iSerror:not(.usermodel)這里只是排除了跟.iSerror的同級.usermodel,而你的結構中,.usermodel是.iSerror的子集,改成:.iSerror p:not(.usermodel) input{ border:1px solid red}試下
回答2:.iSerror:not(.usermodel) input{//這里的.iSerror:not(.usermodel), 指的是在擁有iSerror類的標簽,同時不具有.usermodel這個類 border:1px solid red}
.iSerror p:not(.usermodel) input{ border:1px solid red}//html<p class='iSerror'> <p>//這個就會變紅色<input> </p> <p class='usermodel'> <input> </p></p>回答3:
你是沒給.usermodel直接添加樣式 但是它自動繼承了父類 即.iSerror的樣式
回答4:這個根本就用不到:not()啊……
如果用emmet來寫的話,
<p class='iSerror'> <input> <p class='usermodel'><input> </p></p>
就是.iSerror>input+.usermodel>input。
所以嘞,找第一個<input>就用.iSerror>input;找第二個<input>用.usermodel>input就好啦。
相關文章:
1. angular.js - 輸入郵箱地址之后, 如何使其自動在末尾添加分號?2. javascript - 后臺管理系統左側折疊導航欄數據較多,怎么樣直接通過搜索去定位到具體某一個菜單項位置,并展開當前菜單3. 如何解決docker宿主機無法訪問容器中的服務?4. javascript - Web微信聊天輸入框解決方案5. javascript - 如何使用nodejs 將.html 文件轉化成canvas6. python - Scrapy存在內存泄漏的問題。7. 如何用筆記本上的apache做微信開發的服務器8. CSS3 畫如下圖形9. angular.js - $stateChangeSuccess事件在狀態跳轉的時候不執行?10. android - rxjava merge 返回Object對象數據如何緩存
