我的問題是:我需要一種方法來捕捉aside
時section:hover
,反之亦然,或將this過渡另一個(CSS)的方式。我希望懸停的元素從當前的width
到100vw
,同時我希望其他元素的width
轉到0vw
,這應該發生在特定時間(此處爲2秒)。CSS3過渡和DOM,怪異的行爲
如果存在使用其他選擇器而不是~
選擇器的解決方案,或者採用完全不同的方式,則不存在問題。
CSS:
aside, section {
width: 50%;
height: 100vh;
float: left;
-webkit-transition: width 2s, display 2s; /* time updated */
transition: width 2s, display 2s; /* time updated */
background-color: red;
}
section {
background-color:black;
}
section:hover, aside:hover {
width: 100vw;
}
aside:hover ~ section /* work */ ,section:hover ~ aside /* invalid selector */ {
width: 0vw;
}
HTML:
<body>
<aside></aside>
<section></section>
</body>
這是我的sample,並有一個錯誤的浮動問題(在second_element旁邊:懸停選擇問題)。
當我交換HTML <aside>
部分時,行爲也在交換,所以第一個DOM元素的轉換正常,但第二個不是。交換後這是sample。
什麼是你正在尋找確切的結果? –
@ Maximillian我希望懸停的元素從當前寬度 - > 100vw,同時我希望其他元素的寬度爲0vw,這應該發生在特定的時間(這裏2s)。 – Amr
CSS中的兄弟選擇器只能在DOM中當前元素下面的兄弟元素中工作,所以沒有純粹的CSS方法來完成這項工作,據我所知。它只會根據元素的順序對「擱置」或「節」起作用。 – Harry