CSS 美化頁面(五)

一、position屬性

屬性值??描述??應用場景?
static默認定位方式,元素遵循文檔流正常排列,top/right/bottom/left?屬性無效?。普通文檔流布局,默認布局,無需特殊定位。
relative相對定位,相對于元素原本位置進行偏移,但仍保留原空間?。微調元素位置,或作為子元素絕對定位的基準(父元素設為?relative)?。
absolute絕對定位,相對于最近的非?static?祖先元素定位,脫離文檔流?。創建浮動菜單、對話框,或重構頁面布局(需配合父級?relative?使用)?。
fixed固定定位,相對于視口定位,不隨頁面滾動改變位置?。固定導航欄、回到頂部按鈕等需要始終可見的元素?。
sticky粘性定位,在特定滾動閾值前表現為?relative,超過后變為?fixed?。實現滾動時固定表頭、側邊導航欄等效果?。

二、定位的應用

1、static 默認定位

<!DOCTYPE html>
<html lang="zh-cn">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>默認定位示例</title><style>/* 父容器樣式 */.container {width: 300px;height: auto;background-color: #f0f8ff; /* 淺藍色背景 */border: 2px solid #ddd;margin: 20px auto;padding: 10px; /* 內邊距 */}/* 第一個盒子:默認定位 */.box1 {width: 100px;height: 100px;background-color: #4CAF50; /* 綠色背景 */margin-bottom: 10px; /* 下方間距 */}/* 第二個盒子:默認定位 */.box2 {width: 100px;height: 100px;background-color: #FF5722; /* 橙色背景 */margin-bottom: 10px; /* 下方間距 */}/* 第三個盒子:默認定位 */.box3 {width: 100px;height: 100px;background-color: #2196F3; /* 藍色背景 */}</style>
</head>
<body><div class="container"><div class="box1">默認定位1</div><div class="box2">默認定位2</div><div class="box3">默認定位3</div></div>
</body>
</html>

  1. 排列方式

    • 三個盒子按照正常的文檔流從上到下排列。
    • 每個盒子之間有一定的間距(通過?margin-bottom?設置)。
  2. 布局特點

    • 沒有使用任何定位屬性,盒子不會發生重疊,也不會偏移。

2、relative相對定位

<!DOCTYPE html>
<html lang="zh-cn">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>相對定位示例</title><style>/* 父容器樣式 */.container {position: relative; /* 父容器設置為相對定位 */width: 300px;height: auto;background-color: #f0f8ff; /* 淺藍色背景 */border: 2px solid #ddd;margin: 20px auto;padding: 10px; /* 內邊距 */}/* 第一個盒子:相對定位 */.box1 {position: relative;width: 100px;height: 100px;background-color: #4CAF50; /* 綠色背景 */top: 10px; /* 向下偏移 10px */left: 10px; /* 向右偏移 10px */}/* 第二個盒子:相對定位 */.box2 {position: relative;width: 100px;height: 100px;background-color: #FF5722; /* 橙色背景 */top: 20px; /* 向下偏移 20px */left: 20px; /* 向右偏移 20px */}/* 第三個盒子:相對定位 */.box3 {position: relative;width: 100px;height: 100px;background-color: #2196F3; /* 藍色背景 */top: 30px; /* 向下偏移 30px */left: 30px; /* 向右偏移 30px */}</style>
</head>
<body><div class="container"><div class="box1">相對定位1</div><div class="box2">相對定位2</div><div class="box3">相對定位3</div></div>
</body>
</html>
  1. 第一個盒子(綠色)

    ? ? 相對于自身默認位置向下偏移 10px,向右偏移 10px。
  2. 第二個盒子(橙色)

    ? ? 相對于自身默認位置向下偏移 20px,向右偏移 20px。
  3. 第三個盒子(藍色)

    ? ? 相對于自身默認位置向下偏移 30px,向右偏移 30px。

注意事項

  • 相對定位的特點

    • 元素仍然保留在文檔流中,偏移后不會影響其他元素的布局。
    • 偏移的效果僅影響元素的視覺位置。
  • 重疊問題

    • 如果偏移量較大,可能會導致元素之間發生重疊。

3、absolute絕對定位

<!DOCTYPE html>
<html lang="zh-cn">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>絕對定位示例</title><style>/* 父容器樣式 */.container {position: relative; /* 父容器設置為相對定位,作為子元素的定位參考點 */width: 300px;height: 300px;background-color: #f0f8ff; /* 淺藍色背景 */border: 2px solid #ddd;margin: 20px auto;}/* 第一個盒子:絕對定位 */.box1 {position: absolute;width: 100px;height: 100px;background-color: #4CAF50; /* 綠色背景 */top: 10px; /* 距離父容器頂部 10px */left: 10px; /* 距離父容器左側 10px */}/* 第二個盒子:絕對定位 */.box2 {position: absolute;width: 100px;height: 100px;background-color: #FF5722; /* 橙色背景 */top: 50px; /* 距離父容器頂部 50px */right: 10px; /* 距離父容器右側 10px */}/* 第三個盒子:絕對定位 */.box3 {position: absolute;width: 100px;height: 100px;background-color: #2196F3; /* 藍色背景 */bottom: 10px; /* 距離父容器底部 10px */left: 50px; /* 距離父容器左側 50px */}</style>
</head>
<body><div class="container"><div class="box1">絕對定位1</div><div class="box2">絕對定位2</div><div class="box3">絕對定位3</div></div>
</body>
</html>
  1. 第一個盒子(綠色)

    ? ? ?位于父容器的左上角,距離頂部 10px,左側 10px。
  2. 第二個盒子(橙色)

    ? ? ?位于父容器的右上角,距離頂部 50px,右側 10px。
  3. 第三個盒子(藍色)

    ? ? ?位于父容器的左下角,距離底部 10px,左側 50px。

注意事項

  1. 定位參考點

    • 絕對定位的元素會相對于最近的定位祖先(position: relativeabsolute?或?fixed?的父級元素)進行定位。
    • 如果沒有定位祖先,則相對于?html(視口)進行定位。
  2. 脫離文檔流

    絕對定位的元素不會占據文檔流中的空間,因此可能會與其他元素重疊。
  3. 靈活布局

    絕對定位適合用于彈窗、工具提示、精確布局等場景。

4、fix固定定位

<!DOCTYPE html>
<html lang="zh-cn">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>固定定位示例</title><style>/* 父容器樣式 */.container {width: 300px;height: 300px;background-color: #f0f8ff; /* 淺藍色背景 */border: 2px solid #ddd;margin: 20px auto;text-align: center;}/* 第一個盒子:固定定位 */.box1 {position: fixed;width: 100px;height: 100px;background-color: #4CAF50; /* 綠色背景 */top: 10px; /* 距離視口頂部 10px */left: 10px; /* 距離視口左側 10px */}/* 第二個盒子:固定定位 */.box2 {position: fixed;width: 100px;height: 100px;background-color: #FF5722; /* 橙色背景 */top: 10px; /* 距離視口頂部 10px */right: 10px; /* 距離視口右側 10px */}/* 第三個盒子:固定定位 */.box3 {position: fixed;width: 100px;height: 100px;background-color: #2196F3; /* 藍色背景 */bottom: 10px; /* 距離視口底部 10px */left: 10px; /* 距離視口左側 10px */}</style>
</head>
<body><div class="container"><p>滾動頁面,觀察固定定位效果。</p></div><div class="box1">固定定位</div><div class="box2">固定定位</div><div class="box3">固定定位</div>
</body>
</html>
  1. 第一個盒子(綠色)

    ????固定在視口的左上角,距離頂部 10px,左側 10px。
  2. 第二個盒子(橙色)

    ? ? ?固定在視口的右上角,距離頂部 10px,右側 10px。
  3. 第三個盒子(藍色)

    ? ? ? 固定在視口的左下角,距離底部 10px,左側 10px。

?

注意事項

  1. 固定定位的特點

    • 元素相對于視口定位,不受父容器的影響。
    • 頁面滾動時,固定定位的元素始終保持在指定位置。
  2. 適用場景

    • 固定導航欄。
    • 返回頂部按鈕。
    • 固定廣告或提示框。
  3. 重疊問題

    • 如果多個固定定位的元素位置重疊,可以通過?z-index?屬性控制它們的層級。

5、sticky粘性定位

<!DOCTYPE html>
<html lang="zh-cn">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>粘性定位示例</title><style>/* 父容器樣式 */.container {width: 300px;height: auto;background-color: #f0f8ff; /* 淺藍色背景 */border: 2px solid #ddd;margin: 20px auto;padding: 10px; /* 內邊距 */}/* 通用盒子樣式 */.box {width: 100%;height: 100px;background-color: #4CAF50; /* 默認綠色背景 */margin-bottom: 20px; /* 下方間距 */text-align: center;line-height: 100px; /* 垂直居中 */color: #fff;font-size: 16px;}/* 第一個盒子:粘性定位 */.box1 {position: sticky;top: 0; /* 滾動到視口頂部時固定 */background-color: #4CAF50; /* 綠色背景 */}/* 第二個盒子:粘性定位 */.box2 {position: sticky;top: 50px; /* 滾動到距離視口頂部 50px 時固定 */background-color: #FF5722; /* 橙色背景 */}/* 第三個盒子:粘性定位 */.box3 {position: sticky;top: 100px; /* 滾動到距離視口頂部 100px 時固定 */background-color: #2196F3; /* 藍色背景 */}</style>
</head>
<body><div class="container"><div class="box box1">粘性定位 - Box 1</div><div class="box box2">粘性定位 - Box 2</div><div class="box box3">粘性定位 - Box 3</div><p>滾動頁面,觀察粘性定位效果。</p><p style="height: 1000px;">這是一個長內容區域,用于測試粘性定位。</p></div>
</body>
</html>
  1. 第一個盒子(綠色)

    ? ? 滾動到視口頂部時固定,直到父容器的內容滾動結束。
  2. 第二個盒子(橙色)

    ? ? 滾動到距離視口頂部 50px 時固定,直到父容器的內容滾動結束。
  3. 第三個盒子(藍色)

    ? ? ?滾動到距離視口頂部 100px 時固定,直到父容器的內容滾動結束。

注意事項

  1. 粘性定位的特點

    • position: sticky;?是相對定位和固定定位的結合。
    • 元素在滾動到指定位置時變為固定定位,但超出父容器范圍后恢復正常流。
  2. 父容器的限制

    • 粘性定位的元素必須在一個有滾動內容的父容器中才能生效。
    • 如果父容器沒有足夠的高度,粘性定位可能無法觸發。
  3. 瀏覽器支持

    • position: sticky;?在現代瀏覽器中支持良好,但在舊版 IE 中不支持。

三、綜合應用

?1、數字定位在圖片上

<!DOCTYPE html>
<html lang="zh-cn">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>數字定位在圖片底部</title><style>/* 容器樣式 */.image-container {position: relative; /* 設置父容器為相對定位 */width: 600px;height: 300px;margin: 20px auto;border:5px solid #69b8ec; /* 邊框 */}/* 圖片樣式 */.image-container img {width: 100%;height: 100%;display: block;}/* 數字容器樣式 */.number-container {position: absolute; /* 絕對定位 */bottom: 10px; /* 距離圖片底部 10px */left: 50%; /* 水平居中 */transform: translateX(-50%); /* 水平居中對齊 */display: flex; /* 使用 flexbox 布局 */gap: 10px; /* 數字之間的間距 */}/* 數字樣式 */.number {color: #fff; /* 白色字體 */font-size: 18px; /* 字體大小 */font-weight: bold; /* 加粗字體 */background-color: rgba(0, 0, 0, 0.5); /* 半透明黑色背景 */border-radius: 50%; /* 圓形背景 */width: 30px;height: 30px;line-height: 30px; /* 垂直居中 */text-align: center; /* 水平居中 */text-decoration: none; /* 去掉超鏈接下劃線 */}/* 數字懸停效果 */.number:hover {background-color: rgba(209, 231, 166, 0.8); /* 背景變為白色 */color: #000; /* 字體變為黑色 */}</style>
</head>
<body><div class="image-container"><img src="https://imgs.699pic.com/images/500/363/911.jpg!seo.v1" alt="圖片"><div class="number-container"><a href="#link1" class="number">1</a><a href="#link2" class="number">2</a><a href="#link3" class="number">3</a><a href="#link4" class="number">4</a><a href="#link5" class="number">5</a></div></div>
</body>
</html>

?

2、窗口兩側固定廣告

<!DOCTYPE html>
<html lang="zh-cn">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>窗口兩側固定廣告</title><style>/* 左側廣告樣式 */.ad-left {position: fixed; /* 固定定位 */top: 50%; /* 垂直居中 */left: 0; /* 靠左 */transform: translateY(-50%); /* 垂直居中對齊 */width: 120px; /* 廣告寬度 */height: 300px; /* 廣告高度 */background-color: #4CAF50; /* 綠色背景 */color: #fff; /* 白色文字 */text-align: center; /* 水平居中 */line-height: 300px; /* 垂直居中 */font-size: 16px; /* 字體大小 */box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.3); /* 陰影效果 */}/* 右側廣告樣式 */.ad-right {position: fixed; /* 固定定位 */top: 50%; /* 垂直居中 */right: 0; /* 靠右 */transform: translateY(-50%); /* 垂直居中對齊 */width: 120px; /* 廣告寬度 */height: 300px; /* 廣告高度 */background-color: #FF5722; /* 橙色背景 */color: #fff; /* 白色文字 */text-align: center; /* 水平居中 */line-height: 300px; /* 垂直居中 */font-size: 16px; /* 字體大小 */box-shadow: -2px 2px 5px rgba(0, 0, 0, 0.3); /* 陰影效果 */}/* 頁面內容樣式 */.content {width: 80%;margin: 50px auto;font-size: 18px;line-height: 1.6;text-align: justify;}</style>
</head>
<body><!-- 左側廣告 --><div class="ad-left">左側廣告</div><!-- 右側廣告 --><div class="ad-right">右側廣告</div><!-- 頁面內容 --><div class="content"><h1>content內容</h1><p>這是一個頁面,展示如何在窗口的左右兩邊添加固定廣告。無論頁面如何滾動,廣告始終保持在視口的兩側。</p><p>通過使用 CSS 的固定定位(`position: fixed`),可以輕松實現這種效果。固定定位的元素相對于視口進行定位,不會隨頁面滾動而移動。</p><p>這種布局常用于廣告、導航欄或其他需要始終可見的元素。</p><p style="height: 2000px;">滾動頁面,觀察廣告始終固定在窗口兩側的效果。</p></div>
</body>
</html>

  1. 左側廣告始終固定在視口的左側,垂直居中。
  2. 右側廣告始終固定在視口的右側,垂直居中。
  3. 頁面滾動時,廣告不會移動,始終保持在窗口兩側。

四、總結

相對定位:一般情況下很少自己單獨使用,都是配合絕對定位使用,為絕對定位創造定位父級而又不設置偏移量?。

絕對定位:一般用在下拉菜單、焦點圖輪播、彈出數字氣泡、特別花邊等場景。

固定定位:一般在網頁中被用在窗口左右兩邊的固定廣告、返回頂部圖標、吸頂導航欄等

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76808.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76808.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76808.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring MVC 核心注解與文件上傳教程

一、RequestBody 注解詳解 1. 基本使用 作用&#xff1a;從 HTTP 請求體中獲取數據&#xff0c;適用于 POST/PUT 請求。 限制&#xff1a;GET 請求無請求體&#xff0c;不可使用該注解。 示例代碼 Controller RequestMapping("/demo01") public class Demo01Cont…

js原型鏈prototype解釋

function Person(){} var personnew Person() console.log(啊啊,Person instanceof Function);//true console.log(,Person.__proto__Function.prototype);//true console.log(,Person.prototype.__proto__ Object.prototype);//true console.log(,Function.prototype.__prot…

為您的照片提供本地 AI 視覺:使用 Llama Vision 和 ChromaDB 構建 AI 圖像標記器

有沒有花 20 分鐘瀏覽您的文件夾以找到心中的特定圖像或屏幕截圖&#xff1f;您并不孤單。 作為工作中的產品經理&#xff0c;我總是淹沒在競爭對手產品的屏幕截圖、UI 靈感以及白板會議或草圖的照片的海洋中。在我的個人生活中&#xff0c;我總是捕捉我在生活中遇到的事物&am…

Kafka消費者端重平衡流程

重平衡的完整流程需要消費者 端和協調者組件共同參與才能完成。我們先從消費者的視角來審視一下重平衡的流程。在消費者端&#xff0c;重平衡分為兩個步驟&#xff1a;分別是加入組和等待領導者消費者&#xff08;Leader Consumer&#xff09;分配方案。這兩個步驟分別對應兩類…

2025年五大ETL數據集成工具推薦

ETL工具作為打通數據孤島的核心引擎&#xff0c;直接影響著企業的決策效率與業務敏捷性。本文精選五款實戰型ETL解決方案&#xff0c;從零門檻的國產免費工具到國際大廠企業級平臺&#xff0c;助您找到最適合的數據集成利器。 一、谷云科技ETLCloud&#xff1a;國產數據集成工…

PageIndex:構建無需切塊向量化的 Agentic RAG

引言 你是否對長篇專業文檔的向量數據庫檢索準確性感到失望&#xff1f;傳統的基于向量的RAG系統依賴于語義相似性而非真正的相關性。但在檢索中&#xff0c;我們真正需要的是相關性——這需要推理能力。當處理需要領域專業知識和多步推理的專業文檔時&#xff0c;相似度搜索常…

ubuntu20.04 遠程桌面Xrdp方式

1&#xff0c;Ubuntu 安裝Xrdp 方法 1.1&#xff0c;安裝xrdp sudo apt install xrdp 1.2&#xff0c;檢查xrdp狀態 sudo systemctl status xrdp 1.3&#xff0c;加入ssl-cert sudo adduser xrdp ssl-cert 1.4&#xff0c;重啟xrdp服務 sudo systemctl restart xrdp 最后…

Java學習手冊:RESTful API 設計原則

一、RESTful API 概述 REST&#xff08;Representational State Transfer&#xff09;即表述性狀態轉移&#xff0c;是一種軟件架構風格&#xff0c;用于設計網絡應用程序。RESTful API 是符合 REST 原則的 Web API&#xff0c;通過使用 HTTP 協議和標準方法&#xff08;GET、…

Spring Boot 核心注解全解:@SpringBootApplication背后的三劍客

大家好呀&#xff01;&#x1f44b; 今天我們要聊一個超級重要的Spring Boot話題 - 那個神奇的主類注解SpringBootApplication&#xff01;很多小伙伴可能每天都在用Spring Boot開發項目&#xff0c;但你真的了解這個注解背后的秘密嗎&#xff1f;&#x1f914; 別擔心&#x…

weibo_har鴻蒙微博分享,單例二次封裝,鴻蒙微博,微博登錄

weibo_har鴻蒙微博分享&#xff0c;單例二次封裝&#xff0c;鴻蒙微博 HarmonyOS 5.0.3 Beta2 SDK&#xff0c;原樣包含OpenHarmony SDK Ohos_sdk_public 5.0.3.131 (API Version 15 Beta2) &#x1f3c6;簡介 zyl/weibo_har是微博封裝使用&#xff0c;支持原生core使用 &a…

tomcat集成redis實現共享session

中間件&#xff1a;Tomcat、Redis、Nginx jar包要和tomcat相匹配 jar包&#xff1a;commons-pool2-2.2.jar、jedis-2.5.2.jar、tomcat-redis-session-manage-tomcat7.jar 配置Tomcat /conf/context.xml <?xml version1.0 encodingutf-8?> <!--Licensed to the A…

JavaScript 擴展Array類方法實現數組求和

題目描述&#xff1a;使用原型對象擴展Array類&#xff0c;實現返回數字型數組的和 <script>const arr [1,2,3,4,5,6]Array.prototype.sum function(){return this.reduce((prev,item)>prev item,0)}console.log(arr.sum())</script>求和函數中this 指向調用…

中間件--ClickHouse-11--部署示例(Linux宿主機部署,Docker容器部署)

一、Linux宿主機部署 1、環境準備 操作系統&#xff1a;推薦使用 CentOS 7/8 或 Ubuntu 18.04/20.04。硬件要求&#xff1a; 至少 2 核 CPU 和 4GB 內存。足夠的磁盤空間&#xff08;根據數據量評估&#xff09;。CPU需支持SSE4.2指令集&#xff08;可通過以下命令檢查&#…

鴻蒙NEXT開發權限工具類(申請授權相關)(ArkTs)

import abilityAccessCtrl, { Permissions } from ohos.abilityAccessCtrl; import { bundleManager, common, PermissionRequestResult } from kit.AbilityKit; import { BusinessError } from ohos.base; import { ToastUtil } from ./ToastUtil;/*** 權限工具類&#xff08;…

LVGL學習(二)(lv_label,lv_btn)

3-1_標簽(lv_label) 一、標簽的組成&#xff08;盒子模型&#xff09;?? 標簽由三個核心模塊構成&#xff0c;類似便簽紙的??分層設計??&#xff1a; ??LV_PART_MAIN&#xff08;主體層&#xff09;?? ??功能??&#xff1a;相當于便簽紙的"紙面"&…

深度剖析神經網絡:從基礎原理到面試要點(二)

引言 在人工智能蓬勃發展的今天&#xff0c;神經網絡作為其核心技術之一&#xff0c;廣泛應用于圖像識別、自然語言處理、語音識別等眾多領域。深入理解神經網絡的數學模型和結構&#xff0c;對于掌握人工智能技術至關重要。本文將對神經網絡的關鍵知識點進行詳細解析&#xf…

【java+Mysql】學生信息管理系統

學生信息管理系統是一種用于管理學生信息的軟件系統&#xff0c;旨在提高學校管理效率和服務質量。本課程設計報告旨在介紹設計和實現學生信息管理系統的過程。報告首先分析了系統的需求&#xff0c;包括學生基本信息管理、成績管理等功能。接著介紹了系統的設計方案&#xff0…

Linux mmp文件映射補充(自用)

addr一般為NULL由OS指明&#xff0c;length所需長度&#xff08;4kb對齊&#xff09;&#xff0c;prot&#xff08;權限&#xff0c;一般O_RDWR以讀寫&#xff09;&#xff0c; flag&#xff08;MAP_SHARED(不刷新到磁盤上&#xff0c;此進程獨有)和MAP_PRIVATE&#xff08;刷新…

Nginx openresty web服務 與 Go 原生web服務性能對比

1 概述 Nginx采用的是IO復用模型&#xff0c;能處理超高并發。 Go語言采用協程&#xff0c;能輕量級的處理超高并發。 那么在不考慮業務邏輯復雜的前提下&#xff0c;即假如將Nginx和Go都提供一個/test接口&#xff0c;并在接口邏輯中都只是讓其做20毫秒的耗時操作&#xff0c…

[創業之路-377]:企業法務 - 有限責任公司與股份有限公司的優缺點對比

有限責任公司&#xff08;簡稱“有限公司”&#xff09;與股份有限公司&#xff08;簡稱“股份公司”&#xff09;是我國《公司法》規定的兩種主要公司形式&#xff0c;二者在設立條件、治理結構、股東權利義務等方面存在顯著差異。以下從核心特征、設立條件、治理結構、股東權…