css面試常考布局(圣杯布局、雙飛翼布局、三欄布局、兩欄布局、三角形)

兩欄布局

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><!-- flex實現 --><div style="display: flex;height:100%"><div style="background-color: red;width:100px;%">1</div><div style="background-color: blue;flex:1 0 0">2</div></div><!-- grid實現 --><div style="display: grid;width:100vw;grid-template-columns:200px auto"><div style="background-color: green;">1</div><div style="background-color: black;">2</div></div>f <!-- float實現 --><div><div style="float: left;background-color:chocolate;width:100px">1</div><!-- margin-left使得內容不會占據左側高度 --><div style="background-color: yellow;margin-left:100px">2</div></div>
</body>
</html>

三欄布局

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div style="display: flex;"><div style="background: red;width:100px">1</div><div style="flex:1;background: yellow;">2</div><div style="width:100px;background: blue;">3</div></div><div style="display: grid;grid-template-columns:100px 1fr 100px"><div style="background:green">1</div><div style="background:black">2</div><div style="background:red"> 3</div></div><div style="margin-top: 100px;"><div style="background:green;float:left;width:100px">1</div><div style="background:red;float:right;width:100px"> 3</div><!-- 中間一欄必須放到最后 --><!-- 如何放到中間,會導致float:right換行 --><div style="background:yellow;margin-left:100px;margin-right:100px">2</div></div>
</body></html>

圣杯布局

圣杯布局要求
  • header和footer各自占領屏幕所有寬度,高度固定。
  • 中間的container是一個三欄布局。三欄布局兩側寬度固定不變,中間部分自動填充整個區域。
  • 中間部分的高度是三欄中最高的區域的高度。
  • 中間部分最先渲染

因為中間部分最先渲染,就需要把中間部分寫在html中左右前面

左側的欄目偏移量等于 right偏移自身元素+margin-left:-100%(父元素的大小)

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>圣杯布局</title></head><body><style>#header {width: 100vw;background-color: red;}#middle {padding: 0 100px;overflow: hidden;}.column {float: left;}#center {background-color: pink;width: 100%;}#left {background-color: blue;margin-left: -100%;position: relative;width: 100px;right: 100px}#right {background-color: green;margin-right: -100px;width: 100px;}#footer {width: 100vw;background-color: yellow;}</style><div id="header">header</div><div id="middle"><div id="center" class="column">center</div><div id="left" class="column">left</div><div id="right" class="column">right</div></div><div id="footer">footer</div>
</body></html>

對于margin左右兩邊設置負責可以參考以下

可以看到,設置 margin-right 負值后,橙色方塊 自身不動,但其右邊的灰色方塊 向左偏移

#container{display: flex;
}#left{margin-right: -20px;
}

img

設置負值的現象
margin-left自身向左移動
margin-top自身向上移動
margin-right自身不動,其右邊元素向左移動
margin-bottom自身不動,其下方元素向上移動

雙飛翼布局

  • 中間的container是一個三欄布局。
  • 三欄布局兩側寬度固定不變,中間部分自動填充整個區域。
  • 中間部分的高度是三欄中最高的區域的高度。
  • 中間部分的背景包括左右兩邊
  • 中間部分的內容最先渲染

所以和三欄布局的最大不同就是中間部分要在最前面

大體實現和圣杯布局差不多,主要就是使用padding限制中間盒子的內容,圣杯布局使用margin限制和兩邊盒子的距離

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head><body><div><div style="background:blue;float: left;width:100%"><!-- div的content會被覆蓋掉 --><div style="padding: 0 100px;">main</div></div><!-- 整個元素偏移 --><div style="width:100px;float:left;background:red;margin-left:-100%">22222</div><div style="float: left;background:yellow;width:100px;margin-left:-100px">3</div></div>
</body></html>

css三角形

CSS繪制三角形主要用到的是border屬性,也就是邊框。

平時在給盒子設置邊框時,往往都設置很窄,就可能誤以為邊框是由矩形組成的。實際上,border屬性是右三角形組成的,下面看一個例子:

div {width: 0;height: 0;border: 100px solid;border-color: orange blue red green;
}

將元素的長寬都設置為0,顯示出來的效果是這樣的: img 所以可以根據border這個特性來繪制三角形:

div {    width: 0;  height: 0;   border-left: 50px solid red;  border-top: 50px solid transparent; //透明border-bottom: 50px solid transparent;//透明
}

在這里插入圖片描述

