表單元素(控件)不可見,你用visibility還是display?
屬性大比拼:visibility和display的介紹
今天在做一個表單時涉及到這方面,當選中相應的選項后設置相應的幾個元素(控件可見或不可見),后來還是用了visibility來實現。我們先來看下visibility對應的幾個屬性的介紹:
visibility:visible
/*元素可見,默認值*/
visibility:hidden
/*元素不可見,但仍然為其保留相應的空間*/
visibility:collapse
/*只對table對象起作用,能移除行或列但不會影響表格的布局。如果這個值用
在table以外的對象上則表現為hidden。*/
visibility:inherit
/*繼承上級元素的visibility值。*/
再來看一下display對應的幾個屬性的介紹:
display:none
/*元素不可見,並且不為其保留相應的位置*/
display:block
/*表現為一個塊級元素(一般情況下獨占一行)*/
display:inline
/*表現為一個行級元素(一般情況下不獨占一行)*/
不好意思,我要華麗麗地加上一條鏈接,讓復制粘貼不注明文章出處的人幫我做個外鏈,抱歉。http://www.chunye39.com 純野原創博客
visibility和display中不可見的區別
估計看到這里,你也就大概知道了兩者的區別了吧。哈哈。雖然Visibility和Display屬性都可以隱藏一個元素,但它們之間的不同點在於visibility:hidden在隱藏一個元素的同時仍然在頁面上為該元素保留所需的空間,而display:none則表現得像把元素從頁面里刪除了,在頁面上看不出該元素還存在着。
如何運用?
區別知道了,但如何運用起來呢。在頁面開發中,表單元素(控件)不可見,你用visibility還是display?
下面說一個通用的方法。如果你想隱藏某元素,但在頁面上保留該元素的空間的話,你應該使用visibility: hidden 。如果你想在隱藏某元素的同時讓其它內容填充空白的話應該使用 display: none 。
實踐出真知
ok,最后獻上下午我寫的這個簡單的js小函數來做為實踐總結。這個小函數的功能是,當用戶選擇了下拉列表框后,獲取下拉列表框的值,根據這個下拉框的值來判斷某些元素(控件)可見或是不可見。很簡單滴。。。
function ChangeReason() {
if (ccbChangeReason.value == "A 建設銀行") {
checkbox1.style.visibility = "visible";
checkbox2.style.visibility = "visible";
checkbox3.style.visibility = "visible";
lblElseReason.style.visibility = "hidden";
txtcElseReason.style.visibility = "hidden";
}
if (ccbChangeReason.value == "B 工商銀行") {
checkbox1.style.visibility = "hidden";
checkbox2.style.visibility = "hidden";
checkbox3.style.visibility = "hidden";
lblElseReason.style.visibility = "hidden";
txtcElseReason.style.visibility = "hidden";
}
if (ccbChangeReason.value == "C 農業銀行") {
checkbox1.style.visibility = "hidden";
checkbox2.style.visibility = "hidden";
checkbox3.style.visibility = "hidden";
lblElseReason.style.visibility = "visible";
txtcElseReason.style.visibility = "visible";
}
}