CSS學習記錄12

CSS浮動

CSSfloat屬性規定元素如何浮動

CSSclear屬性規定哪些元素可以在清除的元素旁邊以及在哪一側浮動。

float屬性

float屬性用于定位和格式化內容,例如讓圖像向左浮動到容器的文本那里。

float屬性可以設置以下值之一:

  • left - 元素浮動到其容器的左側
  • right - 元素浮動在其容器的右側
  • none - 元素不會浮動(將顯示在文本中剛出現的位置)。默認值。
  • inherit - 元素繼承其父級的float值

最簡單的用法是,float屬性可實現(報紙上)文字包圍圖片的效果。

?舉例:下例指定圖像應在文本中向左浮動。

img {float: left;
}

?舉例:

float設置為none,圖像將顯示在文本剛出現的位置(float:none;)

img {float: none;
}

?CSS清除浮動

clear屬性指定哪些元素可以浮動于被清除元素的旁邊以及哪一側。

clear屬性可設置以下值之一:

  • none -? 允許兩側都有浮動元素。默認值
  • left - 左側不允許浮動元素
  • right - 右側不允許浮動元素
  • both - 左側或右側均不允許浮動元素
  • inherit - 元素繼承其父級的clear值

使用clear屬性的最常見用法是在元素上使用了float屬性之后。

在清除浮動時,應該對清除與浮動進行匹配:如果某個元素浮動到左側,則應清除左側。您的浮動元素會繼續浮動,但是被清除的元素將顯示在其下方。

div {clear: left;
}

?clearfix Hack

如果一個元素比包含它的元素高,并且它是浮動的,它將“溢出”到其容器之外:然后我們可以向包含元素添加overflow:auto; 來解決此問題:

.clearfix {overflow: auto;
}

?只要您能夠控制外邊距和內邊距(否則您可能會看到滾動條),overflow: auto 就會很好的工作。但是,新的現代clearfix hack技術使用起來更安全,以下代碼被應用于多數網站:

.clearfix::after {content: "";clear: both;display: table;
}

浮動實例

通過使用float屬性,可以輕松并排浮動內容框:

* {box-sizing: border-box;
}.box {float: left;width: 33.33%; /* 三個框(四框使用 25%,兩框使用 50%,以此類推) */padding: 50px; /* 如果需要在圖片間增加間距 */
}

?您可以輕松地并排創建三個浮動框,但是,當您添加一些內容來擴大每個框地寬度(例如,內邊距或邊框)時,這個框會損壞。box-sizing 屬性允許我們在框的總寬度(和高度)中包括內邊距和邊框,確保內邊距留在框內而不會破裂。

等高的框

上例我們學習了如果以相等的寬度并排浮動框。但是創建具有相同高度的浮動框并不容易。不過,快速解決方案是設置一個固定的高度。

.box {height: 500px;
}

但是,這么做就失去了彈性。如果可以保證框中始終具有相同數量的內容,那是可以的。但很多時候,內容是不一樣的。這時我們可以使用CSS Flexbox,?因為它可以自動拉伸框使其與最長的框一樣長:

.flex-container {display: flex;flex-wrap: nowrap;background-color: DodgerBlue;
}

所有CSS浮動屬性?

屬性描述
box-sizing定義元素的寬度和高度的計算方式:它們是否應包含內邊距和邊框。
clear指定哪些元素可以在被清除的元素旁邊以及在哪一側浮動。
float指定元素應如何浮動。
overflow指定如果內容溢出元素框會發生什么情況。
overflow-x指定當溢出元素的內容區域時,如何處理內容的左/右邊緣。
overflow-y指定當溢出元素的內容區域時,如何處理內容的上/下邊緣。

CSS display:inline-block

與display:inline 相比,主要區別在于 display:inline-block 允許在元素上設置寬度和高度。同樣,如果設置了display:inline-block, 將保留上下外邊距/內邊距,而 display:inline則不會。與display:block相比,主要區別在于display:inline-block在元素之后不添加換行符,因此該元素可以位于其他元素旁邊。

使用inline-block 來創建導航鏈接:

display 的一種常見用法:inline-block 用于水平而不是垂直地顯示列表項。

.nav {background-color: yellow; list-style-type: none;text-align: center; padding: 0;margin: 0;
}.nav li {display: inline-block;font-size: 20px;padding: 20px;
}

水平和垂直對齊

居中對齊元素?

?要使塊元素(例如<div>)水平居中,請使用margin: auto; 設置元素地寬度將防止其延伸到容器地邊緣。然后,元素將占用指定的寬度,剩余空間將在兩個外邊距之間平均分配:

center {margin: auto;width: 50%;border: 3px solid green;padding: 20px;
}

?注意:如果未設置width屬性(或將其設置為100%),則居中對齊無效。

居中對齊文本

如果僅需在元素內居中文本,請使用text-align:center;?

.center {text-align: center;border: 3px solid green;
}

居中對齊圖像?

如需居中圖像,請將左右外邊距設置為auto,并將其設置為塊元素:

