前端知識庫Html5和CSS3

1、常見的水平垂直居中實現方案

最簡單的方案是flex布局

.container{display: flex;align-items: center;justify-content: center;
}

絕對定位配合margin:auto(一定要給.son寬高)

.father {position: relative;height: 300px;
}
.son {position: absolute;top: 0;right: 0;bottom: 0;left: 0;margin: auto;width: 50px;height: 50px;
}

絕對定位配合transform實現

.father {position: relative;
}
.son {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);
}

2、行內元素,塊級元素,空(void)元素(即沒有內容的HTML元素)

塊級元素: div、ul、li、dl、dt、dd、p、h1-h6、blockquote

行內元素: a、b、span、img、input、strong、select、label、em、button、textarea

空元素: br、meta、hr、link、input、img

3、BFC元素

我們在頁面布局的時候,經常出現以下情況:

  • 這個元素高度怎么沒了?
  • 這兩欄布局怎么沒法自適應?
  • 這兩個元素的間距怎么有點奇怪的樣子?
  • ......
原因是元素之間相互的影響,導致了意料之外的情況,這里就涉及到 BFC概念

BFC(Block Formatting Context)

即塊級格式化上下文,它是頁面中的一塊渲染區域,并且有一套屬于自己的渲染規則:

  • 內部的盒子會在垂直方向上一個接一個的放置
  • 對于同一個BFC的倆個相鄰的盒子的margin會發生重疊,與方向無關。
  • 每個元素的左外邊距與包含塊的左邊界相接觸(從左到右),即使浮動元素也是如此
  • BFC的區域不會與float的元素區域重疊
  • 計算BFC的高度時,浮動子元素也參與計算
  • BFC就是頁面上的一個隔離的獨立容器,容器里面的子元素不會影響到外面的元素,反之亦然

如何生成一個BFC元素呢

  • 根元素,即HTML元素
  • 浮動元素:float值為left、right
  • overflow值不為 visible,為 auto、scroll、hidden(常用)
  • display的值為inline-block、inltable-cell、table-caption、table、inline-table、flex、inline-flex、grid、inline-grid
  • position的值為absolute或fixed

常用于以下3個場景

  • 防止margin重疊(塌陷)
  • 自適應多欄布局
  • 清除內部浮動

防止margin重疊(塌陷)

正常情況下,如果沒有.container容器那么兩p間隔是100px,這就是margin重疊了,解決方案就是給其中一個p套上一個BFC(div加上overflow: hidden;),那么兩p間隔是200px了

