表示對頁面中的顯示效果進行一些排列瀏覽器
<head> <meta charset="UTF-8"> <title>水平居中的第一種方法</title> <style> /* text-align: center + display: inline-block * 該方法需做用在父子結構中 * 爲父級設置text-align屬性、爲子級設置display屬性 注意的問題: * text-align屬性 * 是設置文本內容對齊方式的,又是繼承屬性,會連後代元素一同設置 * display屬性 * 要實現水平居中就得改變元素類型爲行內塊級,也會有行內塊級自己的一些問題 */ #d1 { height: 200px; background-color: red; /* 爲父級設置text-align屬性 */ text-align: center; } #d2 { width: 200px; height: 200px; background-color: green; /* 爲子級設置display屬性 */ display: inline-block; } </style> </head> <body> <div id="d1"> <div id="d2"></div> </div> </body>
<head> <meta charset="UTF-8"> <title>水平居中的第二種方式</title> <style> /* margin: 0 auto * 能夠利用外邊距的特性實現水平居中 * display屬性的屬性值只能是block或table */ #d1 { width: 100%; height: 200px; background-color: red; } #d2 { width: 200px; height: 200px; background-color: green; /* 設置display屬性的屬性值爲 block 或 table */ display: block; /* 利用外邊距實現水平居中 */ margin: 0 auto; } </style> </head> <body> <div id="d1"> <div id="d2"></div> </div> </body>
<head> <meta charset="UTF-8"> <title>水平居中的第三種方式</title> <style> /* position屬性 + transform屬性 * 能夠使用定位屬性實現水平居中 * 在使用絕對定位時,注意目標元素的父級元素也要開啓定位 * 也能夠使用相對定位,相對定位是相對於自身作定位,父級元素能夠不用開啓定位 */ #d1 { width: 100%; height: 200px; background-color: red; /* 父級開啓定位 - 配合子級開啓絕對定位 */ position: relative; } /* 絕對定位的方法 */ #d2 { width: 200px; height: 200px; background-color: green; /* 開啓絕對定位實現水平居中 */ position: absolute; left: 50%; /* transform屬性 - 用於調整元素的顯示位置 */ transform: translateX(-50%); } /* 相對定位的方法 */ #d3 { width: 200px; height: 200px; background-color: blue; /* 開啓相對定位實現水平居中 */ position: relative; left: 50%; /* transform屬性 - 用於調整元素的顯示位置 */ transform: translateX(-50%); } </style> </head> <body> <div id="d1"> <div id="d2"></div> </div> <div id="d3"></div> </body>
<head> <meta charset="UTF-8"> <title>垂直居中的第一種方式</title> <style> /* display: table-cell + vertical-align: middle * 該方法只能使用在目標元素的父級元素上 * display: table-cell - 將元素是定義爲表格中的單元格 * vertical-align: middle - 設置垂直居中 */ #d1 { width: 200px; height: 800px; background-color: red; /* 將目標元素定義爲單元格 */ display: table-cell; /* 設置垂直居中 */ vertical-align: middle; } #d2 { width: 200px; height: 200px; background-color: green; } </style> </head> <body> <div id="d1"> <div id="d2"></div> </div> </body>
<head> <meta charset="UTF-8"> <title>垂直居中的第二種方式</title> <style> /* position屬性 + transform屬性 * 能夠使用定位屬性實現垂直居中 * 在使用絕對定位時,注意目標元素的父級元素也要開啓定位 * 也能夠使用相對定位,相對定位是相對於自身作定位,父級元素能夠不用開啓定位 */ #d1 { width: 200px; height: 800px; background-color: red; /* 父級開啓定位 - 配合子級開啓絕對定位 */ position: relative; } /* 絕對定位的方法 */ #d2 { width: 200px; height: 200px; background-color: green; /* 開啓絕對定位實現垂直居中 */ position: absolute; left: 50%; /* transform屬性 - 用於調整元素的顯示位置 */ transform: translateY(-50%); } /* 相對定位的方法 */ #d3 { width: 200px; height: 200px; background-color: blue; /* 開啓相對定位實現垂直居中 */ position: relative; left: 50%; /* transform屬性 - 用於調整元素的顯示位置 */ transform: translateY(-50%); } </style> </head> <body> <div id="d1"> <div id="d2"></div> </div> <div id="d3"></div> </body>
<head> <meta charset="UTF-8"> <title>居中佈局的第一種方式</title> <style> /* 居中佈局 - 表示水平方向和垂直方向同時居中 * 水平方向 - margin: 0 auto * 垂直方向 - display: table-cell + vertical-align: middle */ #d1 { width: 800px; height: 600px; background-color: lightgray; /* 父級元素設置垂直居中 */ display: table-cell; vertical-align: middle; } #d2 { width: 200px; height: 200px; background-color: lightcoral; /* 子級元素設置水平居中 */ display: table; margin: 0 auto; } </style> </head> <body> <div id="d1"> <div id="d2"></div> </div> </body>
<head> <meta charset="UTF-8"> <title>居中佈局的第二種方式</title> <style> /* position屬性 + transform屬性 * 能夠使用定位屬性實現居中佈局的效果 * 在使用絕對定位時,注意目標元素的父級元素也要開啓定位 * 也能夠使用相對定位,相對定位是相對於自身作定位,父級元素能夠不用開啓定位 */ #d1 { width: 800px; height: 800px; background-color: red; /* 開啓定位 - 配合子級元素開啓絕對定位 */ position: relative; } #d2 { width: 200px; height: 200px; background-color: green; /* 開啓絕對定位實現居中佈局效果 */ position: absolute; left: 50%; top: 50%; /* 調整元素的顯示位置 */ transform: translate(-50%, -50%); } /* 相對定位的方式 */ #d3 { width: 200px; height: 200px; background-color: blue; /* 開啓相對定位實現居中佈局的效果 */ position: relative; left: 50%; top: 50%; /* 調整元素的顯示位置 */ transform: translate(-50%, -50%); } </style> </head> <body> <div id="d1"> <div id="d2"></div> </div> <div id="d3"></div> </body>
<head> <meta charset="UTF-8"> <title>第一種兩列布局</title> <style> /* 兩列布局 - 表示水平排列的元素佈局方式 * 一列定寬,一列自適應 * 浮動 + 外邊距 */ div { height: 300px; } .d1 { /* 設置定寬 */ width: 300px; background-color: red; /* 設置浮動 */ float: left; } .d2 { width: 100%; background-color: green; /* 使用外邊距調整顯示位置 * 調整的距離等於定寬的寬度 */ margin-left: 300px; } </style> </head> <body> <div class="d1"></div> <div class="d2"></div> </body>
<head> <meta charset="UTF-8"> <title>第二種兩列布局</title> <style> /* 經過浮動 + 外邊距 + 父級容器實現兩列布局 * 爲自適應的列添加父級容器 * 經過外邊距調整位置讓元素顯示在一列中(調整的數值爲等於定寬的寬度) */ .d1, .d2 { height: 300px; } .d1 { /* 定寬 */ width: 300px; background-color: red; float: left; /* 開啓定位 - 用於提升優先層次 */ position: relative; } .rongqi { background-color: blue; float: right; /* 設置浮動後的寬度 */ width: 100%; /* 經過外邊距控制當前元素的顯示位置 */ margin-left: -300px; } .d2 { background-color: green; margin-left: 300px; } </style> </head> <body> <div class="d1"></div> <div class="rongqi"> <div class="d2"></div> </div> </body>
<head> <meta charset="UTF-8"> <title>第三種兩列布局</title> <style> /* 第三種兩列布局 * 浮動 + BFC模式 */ div { height: 300px; } .d1 { /* 設置定寬 */ width: 300px; background-color: red; /* 設置浮動 */ float: left; } .d2 { background-color: green; /* 開啓BFC模式 - 解決浮動後的堆疊顯示問題 */ overflow: hidden; } </style> </head> <body> <div class="d1"></div> <div class="d2"></div> </body>
<head> <meta charset="UTF-8"> <title>第四種兩列布局</title> <style> /* 經過display屬性實現兩列布局 * 將指定元素定義爲表格中的單元格 * 將指定元素的父級元素定義爲表格 * 經過表格特性實現兩列不急 */ .rongqi { /* 經過display屬性定義爲表格 */ display: table; table-layout: fixed; width: 100%; } .d1, .d2 { height: 300px; /* 經過display屬性定義爲表格中的單元格 */ display: table-cell; } .d1 { /* 定寬 */ width: 300px; background-color: red; } /* 因爲表格中的單元格的特性,自適應的寬度會自行分配 */ .d2 { background-color: green; } </style> </head> <body> <div class="rongqi"> <div class="d1"></div> <div class="d2"></div> </div> </body>
<head> <meta charset="UTF-8"> <title>三列布局 - 右自適應</title> <style> /* 右自適應的三列布局 * 能夠按照兩列布局的方式來實現 */ body { margin: 0; } div { height: 300px; } .left { /* 設置浮動 - 讓元素在一行中顯示 */ float: left; /* 設置定寬 */ width: 200px; background-color: red; } .center { /* 設置浮動 - 讓元素在一行中顯示 */ float: left; /* 設置定寬 */ width: 200px; background-color: green; } .right { background-color: blue; /* 設置外邊距 - 調整覆蓋問題,調整的距離爲兩列定寬的寬度之和 */ margin-left: 400px; } </style> </head> <body> <div class="left"></div> <div class="center"></div> <div class="right"></div> </body>
<head> <meta charset="UTF-8"> <title>三列布局 - 中間自適應</title> <style> /* 中間自適應的三列布局 - 第一種方式 * 因爲浮動的問題右側定寬的元素沒法和其餘元素顯示在一行中 * 能夠經過改變HTML代碼順序結構來解決 * 在對中間自適應的列進行壓縮,解決覆蓋問題 */ body { margin: 0; } div { height: 400px; } .left { /* 設置浮動 - 讓元素顯示在一行 */ float: left; /* 設置定寬 */ width: 200px; background-color: red; } .center { background-color: blue; /* 設置外邊距 - 解決覆蓋問題 */ margin: 0 200px 0; } .right { /* 設置浮動 - 讓元素顯示在一行 */ float: right; /* 設置定寬 */ width: 200px; background-color: green; } </style> </head> <body> <div class="left"></div> <!-- 改變HTML代碼順序結構 --> <div class="right"></div> <div class="center"></div> </body>
<head> <meta charset="UTF-8"> <title>三列布局 - 中間自適應</title> <style> /* 中間自適應的三列布局 - 第二種方式 * 爲中間自適應的區域添加子級 * 調整子級的顯示區域,解決覆蓋問題 * 對三列設置浮動,利用外邊距調整位置使其顯示在一行中 */ body { margin: 0; } div { height: 400px; } .left { /* 設置浮動 - 讓元素顯示在一行 */ float: left; /* 設置定寬 */ width: 200px; /* 開啓定位 - 用於提升覆蓋後的顯示層級 */ position: relative; background-color: red; } .center { background-color: blue; /* 設置浮動 - 用於讓後面的下一個元素能夠顯示在同一行 */ float: left; /* 設置寬度 - 自適應不能是定寬 */ width: 100%; /* 利用外邊距移動元素,使其在一行中顯示 */ margin-left: -200px; } .right { /* 設置浮動 - 讓元素顯示在一行 */ float: left; /* 設置定寬 */ width: 200px; /* 利用外邊距移動元素,使其在一行中顯示 */ margin-left: -200px; background-color: green; } .neirong { /* 設置外邊距壓縮元素,解決覆蓋問題 */ margin: 0 200px 0; background-color: yellow; } </style> </head> <body> <div class="left"></div> <div class="center"> <!-- 經過子級解決覆蓋問題 --> <div class="neirong"></div> </div> <div class="right"></div> </body>
<head> <meta charset="UTF-8"> <title>三列布局 - 中間自適應</title> <style> /* 中間自適應的三列布局 - 第三種方式 * 聖盃佈局 * 添加總體容器 * 經過設置內邊距擠壓出兩邊定寬的區域 * 在經過定位將定寬的兩列移動到指定區域,解決覆蓋問題 */ * { box-sizing: border-box; } body { margin: 0; } .rongqi { /* 設置內邊距 - 擠壓出兩側定寬的顯示區域 */ padding: 0 200px 0; } .rongqi > div { height: 400px; } .left { /* 設置浮動 - 讓元素顯示在一行 */ float: left; /* 設置定寬 */ width: 200px; /* 經過定位將元素移動到指定區域解決覆蓋問題 */ position: relative; left: -200px; background-color: red; } .center { background-color: blue; /* 設置浮動 - 用於讓後面的下一個元素能夠顯示在同一行 */ float: left; /* 設置寬度 - 自適應不能是定寬 */ width: 100%; /* 利用外邊距移動元素,使其在一行中顯示 */ margin-left: -200px; } .right { /* 設置浮動 - 讓元素顯示在一行 */ float: left; /* 設置定寬 */ width: 200px; /* 利用外邊距移動元素,使其在一行中顯示 */ margin-left: -200px; /* 經過定位將元素移動到指定區域解決覆蓋問題 */ position: relative; right: -200px; background-color: green; } </style> </head> <body> <!-- 添加總體容器 --> <div class="rongqi"> <div class="left"></div> <div class="center"></div> <div class="right"></div> </div> </body>
<head> <meta charset="UTF-8"> <title>三列布局 - 中間自適應</title> <style> /* 中間自適應的三列布局 - 第四種方式 * 雙飛翼佈局 * 改變HTML代碼順序結構 * 爲中間自適應的區域添加子級 * 調整子級的顯示區域,解決覆蓋問題 * 對三列設置浮動,利用外邊距調整位置使其顯示在一行中 */ body { margin: 0; } div { height: 400px; } .left { /* 設置浮動 - 讓元素顯示在一行 */ float: left; /* 設置定寬 */ width: 200px; /* 利用外邊距移動元素,使其在一行中顯示 */ margin-left: -100%; background-color: red; } .center { background-color: blue; /* 設置浮動 - 用於讓後面的下一個元素能夠顯示在同一行 */ float: left; /* 設置寬度 - 自適應不能是定寬 */ width: 100%; } .right { /* 設置浮動 - 讓元素顯示在一行 */ float: left; /* 設置定寬 */ width: 200px; /* 利用外邊距移動元素,使其在一行中顯示 */ margin-left: -200px; background-color: green; } .neirong { /* 設置外邊距壓縮元素,解決覆蓋問題 */ margin: 0 200px 0; background-color: yellow; } </style> </head> <body> <!-- 改變HTML代碼順序結構 - 便於瀏覽器搜索抓取 --> <div class="center"> <!-- 經過子級解決覆蓋問題 --> <div class="neirong"></div> </div> <div class="left"></div> <div class="right"></div> </body>
表示子級元素平均分配父級元素的寬度佈局
<head> <meta charset="UTF-8"> <title>等分佈局</title> <style> /* 等分佈局 - 表示子級元素平均分配父級元素的寬度 * 經過百分比來設置 * 用父級元素的寬度(100%)除以子級元素的個數,獲得每一個子級元素所佔的百分比寬度值 */ body { margin: 0; } div { /* 設置浮動 - 讓元素水平排列 */ float: left; /* 設置百分比寬度值會自行等分在父級元素中的所佔區域 */ width: 25%; height: 400px; } .d1 { background-color: red; } .d2 { background-color: green; } .d3 { background-color: blue; } .d4 { background-color: yellow; } </style> </head> <body> <div class="d1"></div> <div class="d2"></div> <div class="d3"></div> <div class="d4"></div> </body>
<head> <meta charset="UTF-8"> <title>等分佈局</title> <style> /* 等分佈局 - 表示子級元素平均分配父級元素的寬度 * 經過display屬性來實現等分佈局 * 爲指定元素添加父級元素,並經過display屬性將其定義爲表格(table屬性值) * 經過display屬性將指定元素定義爲表格中的單元格(table-cell屬性值) * 經過表格的特性實現等分佈局 */ body { margin: 0; } .table { /* 將該元素定義爲表格 */ display: table; /* 設置寬度 - 沒有寬度表格沒有顯示 */ width: 100%; } .table > div { /* 將該元素定義爲單元格 * 不須要設置單元格的寬度,經過表格的特性,會自行等分表格的寬度 */ display: table-cell; height: 400px; } .d1 { background-color: red; } .d2 { background-color: green; } .d3 { background-color: blue; } .d4 { background-color: yellow; } </style> </head> <body> <!-- 添加容器 - 定義爲表格 --> <div class="table"> <!-- 再將指定元素定義爲表格中的單元格 --> <div class="d1"></div> <div class="d2"></div> <div class="d3"></div> <div class="d4"></div> </div> </body>
<head> <meta charset="UTF-8"> <title>等分佈局 - 有間距</title> <style> /* 有間距的等分佈局 - 第一種方式 * 爲指定元素添加總體容器,並在總體容器之上添加可視容器 * 總體容器的寬度等於 指定元素的寬度之和 加上 指定元素的外邊距之和 * 可視容器的寬度等於 指定元素的寬度之和 加上 指定元素的外邊距之和減一(一個元素的外邊距) * 經過對可視容器設置overflow屬性來去除對出的外邊距 */ body { margin: 0; } .keshi { /* 設置可視容器的寬度 - 四個指定元素的寬度 + 三個指定元素的外邊距 */ width: 1260px; /* 用解決內容溢出的方式去除第四的外邊距 同時解決因爲子級設置浮動引出的高度塌陷問題 */ overflow: hidden; border: 1px solid blueviolet; } .keshi > .rongqi { /* 設置總體容器寬度 - 四個指定元素的寬度 + 四個指定元素的外邊距 */ width: 1280px; /* 設置高度解決高度塌陷 */ /*height: 400px;*/ /* 經過設置浮動開啓BFC模式,解決高度塌陷 */ float: left; background-color: #ff6700; } .keshi > .rongqi > div { /* 設置浮動 - 讓元素水平排列顯示 */ float: left; width: 300px; height: 400px; /* 經過外邊距設置元素間的間隙 */ margin-right: 20px; } .d1 { background-color: red; } .d2 { background-color: green; } .d3 { background-color: blue; } .d4 { background-color: yellow; } </style> </head> <body> <!-- 添加可視容器 --> <div class="keshi"> <!-- 添加總體容器 --> <div class="rongqi"> <div class="d1"></div> <div class="d2"></div> <div class="d3"></div> <div class="d4"></div> </div> </div> </body>
<head> <meta charset="UTF-8"> <title>等分佈局 - 有間距</title> <style> /* 有間距的等分佈局 - 第二種方式 * 爲指定元素添加總體容器,並在總體容器之上添加可視容器 * 總體容器的寬度等於 指定元素的寬度之和 加上 指定元素的外邊距之和 * 可視容器的寬度等於 指定元素的寬度之和 加上 指定元素的外邊距之和減一(一個元素的外邊距) * 對總體容器開啓定位,經過調整定位的顯示位置來去除多餘的外邊距 */ body { margin: 0; } .keshi { /* 設置可視容器的寬度 - 四個指定元素的寬度 + 三個指定元素的外邊距 */ width: 1260px; border: 1px solid blueviolet; } .keshi > .rongqi { /* 設置總體容器寬度 - 四個指定元素的寬度 + 四個指定元素的外邊距 */ width: 1280px; /* 開啓BFC模式解決高度塌陷 */ overflow: hidden; /* 開啓相對定位 */ position: relative; /* 定位的距離等於外邊距的數值 */ left: -20px; background-color: #ff6700; } .keshi > .rongqi > div { /* 設置浮動 - 讓元素水平排列顯示 */ float: left; width: 300px; height: 400px; /* 經過外邊距設置元素間的間隙 */ margin-left: 20px; } .d1 { background-color: red; } .d2 { background-color: green; } .d3 { background-color: blue; } .d4 { background-color: yellow; } </style> </head> <body> <!-- 添加可視容器 --> <div class="keshi"> <!-- 添加總體容器 --> <div class="rongqi"> <div class="d1"></div> <div class="d2"></div> <div class="d3"></div> <div class="d4"></div> </div> </div> </body>
等高佈局 - 表示在一行中的元素擁有相同的高度code
<head> <meta charset="UTF-8"> <title>等高佈局</title> <style> /* 等高佈局 - 表示在一行中的元素擁有相同的高度 * 簡單粗暴的方式 - 直接設置統一高度 * 經過display屬性設置等高佈局 * 爲指定元素添加總體容器,而且設置display屬性,定義爲表格(table屬性值) * 爲指定元素設置display屬性,定義爲表格中的單元格(table-cell屬性值) * 經過表格的特性實現等高佈局 */ body { margin: 0; } .rongqi { /* 將總體容器定義爲表格 */ display: table; } .rongqi > div { /* 將指定元素定義爲單元格 */ display: table-cell; width: 300px; } .left { background-color: red; } .right { background-color: green; } </style> </head> <body> <!-- 添加總體容器 - 將容器定義爲表格 --> <div class="rongqi"> <!-- 將指定元素定義爲單元格 --> <div class="left">我是誰、我在那、我要幹啥</div> <div class="right">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus ad amet blanditiis cum enim inventore iure nihil odit, optio porro quasi reiciendis similique sit tempora voluptate voluptates voluptatibus. Amet, iure!</div> </div> </body>
<head> <meta charset="UTF-8"> <title>等高佈局</title> <style> /* 等高佈局 - 表示在一行中的元素擁有相同的高度 * 經過設置 內、外邊距 進行擠壓實現僞等高 * 爲指定元素設置下內邊距,向下拉伸 * 爲指定元素設置下外邊距(負值),向上擠壓 * 爲總體容器設置overflow屬性,隱藏多餘的部分實現僞等高佈局 */ body { margin: 0; } .rongqi { width: 600px; /* 解決內容溢出 - 實現僞等高 */ overflow: hidden; } .rongqi > div { float: left; width: 300px; /* 設置下內邊距 */ padding-bottom: 999px; /* 設置下外邊距 */ margin-bottom: -999px; } .left { background-color: red; } .right { background-color: green; } </style> </head> <body> <!-- 添加總體容器 --> <div class="rongqi"> <div class="left">我是誰、我在那、我要幹啥</div> <div class="right">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus ad amet blanditiis cum enim inventore iure nihil odit, optio porro quasi reiciendis similique sit tempora voluptate voluptates voluptatibus. Amet, iure!</div> </div> </body>
表示對整個頁面進行佈局orm
<head> <meta charset="UTF-8"> <title>全屏佈局</title> <style> /* 全局佈局 - 表示對整個頁面進行佈局 * 能夠經過固定定位來實現 * 當偏移量的left和right的屬性值都爲 0 時,能夠不設置寬度 * 設置高度爲百分值時,相對父級不能是頁面 */ body { margin: 0; } header { /* 設置定高 */ height: 100px; /* 設置固定定位 - 將頂部內容固定在頁面頂部 */ position: fixed; left: 0; top: 0; right: 0; background-color: #c9c9c9; } main { /* 設置固定定位 - 經過固定定位實現主體內容自適應 */ position: fixed; left: 0; top: 100px; right: 0; bottom: 100px; overflow: auto; background-color: #00c3f5; } main > .left { /* 設置定寬 */ width: 300px; height: 100%; position: fixed; background-color: #6fc749; } main > .right { height: 1000px; /* 經過外邊距解決覆蓋問題 */ margin-left: 300px; background-color: yellow; } footer { height: 100px; /* 設置固定定位 - 將底部內容固定在頁面底部 */ position: fixed; left: 0; bottom: 0; right: 0; background-color: #666666; } </style> </head> <body> <!-- 頁面頂部 --> <header></header> <!-- 頁面主體 --> <main> <div class="left"></div> <div class="right"></div> </main> <!-- 頁面底部 --> <footer></footer> </body>