首頁 >web前端 >css教學 >readonly、disabled、display、visible之間的差異詳解

readonly、disabled、display、visible之間的差異詳解

小云云
小云云原創
2017-12-04 13:16:152668瀏覽

本文主要介紹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)如果是透過樣式檔案或方式設定元素的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之間的差異詳解,希望對大家有幫助。

相關推薦:

詳解Readonly和Disabled之間的微小區別

淺談html中input只讀屬性readonly和disable的差異

div中關於display與visibility兩個屬性之間的差異詳解

以上是readonly、disabled、display、visible之間的差異詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn