整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          HTML DOM 元素對象

          HTML DOM 節點

          在 HTML DOM (Document Object Model) 中, 每個東西都是 節點 :

          • 文檔本身就是一個文檔對象

          • 所有 HTML 元素都是元素節點

          • 所有 HTML 屬性都是屬性節點

          • 插入到 HTML 元素文本是文本節點

          • 注釋是注釋節點



          元素對象

          在 HTML DOM 中, 元素對象代表著一個 HTML 元素。

          元素對象 的 子節點可以是, 可以是元素節點,文本節點,注釋節點。

          NodeList 對象 代表了節點列表,類似于 HTML元素的子節點集合。

          元素可以有屬性。屬性屬于屬性節點(查看下一節)。

          瀏覽器支持

          所有主流瀏覽器都支持 元素對象 和 NodeList 對象。.

          屬性和方法

          以上屬性和方法可適用于所有 HTML 元素:

          屬性 / 方法描述
          element.accessKey設置或返回accesskey一個元素
          element.addEventListener()向指定元素添加事件句柄
          element.appendChild()為元素添加一個新的子元素
          element.attributes返回一個元素的屬性數組
          element.childNodes返回元素的一個子節點的數組
          element.classlist返回元素的類名,作為 DOMTokenList 對象。
          element.className設置或返回元素的class屬性
          element.clientHeight在頁面上返回內容的可視高度(不包括邊框,邊距或滾動條)
          element.clientWidth在頁面上返回內容的可視寬度(不包括邊框,邊距或滾動條)
          element.cloneNode()克隆某個元素
          element.compareDocumentPosition()比較兩個元素的文檔位置。
          element.contentEditable設置或返回元素的內容是否可編輯
          element.dir設置或返回一個元素中的文本方向
          element.firstChild返回元素的第一個子節點
          element.focus()設置文檔或元素獲取焦點
          element.getAttribute()返回指定元素的屬性值
          element.getAttributeNode()返回指定屬性節點
          element.getElementsByTagName()返回指定標簽名的所有子元素集合。
          element. getElementsByClassName()返回文檔中所有指定類名的元素集合,作為 NodeList 對象。
          element.getFeature()返回指定特征的執行APIs對象。
          element.getUserData()返回一個元素中關聯鍵值的對象。
          element.hasAttribute()如果元素中存在指定的屬性返回 true,否則返回false。
          element.hasAttributes()如果元素有任何屬性返回true,否則返回false。
          element.hasChildNodes()返回一個元素是否具有任何子元素
          element.hasfocus()返回布爾值,檢測文檔或元素是否獲取焦點
          element.id設置或者返回元素的 id。
          element.innerHTML設置或者返回元素的內容。
          element.insertBefore()現有的子元素之前插入一個新的子元素
          element.isContentEditable如果元素內容可編輯返回 true,否則返回false
          element.isDefaultNamespace()如果指定了namespaceURI 返回 true,否則返回 false。
          element.isEqualNode()檢查兩個元素是否相等
          element.isSameNode()檢查兩個元素所有有相同節點。
          element.isSupported()如果在元素中支持指定特征返回 true。
          element.lang設置或者返回一個元素的語言。
          element.lastChild返回的最后一個子元素
          element.namespaceURI返回命名空間的 URI。
          element.nextSibling返回該元素緊跟的一個元素
          element.nodeName返回元素的標記名(大寫)
          element.nodeType返回元素的節點類型
          element.nodeValue返回元素的節點值
          element.normalize()使得此成為一個"normal"的形式,其中只有結構(如元素,注釋,處理指令,CDATA節和實體引用)隔開Text節點,即元素(包括屬性)下面的所有文本節點,既沒有相鄰的文本節點也沒有空的文本節點
          element.offsetHeight返回,任何一個元素的高度包括邊框和填充,但不是邊距
          element.offsetWidth返回元素的寬度,包括邊框和填充,但不是邊距
          element.offsetLeft返回當前元素的相對水平偏移位置的偏移容器
          element.offsetParent返回元素的偏移容器
          element.offsetTop返回當前元素的相對垂直偏移位置的偏移容器
          element.ownerDocument返回元素的根元素(文檔對象)
          element.parentNode返回元素的父節點
          element.previousSibling返回某個元素緊接之前元素
          element.querySelector()返回匹配指定 CSS 選擇器元素的第一個子元素
          document.querySelectorAll()返回匹配指定 CSS 選擇器元素的所有子元素節點列表
          element.removeAttribute()從元素中刪除指定的屬性
          element.removeAttributeNode()刪除指定屬性節點并返回移除后的節點。
          element.removeChild()刪除一個子元素
          element.removeEventListener()移除由 addEventListener() 方法添加的事件句柄
          element.replaceChild()替換一個子元素
          element.scrollHeight返回整個元素的高度(包括帶滾動條的隱蔽的地方)
          element.scrollLeft返回當前視圖中的實際元素的左邊緣和左邊緣之間的距離
          element.scrollTop返回當前視圖中的實際元素的頂部邊緣和頂部邊緣之間的距離
          element.scrollWidth返回元素的整個寬度(包括帶滾動條的隱蔽的地方)
          element.setAttribute()設置或者改變指定屬性并指定值。
          element.setAttributeNode()設置或者改變指定屬性節點。
          element.setIdAttribute()
          element.setIdAttributeNode()
          element.setUserData()在元素中為指定鍵值關聯對象。
          element.style設置或返回元素的樣式屬性
          element.tabIndex設置或返回元素的標簽順序。
          element.tagName作為一個字符串返回某個元素的標記名(大寫)
          element.textContent設置或返回一個節點和它的文本內容
          element.title設置或返回元素的title屬性
          element.toString()一個元素轉換成字符串
          nodelist.item()返回某個元素基于文檔樹的索引
          nodelist.length返回節點列表的節點數目。

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          )CSS 標準盒子模型(Box Model)

          在網頁中所有HTML元素可以看作盒子,在CSS中,"box model"術語是用來設計和布局時使用的;CSS盒模型本質上是一個盒子,封裝周圍的HTML元素包括:外邊距(margin)邊框(border)內邊距(padding)實際內容(content)四個屬性,所以布局時每個元素所占的總寬高是這4個屬性的總和;比如寬度:總元素的寬度=寬度+左填充+右填充+左邊框+右邊框+左邊距+右邊距

          1.1Margin(外邊距)清除邊框外的區域,外邊距是透明的

          1.2Border(邊框)圍繞在內邊距和內容外的邊框

          1.3Padding(內邊距)清除內容周圍的區域,內邊距是透明的

          1.4Content(內容)盒子里填充的內容比如文本,圖像等

          標準盒子模型

          寬度為100px的div

          根據盒子模型得出該元素的總寬度為:100+(20+20)+(15+15)+(15+15)(由里至外)因此如果想在此div中放置一個寬度為100px的元素,此元素的總寬度必須小于等于100px

          2)DIV+CSS布局

          Div+CSS布局就是將網頁內容用<div>分割為塊,之后使用css設置每個塊的大小,位置等

          DIV+CSS布局最重要的是靈活運用float(浮動)屬性,其值:1)left 2)right 3)both

          clear屬性作用是清除浮動,其值為:1)left 2)right 3)both

          d2向右浮動 float:right

          因為div是塊級元素,如果都沒有脫離文檔流div就會按照從上到下的順序放置

          d2設置為右浮動其他兩個div位置的變化:

          1)d1沒有脫離文檔流會占據一行,所以d2只能浮動到d1下面的右面如上圖所示

          2)d2脫離文檔流,d3自動填充到d2的位置

          d1,d2全部設置為右浮動

          1)當d1,d2都設置為右浮動時:因為css中d1在d2上面先設置,因此d1在右側,如果d2在d1上面先設置樣式,則d2在右側,d1在左側,自己測試不再截圖

          2)當d1,d2都設置為右浮動時:d3就會跑到上圖中d2的位置

          3)如果3個div都設置左或右浮動,當3個width加一起<=100%就會在第一行顯示(d1,d2,d3)

           <style type="text/css">
                #d1 {
                margin: 0px;
                background-color: red;
                padding: 0px;
                width: 50%;
                height: 100px;
                float:right; 
              }
              #d2 {
                margin: 0px;
                background-color: yellow;
                padding: 0px;
                width: 50%;
                height: 100px;
                float:right; 
              }
              #d3 {
                margin: 0px;
                background-color: green;
                padding: 0px;
                width: 50%;
                height: 100px;
              }
            </style>

          d2清除左浮動,d3設置為右浮動

          當d2清除了左浮動,d3設置為右浮動,就會如上圖所示;如果d2清除的是右浮動,d2就會在d1上面,d3就會定位在d1下面的右面,自己測試不再截圖

          當d2清除了左浮動,如果想要d2緊挨著d1(與d1在一行上),可以通過position脫離文檔流設置其上下左右屬性使其定位在d1右側,自己測試

          <!DOCTYPE html
            PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
            <title>div+CSS布局</title>
            <style type="text/css">
                #d1 {
                margin: 0px;
                background-color: red;
                padding: 0px;
                width: 30%;
                height: 100px;
                float:left; 
              }
              #d2 {
                margin: 0px;
                background-color: yellow;
                padding: 0px;
                width: 40%;
                height: 100px;
                clear: left;     
              }
              #d3 {
                margin: 0px;
                background-color: green;
                padding: 0px;
                width: 30%;
                height: 100px; 
                float: right; 
              }
            </style>
          </head>
          <body>
              <div id="d1"><span style="font-size: 50px;">d1</span></div>
              <div id="d2"><span style="font-size: 50px;">d2</span></div>
              <div id="d3"><span style="font-size: 50px;">d3</span></div>
            </body>
          </html>

          DIV+CSS布局綜合運用position+上下左右屬性與float屬性為網頁進行布局

          注意:瀏覽器的兼容性問題,特別是使用IE內核的瀏覽器對W3C的規范不怎么遵守

          . block(區塊)

          block面板主要是設置對象文本的文字間距、對齊方式、上標、下標、排列方式、首行縮進等。

          (1)word-spacing:設置單詞之間的間距。可以設置負值。

          默認值:normal

          (2)letter-spacing:設置字符之間的間距。可以指定負值。因為中文也是字符, 這個參數可以設置文字間的間距。

          默認值:normal


          (3)vertical-align:指定元素的垂直對齊方式。針對<td>表格設置垂直對齊方法,但是對<div>設置無效,可以將display屬性設置為table-cell值;

          可以指定sub(下標)、super(上標)、top(與頂端對齊)、middle(居中)、bottom(與底端對齊)等。適用于行內塊元素 img、input、td等

          baseline 默認。元素放置在父元素的基線上。

          sub 垂直對齊文本的下標。

          super 垂直對齊文本的上標

          top 把元素的頂端與行中最高元素的頂端對齊

          text-top 把元素的頂端與父元素字體的頂端對齊

          middle 把此元素放置在父元素的中部。

          bottom 把元素的頂端與行中最低的元素的頂端對齊。

          text-bottom 把元素的底端與父元素字體的底端對齊。

          % 使用 "line-height" 屬性的百分比值來排列此元素。允許使用負值。

          inherit 規定應該從父元素繼承 vertical-align 屬性的值。

          默認值: baseline


          (4)text-align:設置文本的排列方式(適用于行內元素和行內塊元素, 如 a、span、input、img、label等元素)。left(左對齊)、right(右對齊)、center(居中)、justify(兩端對齊)。也可用于<hr/>下劃線對齊方式

          默認值: 如果 direction 屬性是 ltr, 則默認值是 left;如果 direction 是 rtl,則為 right。(關于CSS direction 屬性看下面的內容介紹)


          text-align 和margin auto 區別

          text-align 可以讓塊級元素里面的文字內容居中對齊.

          文字內容 == (圖片 input 行內元素 行內塊元素)

          但是對于里面的塊級元素無效

          讓一個塊級元素居中對齊 : margin:0 auto;



          (5)text-indent:設置文本第一行的縮進值。負值用于將文本第一行向外拉, 主要給<p>設置首行。

          要在每段前空兩格,可設置為2em,因為em是當前字體尺寸,2em就是兩個字的大小。

          默認值: not specified(沒有規定的)

          p{font-size:12px;text-indent:2em;}

          上述代碼就是可以實現段落首行縮進24px(也就是兩個字體大小的距離)。



          (6)white-space:設置如何處理元素內的空白符。有三個選項可選:

          normal 會將空白符全部壓縮;

          pre 則會如同處理pre標簽內的文本一樣處理這些空白符,也就是說,所有的空白符,包括空格,標簽,回車,等都會得以保留;

          nowrap 指定文本只有遇到br標簽時才換行。

          默認值: normal


          (7)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 屬性的值。

          默認值: inline


          常用的屬性:

          display:none; //隱藏
          display:block //顯示(將行內元素轉換為塊元素)
          dispaly:inline //將塊元素轉換行內元素
          dispaly:inline-block //將塊元素轉換為行內塊元素
          display:table-cell; //此元素會作為一個表格單元格顯示(類似 <td> 和 <th>) 用于多行文本、塊元素垂直居中

          以上轉換涉及行內塊元素(img、input)轉換;

          經過大量的測試證明:屬性display是不能用于轉換行內塊元素(img、input)


          同義詞: 內聯元素(行內元素)



          4. box(方框或盒子) 主要針對圖片、表格、層、段落(p)、標題(h1-h6)等

          box面板主要設置對象的邊界、間距、高度、寬度、和漂浮方式等。

          (1)width:定義元素的寬。

          默認值:auto


          (2)height:定義元素的高。

          默認值:auto


          以上width、height屬性如果是針對div標簽設置css樣式,則與定位設置窗口width、height屬性一致(Dreamweaver會自動填充數據)


          在父元素和子元素都設置了高度和寬度的情況下:

          如果子元素的寬度超出了它的父元素的寬度, 則會父元素不會限制其顯示寬度;

          如果子元素的高度超出了它的父元素的高度, 則會父元素不會限制其顯示高度;

          (3)float:定義元素的漂浮方式。left 表示對象浮在左邊、right表示對象浮在右邊、none 表示對象不浮動。

          默認值:none


          一個span標簽不需要轉成塊級元素, 就能夠設置寬度、高度了。所以能夠證明一件事兒, 就是所有標簽已經不區分行內、塊了。

          也就是說, 一旦一個元素浮動了, 那么, 將能夠并排了, 并且能夠設置寬高了。無論它原來是個div還是個span。

          span{
          float: left;
          width: 200px;
          height: 200px;
          background-color: orange;
          }
          

          (4)clear:不允許元素的漂浮,相對于前一個<div>設置浮動時,下一個有清除設置的元素就會移到它的下面。

          left表示不允許左邊有浮動對象 right表示不允許右邊有浮動對象

          none 表示允許兩邊都可以有浮動對象 both 不允許有浮動對象。

          默認值:none


          浮動的主要作用是將塊元素排在同一行(span也可以設置浮動);

          浮動元素它會向左或者向右進行浮動, 所謂浮動可以理解"飄";

          浮動元素向它遇到父元素的邊框就停止浮動;

          浮動元素的層級會比普通元素要高, 并且它不會再占用原有的高度;

          浮動元素只會影響后面的元素, 不會影響前面的元素:

          浮動元素的后面的元素(可能是一個也可能是多個元素受到影響)也會繼承浮動元素的特性, 它也會浮動了要解決這個問題有兩辦法;

          第一個:需要清除浮動

          第二個:給父元素設置一個高度(子元素都設置了height高度條件下), 不建議使用

          清除浮動后它不會影響到它后面的元素, 父元素會將所有的浮動元素包圍者


          當然浮動元素對后面的元素的影響可以做首字母方法, 圖文混排(文字環繞圖片)等特效;


          (5)padding:定義元素內容與其邊框的空距(如果元素沒有邊框就是指頁邊的空白)。

          可以分別設置分別設置上、右、下、左內邊距。

          padding-top

          padding-right

          padding-bottom

          padding-left

          p {padding:20px} 設置設置上、右、下、左內邊距都為20px

          p {margin: 20px 30px 30px 20px;} 設置padding-top padding-right padding-bottom padding-left分別為20px 30px 30px 20px

          默認值:0。


          要懂得, 用小屬性層疊大屬性:

          padding: 20px;

          padding-left: 30px;

          注意:大屬性要寫在前面, 小屬性寫在后面;

          比如:

          div{
          width: 200px;
          height: 200px;
          padding-left: 10px;
          padding-right: 20px;
          padding:40px 50px 60px;
          padding-bottom: 30px;
          border: 1px solid #000;
          }

          padding-left:10px和padding-right:20px沒用, 因為后面的padding大屬性, 層疊覆蓋了。


          (6)margin:定義元素的邊框與其他元素之間的距離(如果沒有邊框就是指內容之間的距離)。

          可以分別設置上邊界、右邊界、下邊界、左邊界的值。

          margin-top

          margin-right

          margin-bottom

          margin-left

          p {margin:20px}

          p {margin:10px 0px 15px 5px;}

          默認值:0

          marign:上邊界值 右邊界值 下邊界值 左邊界值

          margin屬性值必須按照上面順序進行排列,以空格分開。如果僅輸入一個值,則4個邊界值會同時設置為此值。

          如果僅輸入兩個的值,則缺少的值會以對邊的設置值進行替代。例如:

          div{margin:5px 10px 15px 20px} /*上=5px,右=10px,下=15px,左=20px*/
          div{margin:5px} /*上=5px,右=5px,下=5px,左=5px*/
          div{margin:5px 10px} /*上=5px,右=10px,下=5px,左=10px*/
          div{margin:5px 10px 15px} /*上=5px,右=10px,下=15px,左=10px*/
          


          5. border(邊框) 針對段落(p標簽)、圖片、表格、標題(h1-h6)、form、input等(幾乎所有的元素都可以設置邊框)

          border面板可以設置對象邊框的寬度、顏色及樣式。

          (1)border-width:設置元素邊的寬度。可以分別設定top(上邊寬)、right(右邊寬)、bottom(下邊寬)、left(左邊寬)的值。

          border-top-width border-right-width border-bottom-width border-left-width

          thin 定義細的邊框。

          medium 默認。定義中等的邊框。

          thick 定義粗的邊框。

          length 允許您自定義邊框的寬度。

          inherit 規定應該從父元素繼承邊框寬度。

          默認值: medium


          (2)border-color:設置邊框的顏色。你可以分別對每條邊設置顏色。

          注意:我們可以通過設置不同的顏色做出亮邊和暗邊的效果,這樣元素看起來是立體的。

          border-top-color border-right-color border-bottom-color border-left-color

          默認值: not specified(未規定的)


          (3)border-style:設置邊框樣式。

          border-top-style border-right-style border-bottom-style border-left-style

          可以設置為none(無邊框)、dotted(點線)、dashed(虛線)、solid(實線)、double(雙線)、

          groove(凹槽,3D凹線)、ridge(凸槽,3D凸線)、inset(凹邊,3D嵌入線)、outset(凸邊,3D浮出線)等邊框樣式。

          默認值:none(無邊框)

          推薦:表單輸入框:inset(凹邊) 按鈕:outset(凸邊)


          兼容性問題

          比如, border:10px ridge red; 在chrome和firefox、IE中有細微差別:

          如果公司里面的設計師, 處女座的, 追求極高的頁面還原度, 那么不能使用css來制作邊框。

          就要用到圖片, 就要切圖了。所以, 比較穩定的就幾個:solid、dashed、dotted, 其他的邊框樣式盡量不要用。


          border可以沒有: border: none;

          某一條邊沒有: border-left: none;

          也可以調整左邊邊框的寬度為0px: border-left-width: 0px;

          注意:border-bottom-style:可以修改a鏈接的"下劃線"的風格

          border-bottom-width:可以修改a鏈接的"下劃線"的寬度(粗細)

          border-bottom-color:可以修改a鏈接的"下劃線"的顏色


          主站蜘蛛池模板: 国产MD视频一区二区三区| 农村人乱弄一区二区| 国产经典一区二区三区蜜芽| 国产精品一区二区四区| 麻豆一区二区在我观看| 精品国产不卡一区二区三区| 国产精品久久久久一区二区三区| 99久久人妻精品免费一区| 无码AV天堂一区二区三区| 亚洲午夜日韩高清一区| 国产精品一区三区| 久久AAAA片一区二区| 亚洲AV综合色区无码一区| 日本高清不卡一区| 中文字幕日韩一区二区不卡 | 内射少妇一区27P| 国产精品资源一区二区| 成人区人妻精品一区二区不卡视频| 日本免费精品一区二区三区| 国产精品女同一区二区久久| 日本中文字幕一区二区有码在线| 无码人妻久久久一区二区三区 | 亚洲综合无码一区二区三区| 制服丝袜一区在线| 日韩精品电影一区亚洲| 精品视频一区二区三区在线观看| 亚洲av无码成人影院一区| 四虎一区二区成人免费影院网址| 久久国产精品亚洲一区二区| 伊人色综合网一区二区三区| 亚洲人成网站18禁止一区| 亚洲国产情侣一区二区三区| 国产一区二区三区露脸| 国产精品一区二区久久精品| 一区二区三区在线看| 韩国福利视频一区二区| 中文字幕一区二区三区在线观看 | 精品无人区一区二区三区| 2018高清国产一区二区三区| 日本一区免费电影| 大帝AV在线一区二区三区|