高級佈局

来源:https://www.cnblogs.com/louyefeng/archive/2018/09/26/9709835.html
-Advertisement-
Play Games

一.文檔流 1.概念 2.BFC(Block formatting context) 3.BFC規則 內部的Box會在垂直方向,一個接一個地放置。 Box自身垂直方向的位置由margin top決定,屬於同一個BFC的兩個相鄰Box的margin會發生重疊。 Box自身水平方向的位置由margin左 ...


一.文檔流

1.概念

normal flow(普通流,常規流)將窗體自上而下分成一行一行,塊級元素從上至下、行內元素在每行中從左至右的順序依次排放元素。一個連續具有邏輯上下的頁面整體,出現在頁面中的顯示內容,均可以理解為文檔流中。

2.BFC(Block formatting context)

塊級格式化上下文,它是一個獨立的渲染區域,只有Block-level box參與,它規定了內部的Block-level Box如何佈局,並且與這個區域外部毫不相干。

3.BFC規則

  • 內部的Box會在垂直方向,一個接一個地放置。
  • Box自身垂直方向的位置由margin-top決定,屬於同一個BFC的兩個相鄰Box的margin會發生重疊。
  • Box自身水平方向的位置由margin左或右決定(具體已經參照BFC方位),屬於同一個BFC的兩個相鄰Box的margin會發生疊加。

二.浮動佈局

1.概念

通過讓元素浮動,可以使元素在水平上左右移動,再通過margin屬性調整位置,就是使當前元素脫離文檔流,相當於浮動起來一樣,浮動的框可以左右移動,直至它的外邊緣遇到包含框或另一個浮動框的邊緣。

2.基本語法

float:left | right

3.浮動的印象

  • 對附近的元素佈局造成改變,使得佈局混亂。
  • 因為i浮動元素脫離了文檔流,會出現一種高度坍塌的現象:原來的父容器高度是當前元素撐開的,但是當該元素浮動後,脫離文檔流浮動起來,那父容器的高度就會坍塌(前提是父容器高度小於該浮動元素)

4.清浮動

目的:對父級所在容器中的Block-level Box佈局不產生影響
原理:再浮動佈局情況下,讓父級獲得合適的高度
1.浮動的父級設置高度
sup{
    height:npx;
}
2.浮動的父級設置overflow
sup{
    overflow:hidden;
}
3.浮動的父級兄弟設置clear
brother{
    clear: left | right | both;
}
4.浮動的父級偽類清浮動
sup:after{
    content:"";
    display:block;
    clear:both;
}

三.流式佈局

1.概念

流式佈局是頁面元素的寬度按照解析度進行適配調整,但整體佈局不變.就是佈局脫離固定值限制,可以根據頁面情況改變相應發生改變。

2.流式佈局相關操作

1.百分比設置 %
    如:width: 90%;
2.視窗比設置 vw|vh
    如:width: 90vw;
3.字體控制 em|rem
    em為相對大小,大小為最近設置字體大小的父級規定的字體大小
    rem為html字體大小

四.定位佈局

1.概念

定位佈局的目的:讓目標標簽在指定參考系下任意佈局

2.基本語法

position:static | relative | absolute | fixed
  • static:靜態定位,預設定位.
  • relative:相對定位,未脫離文檔流,以自身原有位置作為參考坐標系.
  • absolute:絕對定位,完全脫離文檔流,以最近定位父級作為參考坐標系.
  • fixed:固定定位,完全脫離文檔流,以文檔視窗作為參考坐標系.

定位開啟後,四個定位方位便會開啟,且四個方位均參與佈局,如果發生衝突,左右取左,上下取上


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

-Advertisement-
Play Games
更多相關文章
  • app.post('/upload', function(req, res){ //接收前臺POST過來的base64 var imgData = req.body.imgData; //過濾data:URL var base64Data = imgData.replace(/^data:image ...
  • 1、第一步,在本地資料庫中建一個與伺服器同名的資料庫 2、第二步,右鍵源資料庫,任務》導出數據,彈出導入導出提示框,點下一步繼續 3、遠程資料庫操作,確認伺服器名稱(伺服器地址)、身份驗證(輸入用戶名、密碼)、選擇需要導出的源資料庫,點下一步繼續 4、本地目標伺服器操作,確認伺服器名稱、輸入用戶名密 ...
  • 一.開啟慢查詢日誌,可以讓MySQL記錄下查詢超過指定時間的語句,通過定位分析性能的瓶頸,才能更好的優化資料庫系統的性能。 二、慢日誌參數: slow_query_log 慢查詢開啟狀態slow_query_log_file 慢查詢日誌存放的位置(這個目錄需要MySQL的運行帳號的可寫許可權,一般設置 ...
  • 今天我遇到了一個需求,是將一個DBF文件導入到Oracle庫中,之前一直使用的是公司提供的遷移工具,但是不知道怎麼回事今天一直報DBF文件無法訪問之類的錯誤,嘗試多次之後,一氣之下棄之不用,另尋他法。 ODBC(Open Database Connectivity)是微軟提供的,專門為解決異構資料庫 ...
  • 最近在使用snapkit過程中遇到一個問題,在github上搜索之後發現另外一個有趣的問題 問題鏈接 看起來很理所當然的,明顯不可以這樣寫,但是具體是什麼原因呢,明明沒有報任何錯誤和警告,但是.multipliedBy()方法卻沒有效果,那我們來看一下snapkit源碼。 1.首先點進equalTo ...
  • 在Android Studio項目中引用第三方jar包的方法: 步驟: 1、在build.gradle文件中添加如下代碼: 備註:要添加在Android作用域下 點擊【Sync Now】,會生成jniLibs文件夾 找到jniLibs文件夾對應的實體目錄,把需要用到的jar包放到該目錄下 在buil ...
  • 在上一章我們提到了一個新的概念,叫做塊級樣式,講到這裡就要科普一下: 標簽又分為兩種: (1)塊級標簽 元素特征:會獨占一行,無論內容多少,可以設置寬高··· (2)內斂標簽(又叫做行內標簽) 元素特征:根據內容的多少占用空間大小,它的上下margin不起作用 (塊級:P h1- h6 div ul ...
  • 1 事件冒泡 子元素觸發的事件,會往上(父元素)傳遞; 例子: 冒泡事件是預設事件,但有些情況,冒泡事件是一種麻煩的事情。如: 這時候需要把預設事件去掉 cancelBubble = false 或者 stopPropagation(); 2 onmouseenter/onmouseleave 和o ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...