readonly、disabled、display、visible之間的區別詳解

來源:互聯網
上載者:User
本文主要介紹關於readonly、disabled、display、visible之間的區別詳解。css樣式設定中有幾個功能相同但表現形式卻略有差異的屬性,今天在通過js更改對象的樣式屬性的時候就發現display和visible這兩個貌似相同,其實還是有些區別的,這裡順便也把看到的readonly和disabled的區別也分享一下。

display和visible的區別:

(1)首先說明的是display:none和visible:hidden都能夠實現將網頁上某個元素隱藏起來。

(2)如果在樣式檔案或分頁檔代碼中直接用display:none對元素進行了隱藏,載入頁面後,在沒有通過js設定樣式使元素顯示的前提下,使用js代碼會無法正確獲得該元素的一些屬性,比如offSetTop,offSetLeft等,返回的值會為0,通過js設定style.display來使元素顯示後才能正確獲得這些值。

(3)使用display:none隱藏的元素不會被百度等搜尋網站檢索,會影響到網站的SEO,某些情況下可以使用left:-100000px來達到同樣效果。

(4)如果是通過樣式檔案或<style>css</style>方式來設定元素的display:none樣式,用js設定style.display=""並不能使元素顯示,可以使用block或inline等值來代替。通過style="display:none"直接在元素上進行的設定不會有這個問題。

(5)將元素設定為display:none將不為被隱藏的對象保留其物理空間,即該對象在頁面上徹底消失,通俗來說就是看不見也摸不到。而將元素設定為visibility:hidden則僅使對象在網頁上不可見,但該對象在網頁上所佔的空間沒有改變,通俗來說就是看不見但摸得到。

Readonly和Disabled的區別:

(1)Readonly和Disabled它們都能夠做到使使用者不能夠更改表單域中的內容。

(2)在disabled和readonly這兩個屬性都設定為true的情況下,form屬性將不能被編輯。

(3)如果一個輸入項的disabled設為true,則該表單輸入項不能擷取焦點,使用者的所有操作(滑鼠點擊和鍵盤輸入等)對該輸入項都無效。而readonly只是針對文本輸入框這類可以輸入文本的輸入項,如果設為true,使用者只是不能編輯對應的文本,但是仍然可以聚焦焦點。

(4)Readonly只針對input(text / password)和textarea有效,而disabled對於html中所有的表單元素都有效,但是在表單元素在使用了disabled後,當我們將表單以POST或GET的方式提交之後,這個元素的值不會被提交,而被設定為readonly的表單元素的值還是會被提交的。 一般比較常用的情況是:

(1)在某個表單中為使用者預填了某個唯一識別代碼,不允許使用者改動,但是在提交時需要傳遞該值,此時應該將它的屬性設定為readonly 。

(2)經常遇到當使用者正式提交了表單後需要等待管理員的資訊驗證,這就不允許使用者再更改表單中的資料,而是只能夠查看,由於disabled的作用元素範圍大,所以此時應該使用disabled,但同時應該注意的是要將submit button也disabled掉,否則只要使用者按了這個按鈕,如果在資料庫操作頁面中沒有做完整性檢測的話,資料庫中的值就會被清除。如果說在這種情況下用readonly來代替disabled的話,若表單中只有input(text / password)和textarea元素,那還是可以的,如果存在其他發元素,比如select,使用者可以在重新改寫值後按斷行符號鍵進行提交(斷行符號是預設的submit觸發按鍵) 。

(3)我們常常在使用者按了提交按鈕後,利用javascript將提交按鈕disabled掉,這樣可以防止網路條件比較差的環境下,使用者反覆點提交按鈕導致資料冗餘地存入資料庫。

以上內容就是關於readonly、disabled、display、visible之間的區別詳解,希望對大家有協助。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.