2010-12-12 102 views
10

我知道<marquee>標記是邪惡的。
如果滾動文字太糟糕了,那麼使用JS獲得相同的效果並不會讓它更好,對吧?<marquee> html標記的使用/替換

再假設我決定有一些滾動文字(GASP),有一些類型的CSS(3?)或HTML(5?)的方式來做到這一點的是技術上是正確的(即不是不建議使用)?

如果沒有一個CSS/HTML解決方案,我應該使用:

  • 的Javascript,這將是更重的下載和可能被關閉(?是一個親或CON),但我得到的是W3C正確的,有效的和非棄用,智能的獎金,

,或者我應該使用

  • 可恨<marquee>(<閃爍> <blink>)標記,輕量級(19字節!),所有瀏覽器在所有呈現模式和所有文檔類型中完全支持(儘管它不應該),但已被棄用?

謝謝。

P.S.我認爲一個新聞報道是一個有效的用於選擇框式
P.P.S.如果有人告訴我,如果我不想要一個沉重的Javascript解決方案,我應該使用JQuery,因爲它是輕量級的,我會在評論中拍攝他們

編輯:我添加JQuery標籤,因爲這似乎是最好的從JS問題的許多專家那裏得到關注的方式,這裏並不完全無關。

+3

+1的意圖拍攝的jQuery嫺熟 – KooiInc 2010-12-12 19:55:14

+5

@Koolinc我自己沒有反對JQuery,我經常使用它。我只是反對思路:他說他不想使用JS,因爲它很沉重 - > JQuery是輕量級的(它在網站上這麼說) - >他只想到兩個選項,但JQuery是一個第三個 - >他應該使用JQuery! – baruch 2010-12-12 20:02:41

回答

6

這不是效果不好。選取框,閃爍和字體標籤的問題是它們傳達的不是內容結構。

0

如果您確定它適用於您要瞄準的所有平臺,並且您不在乎w3c說您當然可以使用選取框標記。您無法找到能夠在少於14個字節內工作的JavaScript解決方案。

唯一不幸的是,所有這些瀏覽器都支持所有這些被棄用的元素 - 在這種情況下甚至不是任何HTML標準的一部分,因爲所有這些人使用這些元素,並開始嗚嗚當一個新的版本不再支持他們的1982年兼容的網站了。

所以請繼續使用選取框,只要它適用於您,但請不要抱怨,如果您的站點停止在新的瀏覽器中工作。

+1

該網站不會停止工作,只是選取框元素可能會消失。不是說我提倡棄用和/或不標準的元素。 – AUSteve 2010-12-12 23:43:30

5

CSS3對字幕的支持,但它僅在少數瀏覽器支持(Safari和Chrome是唯一一個,據我所知)

http://www.w3.org/TR/css3-marquee/

有跡象表明,完成它的幾個jQuery插件,但他們都在裝貨的JQuery的費用(26KB,比HTML唯一的解決辦法較重,但不是我所說的重)

http://plugins.jquery.com/plugin-tags/marquee

當然,你可以很容易地自己做它瓦特沒有JQuery,但看着這些插件可能會給你一些想法。

另一個考慮的方法是做一個小的Flash動畫。

+12

請不要使用Flash來處理此類事情 – 2011-02-22 22:59:53

+1

@Andreas Kuckartz:請您詳細說明一下嗎?我沒有看到如何使用Flash比在這種情況下使用JS更糟糕。目前CSS備選方案並不可觀...... – nico 2011-02-23 08:00:35

+2

Flash是專有的。它通常不會將表單/樣式和內容分開。它在很多「我」設備上都不被支持。而且 - 正如你正確寫的 - 用JavaScript實現的解決方案已經存在。因此,我認爲Flash不是用於滾動文本的合理選項。 – 2011-02-24 15:04:52

0

Here's the code在Firefox中實現了marquee元素,它基本上是用JavaScript來做的,所以你可以隨時調整代碼並直接在所有瀏覽器中使用它。

可以對代碼進行黑客入侵,以便可以在Firefox中的任何元素上實施選取框,並通過CSS和XBL綁定(Firefox only example)應用該選項。在IE中的等效值是behaviours,你可以在Safari/Chrome中使用CSS3作爲nico建議,並且你會保留你的標記中的表現性的東西,但只有你可以知道它是否值得付出努力。

0

我一直在尋找最有效的跨瀏覽器支持跑馬燈的實現。無論出於何種原因,即使webkit CSS marquee實現也很糟糕。

常用的方法是使用timer(或jQuery動畫實現)來調整元素的CSS margin屬性。這太糟糕了,效率很低。我想出了一個實現,該實現爲支持它的瀏覽器使用CSS3轉換,併爲包含元素的scrollLeft屬性設置動畫。這是一個實驗性的實現,儘管它與IE7 +很好地協作。其他人也可能會覺得它很有用,https://github.com/gajus/marquee(演示https://dev.anuary.com/60244f3a-b8b2-5678-bce5-f7e8742f0c69/)。