img {display: block;margin-left: auto;margin-right: auto;width: 40%;
}

左和右對齊 - 使用position

對齊元素的一種方法是使用position: absolute;

.right {position: absolute;right: 0px;width: 300px;border: 3px solid #73AD21;padding: 20px;
}

注意:絕對定位的元素將從正常流中刪除,并可能出現元素重疊。

左和右對齊 - 使用float

對齊元素的另一種方法是使用float屬性:

.right {float: right;width: 300px;border: 3px solid #73AD21;padding: 10px;
}

垂直對齊 - 使用padding?

有很多方法可以在CSS中垂直對齊元素。一個簡單的解決方案是使用上下內邊距:

.center {padding: 70px 0;border: 3px solid green;
}

垂直對齊 - 使用line-height

另一個技巧是使用其值等于height屬性值的line-height 屬性:

.center {line-height: 200px;height: 200px;border: 3px solid green;text-align: center;
}/* 如果有多行文本,請添加如下代碼:*/
.center p {line-height: 1.5;display: inline-block;vertical-align: middle;
}

垂直對齊 - 使用position 和 transform

?如果您的選擇不是padding 和 line-height,則另一種解決方案是使用position 和 transform 屬性:

.center { height: 200px;position: relative;border: 3px solid green; 
}.center p {margin: 0;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);
}

垂直對齊- 使用Flexbox?

您還可以使用flexbox將內容居中。

.center {display: flex;justify-content: center;align-items: center;height: 200px;border: 3px solid green; 
}

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

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

相關文章

Chinese-Clip實現以文搜圖和以圖搜圖(transformers版)

本文不生產技術&#xff0c;只做技術的搬運工&#xff01; 前言 作者昨天使用cn_clip庫實現了一版&#xff0c;但是覺得大家復現配置環境可能有點復雜&#xff0c;因此有使用transformers庫實現了一版&#xff0c;提供大家選擇&#xff0c;第一篇參考鏈接如下&#xff1a; Ch…

【Unity3D】無限循環列表(擴展版)

基礎版&#xff1a;【Unity技術分享】UGUI之ScrollRect優化_ugui scrollrect 優化-CSDN博客 using UnityEngine; using UnityEngine.UI; using System.Collections.Generic;public delegate void OnBaseLoopListItemCallback(GameObject cell, int index); public class BaseLo…

MSSQL AlwaysOn 可用性組(Availability Group)中的所有副本均不健康排查步驟和解決方法

當遇到 MSSQL AlwaysOn 可用性組(Availability Group)中的所有副本均不健康的情況時(MSSQL AG 副本名稱: All replicas unhealthy),這通常意味著可用性組無法正常工作,數據同步和故障轉移功能可能受到影響。以下是一些可能的原因及相應的排查步驟和解決方法: 1. 檢查副本…

springboot檢測配置是否存在,如果存在則返回,不存在則提示新增

我這里是以七牛為例子 在yml中添加七牛的相關配置 qiniu: #七牛的相關配置accessKey: your_access_keysecretKey: your_secret_keybucket: your_bucket_namedomain: your_domain 對應在給配置文件來一個相應的實體類QiniuConfig Component ConfigurationProperties(prefix &…

[NOIP2016 普及組] 海港 -STL-隊列queue

[NOIP2016 普及組] 海港 題目背景 NOIP2016 普及組 T3 題目描述 小 K 是一個海港的海關工作人員&#xff0c;每天都有許多船只到達海港&#xff0c;船上通常有很多來自不同國家的乘客。 小 K 對這些到達海港的船只非常感興趣&#xff0c;他按照時間記錄下了到達海港的每一…

【Vulkan入門】16-IndexBuffer

TOC 先叨叨 上篇介紹了如何使用VertexBuffer傳入頂點信息。兩個多星期了我們一直在玩三個點&#xff0c;本篇介紹如何渲染更多的點。 在渲染前考慮一個問題&#xff0c;渲染一個三角形需要三個點&#xff0c;渲染兩個相接的三角形需要幾個點&#xff1f; 答案是6個點&#xf…

IDEA 打包普通JAVA項目為jar包

需求&#xff1a;普通java項目&#xff08;有添加依賴的jar包&#xff09;&#xff0c;沒有用maven管理依賴和打包&#xff0c;要打成jar包&#xff0c;包可以用“java -jar 包名” 啟動程序。 講如何打包前&#xff0c;先記錄下普通項目的目錄結構和怎么添加依賴包 1.目錄結…

python的流程控制語句之制作空氣質量評估系統

&#x1f468;?&#x1f4bb;個人主頁&#xff1a;開發者-曼億點 &#x1f468;?&#x1f4bb; hallo 歡迎 點贊&#x1f44d; 收藏? 留言&#x1f4dd; 加關注?! &#x1f468;?&#x1f4bb; 本文由 曼億點 原創 &#x1f468;?&#x1f4bb; 收錄于專欄&#xff1a…

Docker Compose 多應用部署 一鍵部署