<style>.container {overflow: hidden;// 新的BFC}p {color: #f55;background: #fcc;width: 200px;line-height: 100px;text-align:center;margin: 100px;}
</style>
<body><p>Haha</p ><div class="container"><p>Hehe</p ></div>
</body>

清除內部浮動

正常情況下,由于浮動元素的存在.par是不會有高度的,可以給他加上overflow: hidden;變為BFC,就會計算浮動元素的高度了

<style>.par {border: 5px solid #fcc;width: 300px;overflow: hidden;}.child {border: 5px solid #f66;width:100px;height: 100px;float: left;}
</style>
<body><div class="par"><div class="child"></div><div class="child"></div></div>
</body>

自適應多欄布局

正常情況下.aside會浮動并且壓在.main上,可以根據BFC的區域不會與浮動盒子重疊的特性,把.main變為BFC,這樣.main就實現了寬帶自適應了,并且實現左右兩欄布局了。

<style>body {width: 300px;position: relative;}.aside {width: 100px;height: 150px;float: left;background: #f66;}.main {height: 200px;background: #fcc;overflow: hidden;}
</style>
<body><div class="aside"></div><div class="main"></div>
</body>

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

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

相關文章

PID控制參數整定(調節方法)原理+圖示+MATLAB調試

PID控制參數整定&#xff08;調節方法&#xff09;原理圖示MATLAB調試 Chapter1 PID控制參數整定&#xff08;調節方法&#xff09;原理圖示MATLAB調試序一、P參數選取二、I的調節三、D的調節四、總結 Chapter2 PID參數調整&#xff0c;個人經驗&#xff08;配輸出曲線圖&#…

【51單片機系列】獨立按鍵介紹

本文是關于獨立按鍵的介紹及使用。首先介紹了按鍵&#xff0c;包括什么是按鍵及使用按鍵時如何實現軟件消抖。然后使用proteus仿真實現獨立按鍵控制LED指示燈的操作。 之前的LED、蜂鳴器、數碼管中IO口都是作為輸出使用&#xff0c;這里通過獨立按鍵實驗介紹IO口作為輸入的使用…

Edge 中的msedgewebview2總想聯網

目錄預覽 一、問題描述二、原因分析三、解決方案四、參考鏈接 一、問題描述 使用Edge瀏覽器的時候&#xff0c;右下角火絨總會彈出“msedgewebview2”想要聯網的彈窗&#xff0c;如下 點擊發起程序&#xff0c;找到路徑如下&#xff1a; C:\Program Files (x86)\Microsoft\…

zabbix 進階

zabbix的字段發現機制&#xff1a; zabbix客戶端主動和服務端聯系&#xff0c;將自己的地址和端口發送服務端實現字段添加監控主機。 客戶端是主動一方。 缺點&#xff1a;自定義網段中主機數量太多&#xff0c;登記耗時會很久&#xff0c;而且這個自動發現機制不是很穩定。…

centos6.8下載地址

Index of /centos-store/6.8/isos/x86_64/ (liu.se) archive.kernel.org : http - rsynclinuxsoft.cern.ch : http - rsyncmirror.nsc.liu : http - rsync

被遺忘的書籍

C-被遺忘的書籍_牛客小白月賽82 (nowcoder.com) #include <iostream> #include <queue> #include <string> #include <stack> #include <vector> #include <set> #include <map> #include <unordered_map> #include <unor…

計組中各種透明性總結

虛擬存儲器&#xff0c;對應用程序員不可見。主存- cache層由硬件自動完成&#xff0c;對程序員不可見。cache純硬件&#xff0c;程序員不可見。內存&#xff0c;對程序員可見。知識點來源&#xff1a;王道模擬第六套主存-輔存層由硬件和操作系統共同完成&#xff0c;對應用程序…

【Docker一】Docker架構、鏡像操作和容器操作

一、docker基本管理和概念 1、概念 docker&#xff1a;開源的應用容器引擎。基于go語言開發的。運行在Linux系統中的開源的輕量級的“虛擬機” docker的容器技術可用在一臺主機上輕松到達為任何應用創建一個輕量級到的&#xff0c;可移植的&#xff0c;自給自足的容器 dock…

免費的數據采集軟件,最新免費的幾款數據采集軟件【2024】

在當今數字化時代&#xff0c;數據是企業決策和業務發展的關鍵。而如何高效獲取數據成為許多企業和研究機構的關注焦點。本文將深入探討數據采集軟件的種類。幫助大家選擇最適合自己需求的數據采集工具。 數據采集軟件種類 在眾多數據采集軟件中&#xff0c;有一類強大而多樣…

postgresql自帶指令命令系列二

簡介 在安裝postgresql數據庫的時候會需要設置一個關于postgresql數據庫的PATH變量 export PATH/home/postgres/pg/bin:$PATH&#xff0c;該變量會指向postgresql安裝路徑下的bin目錄。這個安裝目錄和我們在進行編譯的時候./configure --prefix [指定安裝目錄] 中的prefix參…

跨境電商運營常用的ChatGPT通用提示詞模板

市場分析&#xff1a;如何分析目標市場&#xff1f; 選品策略&#xff1a;如何選擇要銷售的商品&#xff1f; 供應鏈管理&#xff1a;如何管理供應鏈&#xff1f; 物流解決方案&#xff1a;如何選擇合適的物流解決方案&#xff1f; 跨國支付&#xff1a;如何處理跨國支付&a…

labelimg遇到的標簽修改問題:修改一張圖像的標簽時,保存后導致classes.txt改變

問題描述&#xff1a;修改一張圖像的標簽時候&#xff0c; classes.txt 會同步更新&#xff0c;導致重新生成了 classes.txt 但是這個 classes.txt 只有你現在寫的那個類別名&#xff0c;以前的沒有了。 解決&#xff1a;設置一個 predefined_classes.txt&#xff0c;內容和模…

Metasploit滲透測試的漏洞利用和攻擊方法

預計更新 第一章 Metasploit的使用和配置 1.1 安裝和配置Metasploit 1.2 Metasploit的基礎命令和選項 1.3 高級選項和配置 第二章 滲透測試的漏洞利用和攻擊方法 1.1 滲透測試中常見的漏洞類型和利用方法 1.2 Metasploit的漏洞利用模塊和選項 1.3 模塊編寫和自定義 第三章 Me…

基于ssm理發店會員管理系統的設計和實現論文

摘 要 網絡技術和計算機技術發展至今&#xff0c;已經擁有了深厚的理論基礎&#xff0c;并在現實中進行了充分運用&#xff0c;尤其是基于計算機運行的軟件更是受到各界的關注。加上現在人們已經步入信息時代&#xff0c;所以對于信息的宣傳和管理就很關鍵。因此理發店會員信息…

Cache的基本概念和原理

目錄 一. Cache的工作原理二. 局部性原理三. 性能分析四. 待解決的問題 \quad 一. Cache的工作原理 \quad 存儲系統存在的問題 雖然雙端口RAM、多模塊存儲器提高存儲器的工作速度, 但是優化后的速度與CPU差距依然很大, 為了改善這個問題就出現了Cache, 來解決存儲器與CPU速度不…

創作活動(五十一)———編程中常見的技術難題有哪些?

#編程中常見的技術難題有哪些&#xff1f;# 編程世界里的三大謎題&#xff1a;bug、性能優化與跨平臺兼容性 每個職業都有其固有的挑戰和困難&#xff0c;對于程序員來說&#xff0c;這些困難往往來自于技術本身。編程&#xff0c;就像是一個充滿謎題的世界&#xff0c;而程序…

大屏適配方案二——vw和vh

按照設計稿的尺寸&#xff0c;將px按比例計算轉為vw和vh&#xff0c;轉換公式如下 假設設計稿尺寸為 1920*1080&#xff08;做之前一定問清楚 ui 設計稿的尺寸&#xff09;即&#xff1a; 網頁寬度1920px 網頁高度1080px我們都知道 網頁寬度100vw 網頁寬度100vh所以&#xff0…

ubuntu安裝docker及docker常用命令

docker里有三個部分 daemon 鏡像 和 容器 我們需要了解的概念 容器 鏡像 數據卷 文章目錄 docker命令docker鏡像相關命令docker容器相關命令數據卷ubuntu安裝docker docker命令 #啟動&#xff0c;停止&#xff0c;重啟docker systemctl start docker systemctl stop docker s…

SpringBoot的依賴管理和自動配置

與其明天開始&#xff0c;不如現在行動&#xff01; 文章目錄 1 依賴管理機制2 自動配置機制2.1 初步理解2.2 完整流程 &#x1f48e;總結 1 依賴管理機制 為什么導入starter-web后所有相關依賴都會導入進來&#xff1f; 開發什么場景&#xff0c;導入什么場景啟動器-spring-bo…

vscode調試pytorch分布式訓練

launch.json文件如下"cwd" "${fileDirname}"表示代碼調試的根目錄是當前你調試的文件&#xff0c;也就是pretrain.py所在的目錄。其他路徑參數都是相對這個目錄的 如果改成"cwd" "${workspaceFolder}" 表示代碼調試的根目錄是打開的工…