1. 程式人生 > >CSS之display屬性

CSS之display屬性

display 屬性規定元素應該生成的框的型別。

描述

none

此元素不會被顯示。

block

此元素將顯示為塊級元素,此元素前後會帶有換行符。

inline

預設。此元素會被顯示為內聯元素,元素前後沒有換行符。

inline-block

行內塊元素。(CSS2.1 新增的值)

list-item

此元素會作為列表顯示。

run-in

此元素會根據上下文作為塊級元素或內聯元素顯示。

compact

CSS 中有值 compact,不過由於缺乏廣泛支援,已經從 CSS2.1 中刪除。

marker

CSS 中有值 marker,不過由於缺乏廣泛支援,已經從 CSS2.1 中刪除。

table

此元素會作為塊級表格來顯示(類似 <table>),表格前後帶有換行符。

inline-table

此元素會作為內聯表格來顯示(類似 <table>),表格前後沒有換行符。

table-row-group

此元素會作為一個或多個行的分組來顯示(類似 <tbody>)。

table-header-group

此元素會作為一個或多個行的分組來顯示(類似 <thead>)。

table-footer-group

此元素會作為一個或多個行的分組來顯示(類似 <tfoot>)。

table-row

此元素會作為一個表格行顯示(類似 <tr>)。

table-column-group

此元素會作為一個或多個列的分組來顯示(類似 <colgroup>)。

table-column

此元素會作為一個單元格列顯示(類似 <col>)

table-cell

此元素會作為一個表格單元格顯示(類似 <td> 和 <th>)

table-caption

此元素會作為一個表格標題顯示(類似 <caption>)

inherit

規定應該從父元素繼承 display 屬性的值。

1、display被設定為block(塊)時,容器中所有的元素將會被當作一個單獨的塊,就像<div>元素一樣,它會在那個點被放入到頁面中。(實際上你可以設定<span>的display:block,使其可以像<div>一樣工作。

)比較常用於<a><span>這兩個標籤——因為這兩個標籤非塊元素,如果不用display:block定義一下,那麼定義width、height等和長寬相關的css屬性時會發現完全不生效。

block元素的特點是:總是在新行上開始;高度,行高以及頂和底邊距都可控制;寬度預設是它的容器的100%,除非設定一個寬度。<div>, <p>, <h1>, <form>, <ul> 和 <li>是塊元素的例子。(block是塊!就是說佔據瀏覽器的一整行)

2、display設定為inline,將使其行為和元素inline一樣---即使它是普通的塊元素如<div>,它也將會被組合成像<span>那樣的輸出流。

inline元素的特點是:和其他元素都在一行上;高,行高及頂和底邊距不可改變;寬度就是它的文字或圖片的寬度,不可改變。<span>, <a>, <label>, <input>, <img>,<strong> 和<em>是inline元素的例子。

3、display被設定:none,這時元素實際上就從頁面中被移走,它下面所在的元素就會被自動跟上填充。

eg1:如果要做一個豎形的導航欄
<html>
<head>
<style type="text/css">
a {
display:block;
}
</style>
</head>
<body>
<a href="#">a</a>
<a href="#">b</a> 
<a href="#">c</a> 
<a href="#">d</a> 
<a href="#">e</a> 
<a href="#">f</a>
</body>
</html>


如果我們把上面程式碼中a的style效果註釋掉:


display:none和visible:hidden都能把網頁上某個元素隱藏起來,但兩者有區別:visible屬性是隱藏元素但保持元素的浮動位置,而display實際上是設定元素的浮動特徵。

  • display:none ---> 不為被隱藏的物件保留其物理空間,即該物件在頁面上徹底消失,通俗來說就是看不見也摸不到。
  • visible:hidden ---> 使物件在網頁上不可見,但該物件在網頁上所佔的空間沒有改變,通俗來說就是看不見但摸得到。元素被隱藏之後,就不能再接收到其它事件了,當其被設為"hidden"的時候,就不能再接收響應到事件了,因此也就無法通過JS令其顯示出來。
eg2:
<html>
<head>
<meta charset="utf-8">
<title>display:none和visible:hidden的區別</title>
</head>
<body >
<span style="display:none; background-color:Blue">display隱藏區域</span><span style=" background-color:Green">display顯示區域</span><br />
<span style="visibility:hidden; background-color:Blue">visible隱藏區域</span><span style="background-color:Green">visible顯示區域</span>
</body>
</html>