整合營銷服務商

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

          免費咨詢熱線:

          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特性,以保持我們技能的前沿性。

          天學會html+css,第九天固定定位。

          Redmi手機電視筆記本。

          今天的學習目標是右側懸浮工具欄用固定定位實現,它是相對于瀏覽器窗口的定位方式。

          ·盒子里的內容用a標簽,一個圖片加一行文字,此時它的位置在最底部。

          ·然后給它寫上固定定位樣式,右側距離0,下面距離70像素,加上背景顏色,看下效果。

          ·開始給a標簽寫樣式,固定寬高,text-renderin默認下劃線去掉,里面內容居中,看下效果。

          ·圖片寫樣式之前也要加上這行代碼,然后讓它的尺寸變小一點,并且左右居中,看下效果。

          ·文字的顏色、大小也調整一下。

          ·最后給a標簽加上邊框、內邊距,讓里面內容往下挪一挪。

          到此,今天的學習完成。

          lt;div>塊元素基礎屬性講解

          <div>元素是個有故事的元素,這個元素很早就出現在html超文本標記語言中,它設計之初就是為了解決網頁頁面布局的需求。但是遺憾的是它出生后一直懷才不遇。

          在我還上初中的時候,智能手機還沒有出現,更沒有平板電腦等移動設備。上網是通過擺在桌子上的計算機來完成的。

          那時,大街小巷上有好多網吧。

          那時,馬云剛剛辭去工作準備創業。

          那時,發送郵件的操作都會出現在計算機課程中。

          那時,對頁面還沒有現在的跨平臺要求。

          那時,flashplayer大行其道。

          那時,dreamwaver、flash、fireworks被稱為網頁三劍客!

          那時,制作網頁可以不用懂的html的寫法!

          第一次接觸網頁制作是在大學的專業課上,使用三劍客,通過點擊軟件菜單中的按鈕就能制作網頁,精力都放在了如何使用flash制作酷炫的交互動畫上了。

          那時,對html還沒有深刻的認識,但是卻對<table></table>這個標簽有著極深的印象。

          因為當時的dreamwaver通過非代碼方式生成的頁面都是使用<table>表格元素進行布局的!

          也就是說,在移動智能設備誕生之前,在用戶對頁面還沒有可以適應不同屏幕比例的要求前,<table>這個本來用來做表格的元素同時兼職了<div>的頁面布局工作,而且把兼職干成了主業,讓<div>這個專業的塊元素閑置了好久。

          直到智能手機,平板電腦產生后,由于對頁面的跨平臺顯示的要求的出現(這類適應多平臺的頁面布局叫做響應式布局),<table>表格制作的頁面在響應式布局大行其道的今天,用它布局的頁面開始出現代碼冗余,維護困難等諸多問題。手機端的瀏覽器在播放視頻或其他交互動畫時也不再依賴flashplayer這個給我們帶來無數反感和惱火的插件。

          從此,頁面制作的世道變了,從不需要編程就能制作頁面的三劍客,變成了必須懂得相關代碼寫法才能使用的HTML+CSS+JavaScript了。dreamwaverCC版本也恢復了寫代碼做頁面的操作方式,過去的點擊加拖拽的制作方式也消失了。這讓很多不懂編程和HTML等頁面制作核心技術的從業人感到難受。

          dreamwaver的老東家Adobe后來也嘗試過推出新模式下通過界面操作來制作網頁的軟件,還搞出一個叫做Muse的軟件,但是依舊沒能撬動代碼書寫的方式。

          這個故事在開始學習<div>和css布局之前我都會講給學生(一群文科生)聽,我只是想告訴大家,學習任何計算機技術,我們可以從簡單易學的方式入手,但要有透過這種方式向下挖掘核心知識的決心和勇氣!對于自己從事的工作我們不能滿足于會做,還要盡量透析它的原理,這樣才能在技術換代中不會被輕易淘汰。

          在我研究生階段,有一門讓我終生難忘的選修課,這門課叫做《數字娛樂技術概述》,這門課既不娛樂也不概述,但是通篇都是數字,那位年輕的教授為我們透析了游戲、影視特效的核心----計算機圖形學。

          從此我開始學習數學。因為老師的一句話:從2000年到現在(2014)雖然各種軟件層出不窮,但是計算機圖形學的核心算法卻幾乎沒什么改變

          向下挖掘雖然很難,但是有必要!與各位共勉!

          下面開始今天的內容。

          首先,我們將之前的"第一個頁面.html"文件復制一個,叫做"塊元素學習.html"。然后把<body></body>中間的內容清空。

          如圖:

          下面,我們在<body></body>中間添加<div></div>標簽。示例代碼如下:

          <body><div></div></body>

          我們看看效果:

          啦啦啦,什么都沒有!

          為了讓大家可以看出來不同,我們為<div>添加邊框屬性!

          我們使用style屬性為<div>添加邊框,style屬性里的代碼就是以后在CSS中使用的代碼!實際上我們已經開始接觸CSS的一些內容了。具體寫法的講解大家可以看這個教程,這里不再贅述。

          示例代碼如下:(通過style = "border-style: solid;"可以為很多元素添加邊框,就不需要大家記憶或查詢不同元素的不同寫法,是不是很方便!)

          <div style = "border-style: solid;">

          效果如圖:

          因為里面沒有內容,所以<div>的寬度是0,因此顯示的就是一條直線。下面我們向<div>中添加內容。

          為了看起來花哨些,加張圖片吧!

          示例圖片

          示例代碼如下:

          <div style = "border-style: solid;"><img src = "img/示例圖片/image4.jpg"/ style = "width:50%;"></div>

          大家請按照<img>中的scr自行建立文件夾和命名吧!如果您看不懂請參照《HTML元素中的屬性2(路徑詳解)——零基礎自學網頁制作》

          效果如下:

          其中,我們也是使用了style的方式為<img>設置的寬度,這個設置方法在<div>中一樣使用!

          代碼示例:大家注意寫法,不同的屬性都添加到style的雙引號中即可,同時使用;隔開!

          <div style = "border-style: solid; width:50%;">
            <img src = "img/示例圖片/image4.jpg"/ style = "width:50%;">
              </div>

          效果如圖:

          整個邊框縮小了50%,圖片更有趣,尺寸變成了div的50%乘以自身的50%。這個特性大家要記住。

          為了方便觀看,我們去掉div的width設置。同時在<div>中繼續添加<div>標簽。為了方便顯示,我們在新的<div>中添加一段文字!

          示例代碼如下:

          <div style = "border-style: solid;">
            <img src = "img/示例圖片/image4.jpg"/ style = "width:50%;">
              <div>
              <p>學習網頁制作非常有趣!</p>
          </div>
          </div>

          效果如下:

          如果為了美觀,我們讓文字到圖片右邊的空間中怎么做呢?

          示例代碼如下:

          <div style = "float:right;"><p>學習網頁制作非常有趣!</p></div>

          我們通過為新的<div>標簽中的style屬性添加float(浮動)屬性,同時設置為right(右)。

          頁面效果如圖:

          大家思考一下如何讓圖片與文字都靠在左邊呢?

          是不是為圖片style添加float:left;同時把新<div>的float改為left?

          我們試試看!

          示例代碼如下:

          <div style = "border-style: solid;">
            <img src = "img/示例圖片/image4.jpg" style = "width:50%; float:left;"/>
              <div style = "float:left;">
                <p>學習網頁制作非常有趣!</p>
          </div>
          </div>

          頁面效果:

          效果完全不對,圖片和文字跑到外邊來了。

          這是div布局中經常出現的一個問題!解決方案有點奇葩,既不是修改<img>屬性也不是修改<div>屬性,而是增加一組空的<div></div>標簽!給這個新的空的<div>的style設置為"clear:both"即可修正。

          示例代碼如下:

          <div style = "border-style: solid;">
            <img src = "img/示例圖片/image4.jpg" style = "width:50%; float:left;"/>
              <div style = "float:left;">
                <p>學習網頁制作非常有趣!</p>
          </div>
          <div style = "clear:both;"></div>
          </div>

          頁面效果如下:

          值得注意的是,如果您不使用<div>的話直接使用<img>和<p>,同時對兩個標簽的style設置為float:left,是沒有問題的,只有把它們放到<div>中才會出現上面的情況。

          代碼如下:

          <body>
            <img src = "img/示例圖片/image4.jpg" style = "width:50%; float:left;"/>
              <p style = "float:left;">學習網頁制作非常有趣!</p>
          </body>

          頁面顯示效果如下:

          大家觀察一下,文字也變小了。至于為什么去掉<div>之后就不會出現上面那種出框的情況,而且文字也變小的問題在以后的講解中我們再深入探討!

          現在希望大家可以記牢這個情況和操作,更多布局問題我們會在CSS的浮動(float)的講解中詳細說明。

          疫情期間,請大家少出門,不聚會,沒事在家學學網頁制作,即抗擊疫情又提高自己!

          喜歡的小伙伴請關注我,閱讀中遇到任何問題請給我留言,如有疏漏或錯誤歡迎大家斧正,不勝感激!

          HTML完整學習目錄

          HTML序章(學習目的、對象、基本概念)——零基礎自學網頁制作

          HTML是什么?——零基礎自學網頁制作

          第一個HTML頁面如何寫?——零基礎自學網頁制作

          HTML頁面中head標簽有啥用?——零基礎自學網頁制作

          初識meta標簽與SEO——零基礎自學網頁制作

          HTML中的元素使用方法1——零基礎自學網頁制作

          HTML中的元素使用方法2——零基礎自學網頁制作

          HTML元素中的屬性1——零基礎自學網頁制作

          HTML元素中的屬性2(路徑詳解)——零基礎自學網頁制作

          使用HTML添加表格1(基本元素)——零基礎自學網頁制作

          使用HTML添加表格2(表格頭部與腳部)——零基礎自學網頁制作

          使用HTML添加表格3(間距與顏色)——零基礎自學網頁制作

          使用HTML添加表格4(行顏色與表格嵌套)——零基礎自學網頁制作

          16進制顏色表示與RGB色彩模型——零基礎自學網頁制作

          HTML中的塊級元素與內聯元素——零基礎自學網頁制作

          初識HTML中的<div>塊元素——零基礎自學網頁制作

          在HTML頁面中嵌入其他頁面的方法——零基礎自學網頁制作

          封閉在家學網頁制作!為頁面嵌入PDF文件——零基礎自學網頁制作

          HTML表單元素初識1——零基礎自學網頁制作

          HTML表單元素初識2——零基礎自學網頁制作

          HTML表單3(下拉列表、多行文字輸入)——零基礎自學網頁制作

          HTML表單4(form的action、method屬性)——零基礎自學網頁制作

          HTML列表制作講解——零基礎自學網頁制作

          為HTML頁面添加視頻、音頻的方法——零基礎自學網頁制作

          音視頻格式轉換神器與html視頻元素加字幕——零基礎自學網頁制作

          HTML中使用<a>標簽實現文本內鏈接——零基礎自學網頁制作


          主站蜘蛛池模板: 亚洲爆乳精品无码一区二区| 人成精品视频三区二区一区| 国产精品一区电影| 成人区精品一区二区不卡| 激情亚洲一区国产精品| 国内精品无码一区二区三区| 国产一区中文字幕| 国产精品无码一区二区三区不卡| 亚洲一区二区三区影院| 国产精品成人一区二区| 夜夜高潮夜夜爽夜夜爱爱一区| 久久久老熟女一区二区三区| 久久婷婷色一区二区三区| 国产av成人一区二区三区| 中文字幕一区精品| 日本一区午夜艳熟免费| 亚洲无线码一区二区三区| 丰满少妇内射一区| 国产精品免费一区二区三区四区| 久久无码精品一区二区三区 | 亚洲av乱码一区二区三区香蕉| 免费av一区二区三区| 国产爆乳无码一区二区麻豆| 久久se精品一区二区| 亚洲午夜精品一区二区| 91视频一区二区| 日本一区二区三区不卡视频| 日韩一区二区a片免费观看| 精品人妻少妇一区二区三区不卡 | 亚洲日韩AV一区二区三区四区| 精品无码人妻一区二区三区| 日韩中文字幕一区| 国产伦精品一区三区视频| 亚洲福利精品一区二区三区| 中文字幕精品亚洲无线码一区| 无码人妻AV免费一区二区三区| 亚洲一区二区三区在线观看蜜桃 | 人妻视频一区二区三区免费 | 一区高清大胆人体| 亚洲一区欧洲一区| 午夜精品一区二区三区在线观看|