表單元素(控件)不可見,你用visibility還是display?
本節通過向大家描述display和visibility的差別,來向大家說明在表單元素(控件)不可見上,你應該用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
- /*表現為一個行級元素(一般情況下不獨占一行)*/
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";
- }
【編輯推薦】