為什么需要 border-topborder-bottom

  • 形成三角形的斜邊
    • 當你設置了 border-left 為有顏色(比如紅色)的邊框時,它會成為三角形的一個直角邊
    • 通過設置 **透明的 border-top**border-bottom,這兩個透明的邊框會讓整個元素看起來像是一個“尖銳的頂端”,從而形成一個三角形的外觀。
  • 保持元素的比例
    • 如果只有 border-left 而沒有上下透明的邊框,元素本身不會有高度,只有邊框的顏色會顯示出來。沒有透明的上下邊框,紅色的左邊框會被壓縮或拉伸,無法形成一個完整的三角形形狀。

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

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

相關文章

模糊查詢在sqlserver、dm8、mysql的編寫示例

模糊查詢要求&#xff1a;字段值以 25D 開頭&#xff0c;并以 4 位數字結尾 sqlserver&#xff1a; select * from table_name where column_name like 25D[0-9][0-9][0-9][0-9] 說明&#xff1a; 25D&#xff1a;表示字符串以 25D 開頭。 [0-9][0-9][0-9][0-9]&#xf…

SCTNet模型詳解及代碼復現

模型背景 隨著深度學習技術的發展,語義分割領域取得了顯著進展。然而,在實際應用中,特別是在實時場景下,現有模型往往面臨計算復雜度高、難以平衡精度和速度等問題。為應對這些挑戰,研究人員提出了SCTNet模型,旨在解決實時語義分割問題,同時兼顧精度和效率。該模型融合…

Python的循環

Python的循環 Python的循環有兩種&#xff0c;分別是for…in循環和while循環。 for…in 循環 假設我們要循環輸出一個列表里的元素&#xff1a; names [張三,李四,王五] for name in names:print(name)執行這段代碼后&#xff0c;會依次打印names的每一個元素&#xff1a;…

【0387】Postgres內核 streaming replication(流復制)工作原理

1. Postgres 流復制 本文是關于設置 PostgreSQL 版本流復制的簡明指南,力求盡可能不受平臺限制。故而,其假定您擁有運用操作系統工具編輯文件及安裝/配置軟件包的扎實知識。并且,還假定您熟悉 PostgreSQL 的配置情況。 PostgreSQL 內置的流復制為您的數據庫構建了一個服務…

網絡攻擊行為可視化分析系統【數據分析 + 可視化】

一、系統背景 隨著信息技術的快速發展&#xff0c;網絡已成為現代社會不可或缺的一部分。然而&#xff0c;與此同時&#xff0c;網絡攻擊手段也日益多樣化和復雜化&#xff0c;給企業和個人的信息安全帶來了極大的威脅。傳統的網絡攻擊分析方法往往依賴于人工分析和處理大量的…

利用obs studio制作(人像+屏幕)錄制影像

1.什么是obs? OBS&#xff08;Open Broadcaster Software&#xff09;是一款功能強大的開源軟件&#xff0c;它使用戶能夠直接從電腦錄制視頻和直播內容到 Twitch&#xff0c;YouTube 和 Facebook Live 等平臺。它在需要直播或錄制屏幕活動的游戲玩家、YouTube 用戶和專業人士…

蠕蟲病毒會給服務器造成哪些危害?

蠕蟲病毒是一種獨立的惡意計算機程序&#xff0c;可以進行自我復制來傳播到其他的計算機系統當中&#xff0c;蠕蟲病毒和傳統病毒之間是有著區別的&#xff0c;蠕蟲病毒不需要宿主程序就能夠自行傳播&#xff0c;主要是利用各種操作系統漏洞進行攻擊的。 接下來小編就介紹一下蠕…

C# GDI+的DrawString無法繪制Tab鍵的現象

【啰嗦2句】 現在用C#的人很少了吧&#xff1f;GDI更少了吧&#xff1f;所以這個問題估計也冷門。沒關系&#xff0c;分享給特定需要的人也不錯。 【問題現象】 工作中開發了一個報告編輯器&#xff0c;實現圖文排版等功能&#xff0c;用著沒什么問題&#xff0c;直到有一天…

互斥信號量的等待與通知

目錄 等待互斥信號量 信號量未被占用 信號量被自己占用 信號量被高優先級任務占用 信號量被低優先級任務占用 釋放互斥信號量 未發生優先級繼承 發生優先級繼承 等待互斥信號量 信號量未被占用 標記為已經被占用鎖定計數1 信號量被自己占用 鎖定計數1 信號量被高優先級任務占用…

夯實前端基礎之HTML篇