介紹 Docker Compose通過一個單獨的docker-compose.yml模板文件(YAML格式)來定義一組相關聯的應用容器&#xff0c;幫助我們實現多個相互關聯的Docker容器的快速部署。 如&#xff1a;springbootmysqlnginx 如果一個個去部署他會非常的麻煩&#xff0c;這時候可以選擇Docker …

【數據結構——線性表】單鏈表的基本運算(頭歌實踐教學平臺習題)【合集】

目錄&#x1f60b; 任務描述 相關知識 測試說明 我的通關代碼: 測試結果&#xff1a; 任務描述 本關任務&#xff1a;編寫一個程序實現單鏈表的基本運算。 相關知識 為了完成本關任務&#xff0c;你需要掌握&#xff1a;初始化線性表、銷毀線性表、判定是否為空表、求線性…

git branch -r(--remotes )顯示你本地倉庫知道的所有 遠程分支 的列表

好的&#xff0c;git branch -r 這個命令用于列出遠程分支。讓我詳細解釋一下&#xff1a; 命令&#xff1a; git branch -rdgqdgqdeMac-mini ProductAuthentication % git branch -rorigin/main作用&#xff1a; 這個命令會顯示你本地倉庫知道的所有 遠程分支 的列表。它不…

【AI熱點】小型語言模型(SLM)的崛起:如何在AI時代中找到你的“左膀右臂”?

人工智能模型的演變 多年來&#xff0c;谷歌等科技巨頭和OpenAI等初創公司&#xff0c;一直在不遺余力地利用海量在線數據&#xff0c;打造更大、更昂貴的人工智能&#xff08;AI&#xff09;模型。這些大型語言模型&#xff08;LLM&#xff09;被廣泛應用于ChatGPT等聊天機器…

【昇騰】NPU ID:物理ID、邏輯ID、芯片映射關系

起因&#xff1a; https://www.hiascend.com/document/detail/zh/Atlas%20200I%20A2/23.0.0/re/npu/npusmi_013.html npu-smi info -l查詢所有NPU設備&#xff1a; [naienotebook-npu-bd130045-55bbffd786-lr6t8 DCNN]$ npu-smi info -lTotal Count : 1NPU…

Elasticsearch-DSL高級查詢操作

一、禁用元數據和過濾數據 1、禁用元數據_source GET product/_search {"_source": false, "query": {"match_all": {}} }查詢結果不顯示元數據 禁用之前: {"took" : 0,"timed_out" : false,"_shards" : {&quo…

基于Spring Boot的體育商品推薦系統

一、系統背景與目的 隨著電子商務的快速發展和人們健康意識的提高&#xff0c;體育商品市場呈現出蓬勃發展的態勢。然而&#xff0c;傳統的體育商品銷售方式存在商品種類繁多、用戶選擇困難、個性化需求無法滿足等問題。為了解決這些問題&#xff0c;基于Spring Boot的體育商品…

【Java Nio Netty】基于TCP的簡單Netty自定義協議實現(萬字,全篇例子)

基于TCP的簡單Netty自定義協議實現&#xff08;萬字&#xff0c;全篇例子&#xff09; 前言 有一陣子沒寫博客了&#xff0c;最近在學習Netty寫一個實時聊天軟件&#xff0c;一個高性能異步事件驅動的網絡應用框架&#xff0c;我們常用的SpringBoot一般基于Http協議&#xff0…

【2025最新計算機畢業設計】基于SSM校園歌手賽事管理系統【提供源碼+答辯PPT+文檔+項目部署】

作者簡介&#xff1a;?CSDN新星計劃導師、Java領域優質創作者、掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域和學生畢業項目實戰,高校老師/講師/同行前輩交流。? 主要內容&#xff1a;&#x1f31f;Java項目、Python項目、前端項目、PHP、ASP.NET、人工智能…

Visual Studio 使用 GitHub Copilot 協助調試

&#x1f380;&#x1f380;&#x1f380;【AI輔助編程系列】&#x1f380;&#x1f380;&#x1f380; Visual Studio 使用 GitHub Copilot 與 IntelliCode 輔助編碼Visual Studio 安裝和管理 GitHub CopilotVisual Studio 使用 GitHub Copilot 擴展Visual Studio 使用 GitHu…

了解ARM的千兆以太網——RK3588

1. 簡介 本文并不重點講解調試內容&#xff0c;重點了解以太網在ARM設計中的框架以及在設備樹以及驅動的一個整體框架。了解作為一個驅動開發人員當拿到一款未開發過的ARM板卡應該怎么去把網卡配置使用起來。 2. 基礎知識介紹 在嵌入式ARM中實現以太網的解決方案通常有以下兩種…

Springboot家政服務管理系統

摘 要 科技進步的飛速發展引起人們日常生活的巨大變化&#xff0c;電子信息技術的飛速發展使得電子信息技術的各個領域的應用水平得到普及和應用。信息時代的到來已成為不可阻擋的時尚潮流&#xff0c;人類發展的歷史正進入一個新時代。在現實運用中&#xff0c;應用軟件的工作…