MozTW 討論區 https://forum.moztw.org/ |
|
[求助]只用CSS控制隱藏區塊 https://forum.moztw.org/viewtopic.php?f=13&t=17661 |
第 1 頁 (共 1 頁) |
發表人: | legnaleurc [ 2007-02-16, 22:41 ] |
文章主題 : | [求助]只用CSS控制隱藏區塊 |
假設我目前有: <a class="detect">NULL link</a> <div class="stealth"> content </div> 我的CSS設成這樣: div.stealth { display: none; } a.detect:visited+div.stealth { display: block; } 用意是要按過假連結之後顯示.stealth裡的東西 不過:visited這個擬似類別好像一定要有href屬性才有意義? 我用:active是可以,不過一定要滑鼠持續按著 可不可以純用CSS來達成這個目的呢? |
發表人: | BobChao [ 2007-02-16, 23:13 ] |
文章主題 : | |
legnaleurc 寫: 用意是要按過假連結之後顯示.stealth裡的東西
不過:visited這個擬似類別好像一定要有href屬性才有意義? 我的記憶上也是這樣,其實這個用 JavaScript 做很簡單哪... onclick="obj.style.display='block';" 就可以了說 (obj 要換成 DOM 的 Node) |
發表人: | 不惑仔Boohover [ 2007-02-16, 23:49 ] |
文章主題 : | |
legnaleurc 寫: 假設我目前有:
<a class="detect">NULL link</a> <div class="stealth"> content </div> 我的CSS設成這樣: div.stealth { display: none; } a.detect:visited+div.stealth { display: block; } 用意是要按過假連結之後顯示.stealth裡的東西 不過:visited這個擬似類別好像一定要有href屬性才有意義? 我用:active是可以,不過一定要滑鼠持續按著 可不可以純用CSS來達成這個目的呢? 這樣應該就可以了 html修改一下 代碼: <a class="detect" href="#stealth">NULL link</a> <div id="stealth"> content </div> css改成 代碼: #stealth {display: none;}
a.detect:visited+#stealth {display: block;} 不過挺好奇的,這樣設計有何目的?因為一旦被瀏覽器視為visited,下回開就不再隱藏了。 |
發表人: | legnaleurc [ 2007-02-17, 00:10 ] |
文章主題 : | |
BobChao 寫: \我的記憶上也是這樣,其實這個用 JavaScript 做很簡單哪... onclick="obj.style.display='block';" 就可以了說 (obj 要換成 DOM 的 Node) 是的,只是我希望盡量避免使用JavaScript 因為我不知道使用者到底有沒有開JavaScript 加上想試試CSS有沒有辦法做到這個程度 JavaScript我比較困擾的一點是 我希望它能夠獲取特定的Class 但是沒有現成的函式 改: 後來我想想用class去抓有點危險..... JavaScript有直接取得下一個節點的式子嗎? 不惑仔Boohover 寫: 不過挺好奇的,這樣設計有何目的?因為一旦被瀏覽器視為visited,下回開就不再隱藏了。
ouch! 你倒是說到重點了,我還真沒想到這回事....(汗) 看來還是用JavaScript是比較好的方法的樣子 |
發表人: | 風痕影 [ 2007-02-18, 17:28 ] |
文章主題 : | |
legnaleurc 寫: JavaScript我比較困擾的一點是
我希望它能夠獲取特定的Class 但是沒有現成的函式 我本身是先用 getElementsByTagName 取得所有的 DIV 然後再用迴圈比對它們的 className... 聽 Kourge 大大說,Firefox 3 將會支援 getElementsByClassName... 滿期待的 ![]() |
發表人: | legnaleurc [ 2007-02-18, 18:04 ] |
文章主題 : | |
風痕影 寫: 我本身是先用 getElementsByTagName 取得所有的 DIV
然後再用迴圈比對它們的 className... 聽 Kourge 大大說,Firefox 3 將會支援 getElementsByClassName... 滿期待的 ![]() 這個我後來是用prototype去抓class 用了函式庫真的是省事許多 對了,有沒有事件是在文件開始讀取時就會觸發的啊? onLoad事件似乎要"完全"讀完才會執行? |
發表人: | BobChao [ 2007-02-19, 00:49 ] |
文章主題 : | |
legnaleurc 寫: 風痕影 寫: 我本身是先用 getElementsByTagName 取得所有的 DIV 然後再用迴圈比對它們的 className... 聽 Kourge 大大說,Firefox 3 將會支援 getElementsByClassName... 滿期待的 ![]() 這個我後來是用prototype去抓class 用了函式庫真的是省事許多 對了,有沒有事件是在文件開始讀取時就會觸發的啊? onLoad事件似乎要"完全"讀完才會執行? 開始讀取就觸發的話,就直接放 <script> 讓他執行就好囉,不過這樣 DOM 還沒有完整建立完就執行,可能會有錯誤。 |
發表人: | 風痕影 [ 2007-02-20, 01:37 ] |
文章主題 : | |
BobChao 寫: 開始讀取就觸發的話,就直接放 <script> 讓他執行就好囉,不過這樣 DOM 還沒有完整建立完就執行,可能會有錯誤。
我以前的解決方法是放在網頁最後面... 現在則是用 DOMContentLoaded,只是 IE 不支援 @___@" 不過,有人寫了一個 解決方案 ![]() |
發表人: | kourge [ 2007-02-26, 15:47 ] |
文章主題 : | |
如果 <a> 沒有 href,那 a:link 就不適用,所以 href 可以設成 #,然後 onclick 的時候再 stopPropagation(),不然網址後面會多一個 #。 Dean Edwards 寫的 onload 算是最完善的了。 引言回覆: JavaScript有直接取得下一個節點的式子嗎?
Prototype 可以用 $(element).next(),jQuery 也一樣。 |
第 1 頁 (共 1 頁) | 所有顯示的時間為 UTC + 8 小時 |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |