前端面試題之CSS

題目:如下圖,當(dāng)鼠標(biāo)移動到右邊的div時(shí),左邊的div變?yōu)榧t色;當(dāng)鼠標(biāo)移動到左邊的div時(shí),右邊的div變?yōu)榧t色。


圖1 初始狀態(tài)
圖2 鼠標(biāo)移到左邊時(shí),右邊div變紅
圖3 鼠標(biāo)移動到右邊時(shí),左邊div變紅



思路:

先確定html部分的內(nèi)容,代碼如下

<div class="father">

? ? ?<div class="child" id="child1"></div>

? ? ?<div class="child" id="child2"></div>

</div>

要改變兄弟元素的樣式,首先想到的就是利用相鄰兄弟選擇器,相鄰兄弟選擇器介紹如下(摘自https://www.w3school.com.cn/css/css_selector_adjacent_sibling.asp):

圖4 相鄰兄弟選擇器介紹

但是,相鄰兄弟選擇器只能改變元素后面的元素,對于題目中,只能實(shí)現(xiàn)圖2的部分

實(shí)現(xiàn)的代碼為:

.child:hover + .child {? ? ?

????background-color: red;

}

接著處理圖3的效果,我的思路是:

先實(shí)現(xiàn)移動到任意的div都會使child1變紅,接著規(guī)定移動到child1時(shí),child1變白,這個(gè)部分需要考慮css樣式的權(quán)重

代碼如下:

.father:hover #child1 {??

????background-color: red;

}

.father #child1:hover {??

????background-color: white;

}

這兩者的權(quán)重相同,所以遇到?jīng)_突時(shí),以下面的樣式為準(zhǔn)

到此,就實(shí)現(xiàn)了題目所需要實(shí)現(xiàn)的效果啦。


完整代碼:

html代碼

圖5 HTML代碼片段

CSS代碼


圖6 css代碼
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容