這取決于你對(duì)“next to it”是什么意思。 你可以使用屬性選擇器通過(guò)可見(jiàn)性選擇元素?;蛘邚?a rel="noreferrer">這里選擇:
要通過(guò)可見(jiàn)性訪(fǎng)問(wèn)一個(gè)元素,你可以使用例如子字符串匹配屬性選擇器星號(hào)[att*=val]
。假設(shè)div的樣式是使用visibility: hidden;
隱藏的:
div[style*="hidden"] { }
現(xiàn)在的問(wèn)題是如何訪(fǎng)問(wèn)“next to it”的元素。 如果你嘗試定位的元素直接在隱藏元素之后(在同一父級(jí)內(nèi)),使用+選擇器:
div[style*="hidden"] + span { }
如果它在之前,你就沒(méi)有辦法了,但可以在這個(gè)問(wèn)題的答案中尋找一些解決方法:是否有“previous sibling” CSS選擇器?
不,這是不可能的,也不可能,至少在樣式表中是不可能的。
否則,你會(huì)創(chuàng)建一個(gè)無(wú)限循環(huán):
element:visible { display: none; }
元素一開(kāi)始是可見(jiàn)的,然后選擇器會(huì)選擇它并隱藏它,然后選擇器不適用,它又變得可見(jiàn),依此類(lèi)推。
在JS API中,允許使用偽類(lèi)選擇器,比如querySelector
。但據(jù)我所知,目前還沒(méi)有這樣的東西,而且它不可能只使用CSS實(shí)現(xiàn)。