知識點概覽 HTML部分 1. DOM和BOM有什么區別&#xff1f; DOM&#xff08;Document Object Model&#xff09; 當網頁被加載時&#xff0c;瀏覽器會創建頁面的對象文檔模型&#xff0c;HTML DOM 模型被結構化為對象樹 用途&#xff1a; 主要用于網頁內容的動態修改和交互&…

Qt資源文件以及文件加密

1、Qt資源文件 在Qt中&#xff0c;資源文件&#xff08;.qrc&#xff09;是一種方便的方式來管理應用程序中的多媒體文件&#xff0c;如圖像、圖標和其他資源。這些文件使用XML格式定義&#xff0c;并在編譯時嵌入到應用程序的二進制文件中。 創建資源文件的步驟如下&#xff…

深入詳解人工智能自然語言處理(NLP)之文本處理:分詞、詞性標注、命名實體識別

【自然語言處理】——深入詳解人工智能自然語言處理&#xff08;NLP&#xff09;之文本處理&#xff1a;分詞、詞性標注、命名實體識別 自然語言處理&#xff08;Natural Language Processing&#xff0c;簡稱NLP&#xff09;是人工智能的一個重要分支&#xff0c;涉及如何使計…

SD ComfyUI工作流 老照片修復上色

文章目錄 老照片修復上色SD模型Node節點工作流程開發與應用效果展示老照片修復上色 該工作流專門設計用于老照片的修復和上色,通過一系列高級的圖像處理技術,包括深度圖預處理、面部修復、上色和圖像放大等步驟,來恢復老照片的質量并增加色彩。首先,工作流加載老照片并進行…

后端技術選型 sa-token校驗學習 下 結合項目學習 前后端登錄

目錄 后端設置 Controller 層 Service 層 后端返回 Token 給前端 1. 用戶提交登錄請求 2. 后端驗證用戶身份 3. 返回 Token 4. 前端保存 Token 前端存儲 1. 前端向后端發起請求 2. 前端存儲一下 Token 3.管理用戶認證的 token 的 工具 4. 在 Service 層進行設置 H…

dtdug匯編指令練習

r 通用寄存器 m 代表內存 imm 代表立即數 r8 代表8位通用寄存器 m8 代表8位內存 imm8 代表8位立即數 mov指令練習 MOV 的語法: mov 目標操作數&#xff0c;源操作數 作用:拷貝源操作數到目標操作數 1、源操作數可以是立即數、通用寄存器、段寄存器、或者內存單元. 2、目標操作數…

vue3模板引用ref

1.訪問模板引用 要在組合式 API 中獲取引用&#xff0c;我們可以使用輔助函數 useTemplateRef() 只可以在組件掛載后才能訪問模板引用 <script setup> import { useTemplateRef, onMounted } from vue// 第一個參數必須與模板中的 ref 值匹配 const input useTempla…

如何用 SSH 訪問 QNX 虛擬機

QNX 虛擬機默認是開啟 SSH 服務的&#xff0c;如果要用 SSH 訪問 QNX 虛擬機&#xff0c;就需要知道虛擬機的 IP 地址&#xff0c;用戶和密碼。本文我們來看看如何獲取這些參數。 1. 啟動虛擬機 啟動過程很慢&#xff0c;請耐心等待。 2. 查看 IP 地址 等待 IDE 連接到虛擬機。…

【Java基礎】Java異常捕捉,throws/throw、finally、try、catch關鍵字的含義與運用

1. Java 異常處理&#xff1a; 異常是程序中的一些錯誤&#xff0c;但并不是所有的錯誤都是異常&#xff0c;并且錯誤有時候是可以避免的。 比如說&#xff0c;你的代碼少了一個分號&#xff0c;那么運行出來結果是提示是錯 java.lang.Error&#xff1b;如果你用System.out.p…

js 中堆、棧、隊列+宏任務+微任務+web workers

文章目錄 js 中堆、棧、隊列介紹js中 堆、棧、隊列的區別與應用拓展&#xff08;宏任務與微任務&#xff09;Web Workers js 中堆、棧、隊列介紹 棧&#xff08;Stack&#xff09; 概念&#xff1a; 棧是一種遵循后進先出&#xff08;LIFO - Last In First Out&#xff09;原則…

java面向對象編程特性概述

目錄 1. 類和對象 2. 封裝&#xff08;Encapsulation&#xff09; 3. 繼承&#xff08;Inheritance&#xff09; 4. 多態&#xff08;Polymorphism&#xff09; 5. 抽象&#xff08;Abstraction&#xff09; (1). 抽象類&#xff08;Abstract Class&#xff09; (2).接口…