關於relative和absolute的總結

来源:http://www.cnblogs.com/ningyn0712/archive/2016/04/08/5367487.html
-Advertisement-
Play Games

遮罩彈窗的實現: <style> body{ height:100%; margin:0;} .shadow{ position:absolute; top:0; left:0; width:100%; height:100%; background:#000; opacity:0.5; filte ...


對於定位這個性質我原理上來說自己是明白的,但是在實踐的過程中,總會出現各種稀奇古怪的情況,加relative或是absolute就可以解決,但是遇到這些情況總是不明白為什麼!!!難道是腦容量太小的原因嗎!!!=_=!!
還是先記基礎知識好了,因為裡面還是有很多坑!!
相對定位:
    內聯元素加相對定位也不支持寬高!!
relative並不會使元素脫離正常文檔流!
以上兩點說明加上相對定位不影響元素本身的特性,內聯元素和塊元素依舊保持原來本身的特性!就是說原來是內聯加上relative以後還是內聯啦!
如果不設置偏移量,相對定位本身並沒有什麼卵用~

所以,相對定位要加偏移量,left/top/bottom/right是相對於該元素原來的位置設置偏移量的哦哦哦~

絕對定位:
    內聯元素變得支持寬高啦~如果沒有設置寬度,則內容撐開寬度!!(類似於float,內聯元素加上float以後也支持寬高滴!!)
    會使該元素完全脫離文檔流
如果有父級定位則是相對於父級發生偏移,沒有定位父級則是相對於body發生偏移!
    也是要搭配偏移量使用啦~

如果直接在body里添加文字和一個<div>標簽,
  1. 給<div>設置absolute定位,不設置偏移量,則<div>定位在緊接著文字的下麵
  2. 給<div>設置absolute,並且設置偏移量,則<div>是按偏移量相對於body定位
  3. 給<div>設置relative,不論是否設置偏移量,都是相對於自己的原來的位置定位。
遮罩彈窗的實現:
<style>
body{ height:100%; margin:0;}
.shadow{ position:absolute; top:0; left:0; width:100%; height:100%; background:#000; opacity:0.5; filter:alpha(opacity=50);}
.filter{ width:300px; height:200px; border:2px solid #000; background:yellow; position:absolute; top:50%; left:50%; margin-left:-152px; margin-top:-102px;}
</style>


<body>
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
contentcontentcontentcontentcontentcontentcontentcontentcontentcontent<br />
    <div class="shadow"></div>
    <div class="filter"></div>
</body>

這裡陰影部分是相對於body定位的!!!(body>html>文檔) 

如果這個彈窗只寫 position:absolute; top:50%; left:50%;則表示左上角那個點是居中的!!!所以這裡要設置margin-top,margin-left為整個元素高、寬的一半!

而且這裡要註意!!!這裡的寬高不是設置的width和height值,而是padding+border+width和padding+border+height的一半!!!!

設置透明度為:opacity:0~1;filter:alpha(opacity=0~100);但是呢,半透明對IE6不相容!打開是一片黑呀~~

這裡還有一個問題,對body要設置height:100%,不然在IE6下遮罩不會占據整個屏幕的~

 

這裡有個問題,為什麼給shadow設position:relative;以後就看不到整個半透明的遮罩啦???!!!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在前段時間呢陸陸續續的更新了一系列關於重構的文章。在重構我們既有的代碼時,往往會用到設計模式。在之前重構系列的博客中,我們在重構時用到了“工廠模式”、“策略模式”、“狀態模式”等。當然在重構時,有的地方沒有點明使用的是那種設計模式。從今天開始,我們就圍繞著設計模式這個主題來討論一下我們常用的設計模式 ...
  • 一、應用背景 隨著計算技術的進步,記憶體、CPU、磁碟等資源不再是稀缺的,電腦作為應用程式的載體從單伺服器轉變為多伺服器,集中計算演化為分散式計算。原有的“巨石”應用難以適應業務的發展速度,可擴展、自適應的能力不足,程式員面對著數以萬計的源代碼文件抓耳撓腮(O M G!),越來越多的工程師渴望小而美 ...
  • 在面向對象的概念中,抽象類和介面都是一種特殊的類,它們具有一些共性,也有一些區別。 二者的相同點: 都屬於引用類型的數據,是一種特殊的類; 都不能實例化; 都可以包含未實現的方法聲明和屬性聲明; 兩者的派生類都必須實現它們的聲明,派生類實現抽象類的抽象屬性和抽象方法,而介面則要實現它的所有成員 二者 ...
  • atitit.atiHtmlUi web組件化方案與規範v1 1. 如何在現有html 標簽基礎上定義自己的組件1 2. 組件的構成與定義1 3. 組件的載入1 4. 組件css的載入2 5. 操作組件getVal,SetVal2 6. 組件化的本質目的並不一定是要為了可復用,而是提升可維護性。 不 ...
  • Atitit.設計模式 觸發器模式 trigger 詳解 1. 觸發器概念1 1.1. 觸發器位置 after|before|instead of1 2. 資料庫裡面的觸發器1 2.1. old和:new1 2.2. INSTEAD OF 觸發器 after|before|instead of2 3 ...
  • 談談transactionId和out_trade_no 前一篇微信JSApi支付~坑和如何填坑文章反映不錯,所以又寫了個後篇,呵呵。 每個第三方線上支付系統中都會有至少兩類訂單號,其一為支付系統的訂單號,我們稱為transactionId,其二為商戶平臺的訂單號,我們通常稱為out_trade_n ...
  • 什麼是HTML? HTML 是用來描述網頁的一種語言。 HTML 指的是超文本標記語言: HyperText Markup Language HTML 不是一種編程語言,而是一種標記語言 標記語言是一套標記標簽 (markup tag) HTML 使用標記標簽來描述網頁 HTML 文檔包含了HTML ...
  • 之前給大家分了很多的線上工具和參考文檔,這裡又為大家搜集了前端開發必備的20個線上工具和指南。新的一周,你需要計劃學習新的東西或者能夠提升你的能力。相信你會在這個列表中發現對你很有用的資料。 您可能感興趣的相關文章 Web 前端開發人員和設計師必讀文章集錦 十個擁有豐富 UI 組件的 JavaScr ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...