整合營銷服務商

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

          免費咨詢熱線:

          21.HTML 浮動、定位和顯示屬性

          SS中的浮動(Floats)、定位(Positioning)和顯示(Display)屬性是前端工程師掌握頁面布局的關鍵。本文將深入探討這些屬性的工作原理和使用場景,幫助開發者更好地理解和運用它們來構建響應式和精確的網頁布局。

          浮動(Float)

          浮動是CSS中用于實現元素排列的一種方式,它可以讓元素脫離正常的文檔流,并可以向左或向右移動,直到它的外邊緣碰到包含框或另一個浮動元素的邊緣。

          .element {
            float: left; /* 或者 'right' */
          }
          

          使用場景

          • 文字環繞圖片。
          • 創建水平導航欄。
          • 無網格系統時的列布局。

          注意事項

          • 清除浮動(Clearing Floats):使用clear屬性可以防止元素被浮動元素覆蓋。
          .clear-element {
            clear: both; /* 可以是 'left', 'right', 或 'both' */
          }
          
          • 包含浮動(Containing Floats):浮動元素的父容器可能不會擴展以包含浮動的子元素,可以通過清除浮動或使用其他技術(如overflow)來解決這個問題。
          • 浮動塌陷(Float Collapse):浮動元素不占據空間,可能導致父元素高度塌陷。

          定位(Position)

          定位屬性允許你控制元素的位置,它可以是相對于它的正常位置、相對于最近的已定位祖先元素、相對于視口或絕對位置。

          .element {
            position: static | relative | absolute | fixed | sticky;
          }
          

          使用場景

          • 相對定位(Relative Positioning):元素相對于其正常位置進行偏移。
          .relative-element {
            position: relative;
            top: 10px;
            left: 20px;
          }
          
          • 絕對定位(Absolute Positioning):元素相對于最近的已定位父元素進行定位。
          .absolute-element {
            position: absolute;
            top: 0;
            right: 0;
          }
          
          • 固定定位(Fixed Positioning):元素相對于視口進行定位,即使頁面滾動也不會移動。
          .fixed-element {
            position: fixed;
            bottom: 0;
            left: 0;
          }
          
          • 粘性定位(Sticky Positioning):元素基于用戶的滾動位置在相對和固定定位之間切換。
          .sticky-element {
            position: sticky;
            top: 10px;
          }
          

          注意事項

          • 定位元素可能會脫離文檔流,影響周圍元素的布局。
          • z-index屬性可以控制堆疊順序。
          • 絕對定位元素的容器應有position: relative;,以便正確定位。

          顯示(Display)

          display屬性是CSS中最重要的用于控制布局的屬性之一,它定義了元素如何顯示在頁面上。

          .element {
            display: block | inline | inline-block | flex | grid | none;
          }
          

          使用場景

          • 塊級元素(Block):display: block;使元素表現為塊級,占據新的行。
          .block-element {
            display: block;
          }
          
          • 內聯元素(Inline):display: inline;使元素在文本行中顯示,不開始新行。
          .inline-element {
            display: inline;
          }
          
          • 內聯塊元素(Inline-Block):display: inline-block;允許元素并排排列,同時擁有塊級元素的寬度和高度屬性。
          .inline-block-element {
            display: inline-block;
          }
          
          • 彈性盒子(Flex):display: flex;創建了一個彈性容器,其子元素可以靈活地在容器內排列。
          .flex-container {
            display: flex;
          }
          
          • 網格(Grid):display: grid;創建了一個網格容器,可以定義行和列以及在網格內放置元素。
          .grid-container {
            display: grid;
          }
          
          • 隱藏元素(None):display: none;將元素隱藏,且不為元素保留空間。
          .hidden-element {
            display: none;
          }
          

          注意事項

          • 使用display: none;與visibility: hidden;的區別在于后者仍保留元素占據的空間。
          • display: flex;和display: grid;為現代布局提供了更多控制,通常比浮動和定位更優。

          示例

          HTML結構

          <!DOCTYPE html>
          <html lang="en">
          <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>CSS Float, Position, and Display Example</title>
          <link rel="stylesheet" href="styles.css">
          </head>
          <body>
          
          <div class="header">
            <div class="logo">Logo</div>
            <div class="navigation">Navigation</div>
          </div>
          
          <div class="main-content">
            <div class="sidebar">Sidebar</div>
            <div class="content">Content</div>
          </div>
          
          <div class="footer">Footer</div>
          
          <div class="fixed-element">Fixed Element</div>
          
          </body>
          </html>
          

          CSS樣式

          /* Reset some default styles */
          body, h1, p {
            margin: 0;
            padding: 0;
          }
          
          /* Header styles */
          .header {
            background-color: #f8f8f8;
            border-bottom: 1px solid #e7e7e7;
            padding: 10px;
            overflow: hidden; /* Clearfix for floated elements */
          }
          
          .logo {
            float: left;
            font-size: 24px;
          }
          
          .navigation {
            float: right;
            font-size: 18px;
          }
          
          /* Main content styles */
          .main-content {
            padding: 20px;
          }
          
          .sidebar {
            float: left;
            width: 200px;
            background-color: #ddd;
            padding: 10px;
          }
          
          .content {
            margin-left: 220px; /* Make space for the sidebar */
            background-color: #eee;
            padding: 10px;
          }
          
          /* Footer styles */
          .footer {
            background-color: #f8f8f8;
            border-top: 1px solid #e7e7e7;
            text-align: center;
            padding: 10px;
            position: relative; /* For demonstration purposes */
            top: 20px; /* Move the footer down a bit */
          }
          
          /* Fixed element styles */
          .fixed-element {
            position: fixed;
            bottom: 10px;
            right: 10px;
            padding: 5px 10px;
            background-color: #333;
            color: #fff;
            z-index: 1000; /* Ensure it stays on top */
          }
          
          /* Clearfix hack */
          .clearfix::after {
            content: "";
            clear: both;
            display: table;
          }
          

          在這個例子中,我們創建了一個包含頭部、側邊欄、主要內容和頁腳的基本布局。我們使用浮動來對齊頭部的Logo和導航,以及創建一個側邊欄。我們還使用了相對定位來稍微下移頁腳,并使用固定定位為頁面添加了一個始終可見的固定元素。最后,我們使用了overflow: hidden;來清除頭部中浮動元素的影響。

          結語

          浮動、定位和顯示屬性是CSS中構建復雜布局的強大工具。通過深入理解和正確應用這些屬性,前端工程師可以創建出既美觀又功能強大的網頁。隨著Web標準的不斷發展,我們也需要不斷學習和適應新的CSS特性,以保持我們技能的前沿性。

          么是 CSS Float(浮動)?

          CSS 的 Float(浮動),會使元素向左或向右移動,其周圍的元素也會重新排列。

          Float(浮動),往往是用于圖像,但它在布局時一樣非常有用。


          元素怎樣浮動

          元素的水平方向浮動,意味著元素只能左右移動而不能上下移動。

          一個浮動元素會盡量向左或向右移動,直到它的外邊緣碰到包含框或另一個浮動框的邊框為止。

          浮動元素之后的元素將圍繞它。

          浮動元素之前的元素將不會受到影響。

          如果圖像是右浮動,下面的文本流將環繞在它左邊:

          實例

          img

          {

          float:right;

          }


          彼此相鄰的浮動元素

          如果你把幾個浮動的元素放到一起,如果有空間的話,它們將彼此相鄰。

          在這里,我們對圖片廊使用 float 屬性:

          實例

          .thumbnail

          {

          float:left;

          width:110px;

          height:90px;

          margin:5px;

          }


          清除浮動 - 使用 clear

          元素浮動之后,周圍的元素會重新排列,為了避免這種情況,使用 clear 屬性。

          clear 屬性指定元素兩側不能出現浮動元素。

          使用 clear 屬性往文本中添加圖片廊:

          實例

          .text_line

          {

          clear:both;

          }

          嘗試一下 ?

          更多實例

          為圖像添加邊框和邊距并浮動到段落的左側

          讓我們為圖像添加邊框和邊距并浮動到段落的左側

          標題和圖片向右側浮動

          讓標題和圖片向右側浮動。

          讓段落的第一個字母浮動到左側

          改變樣式,讓段落的第一個字母浮動到左側。

          創建一個沒有表格的網頁

          使用 float 創建一個網頁頁眉、頁腳、左邊的內容和主要內容。


          CSS 中所有的浮動屬性

          "CSS" 列中的數字表示不同的 CSS 版本(CSS1 或 CSS2)定義了該屬性。

          屬性描述CSS
          clear指定不允許元素周圍有浮動元素。leftrightbothnoneinherit1
          float指定一個盒子(元素)是否可以浮動。leftrightnoneinherit1

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


          主站蜘蛛池模板: 亚洲国产一区二区三区| 成人区人妻精品一区二区不卡视频| 久久久久人妻一区精品色| 精品一区二区三区免费毛片爱| 精品深夜AV无码一区二区| 久久精品国产AV一区二区三区| 精品人伦一区二区三区潘金莲| 熟女精品视频一区二区三区| 亚洲国产欧美一区二区三区| 国产精品一区二区久久乐下载| 日本精品一区二区久久久| 小泽玛丽无码视频一区| 国产精品va无码一区二区| 中文字幕精品一区二区| 亚洲国产精品一区二区第四页| 狠狠综合久久AV一区二区三区| 秋霞无码一区二区| 日本免费一区二区三区最新 | 亚洲美女视频一区| 国产嫖妓一区二区三区无码| 免费av一区二区三区| 精品国产免费观看一区| 无码国产精品一区二区免费式芒果| 大帝AV在线一区二区三区| 天堂国产一区二区三区| 精品久久久久中文字幕一区| 毛片一区二区三区无码| 亚洲无删减国产精品一区| 内射女校花一区二区三区| 波多野结衣在线观看一区| 国产午夜精品一区二区三区极品| 国产AV午夜精品一区二区三区| 无码日韩精品一区二区人妻| 精品久久久久久无码中文字幕一区| 无码av免费一区二区三区试看 | 国产美女露脸口爆吞精一区二区| 亚洲熟女乱综合一区二区| 无码少妇一区二区三区芒果| 一区二区不卡在线| 福利一区二区三区视频在线观看| 亚洲日本中文字幕一区二区三区 |