主頁 >  其他 > CSS基礎

CSS基礎

2020-09-13 06:28:58 其他

為網頁添加樣式

術語解釋

h1{
    color:red;
    background-color:lightblue;
    text-align:  center;
}

CSS規則 = 選擇器 + 宣告塊

選擇器

選擇器:選中元素,選擇樣式作用范圍

  1. ID選擇器:選中的是對應id值的元素 加#
  2. 元素選擇器 h1、p
  3. 類選擇器 加.

宣告塊

出現在大括號中

宣告塊中包含很多宣告(屬性),每一個宣告(屬性)表達了某一方面的樣式,

CSS代碼書寫位置

內部樣式表

書寫在style元素中,一般放在head中,讓它最先加載

<style>
    .red {
        color: red;
    }

    .big-center {
        font-size: 3em;
        text-align: center;
    }
</style>

<p >Lorem ipsum dolor sit amet.</p>

行內樣式表,元素樣式表

直接書寫在元素的style屬性中

<h1 style="color:red; background-color:lightblue;">
    現在開始添加樣式
</h1>

外部樣式表(推薦

將樣式書寫到獨立的css檔案中,

<link rel="stylesheet" href="https://www.cnblogs.com/dearroy/p/css/index.css">
<!-- link寫在head中 -->
<div >
    Lorem ipsum dolor sit amet.
</div>
.red-big-center {
    color: blue;
    font-size: 5em;
    text-align: center;
}

1). 外部樣式可以解決多頁面樣式重復的問題
2). 有利于瀏覽器快取,從而提高頁面回應速度
3). 有利于代碼分離(HTML和CSS),更容易閱讀和維護

常見樣式宣告

color

元素內部的文字顏色

預設值:定義好的單詞

三原色,色值:光學三原色(紅、綠、藍),每個顏色可以使用0-255之間的數字來表達,色值,

rgb表示法:
rgb(0, 255, 0)
hex(16進制)表示法:
#紅綠藍

淘寶紅:#ff4400, #f40
黑色:#000000,#000
白色:#ffffff, #fff
紅:#ff0000, #f00
綠:#00ff00, #0f0
藍:#0000ff, #00f
紫:#f0f
青:#0ff
黃:#ff0
灰色:#ccc

background-color

元素背景顏色

font-size

元素內部文字的尺寸大小

1)px:像素,絕對單位,簡單的理解為文字的高度占多少個像素
2)em:相對單位,相對于父元素的字體大小
每個元素必須有字體大小,如果沒有宣告,則直接使用父元素的字體大小,如果沒有父元素(html),則使用基準字號,

user agent,UA,用戶代理(瀏覽器)

font-weight

文字粗細程度,可以取值數字,可以取值為預設值

strong元素,默認加粗,

font-family

文字型別

必須用戶計算機中存在的字體才會有效,

使用多個字體,以匹配不同環境

div{
    font-family: consolas,翩翩體-簡,微軟雅黑,Arial,sans-serif
}

sans-serif,非襯線字體

font-style

字體樣式,通常用它設定斜體

i元素,em元素,默認樣式,是傾斜字體; 實際使用中,通常用它表示一個圖示(icon)

text-decoration

文本修飾,給文本加線,

a元素
del元素:錯誤的內容
s元素:過期的內容

text-indent

首行文本縮進

line-height

每行文本的高度,該值越大,每行文本的距離越大,

設定行高為容器的高度,可以讓單行文本垂直居中

p{
    background:#008c8c;
    color:#fff;
    height: 50px;
    line-height: 50px;
}

行高可以設定為純數字,表示相對于當前元素的字體大小
多少倍行距

p{
    line-height: 1.5;
}

width

寬度

height

高度

letter-space

文字間隙

text-align

元素內部文字的水平排列方式

選擇器

選擇器:幫助你精準的選中想要的元素

簡單選擇器

1. ID選擇器

2. 元素選擇器

3. 類選擇器

4. 通配符選擇器 *,選中所有元素

* {
    color: red;
}

5.屬性選擇器

根據屬性名和屬性值選中元素

<a href="https://www.baidu.com">百度</a>
/* 選中所有具有href屬性的元素 */
[href]{
    color:red;
}

6. 偽類選擇器

選中某些元素的某種狀態

<a href="https://www.baidu.com">百度</a>

1)link: 超鏈接未訪問時的狀態

a:link {
    color: chocolate;
}

2)visited: 超鏈接訪問過后的狀態

a:visited {
    color: rgb(113, 133, 0);
}

3)hover: 滑鼠懸停狀態

/* 選中滑鼠懸停時的a元素 */
a:hover{
    color:red;
}

4)active:激活狀態,滑鼠按下狀態

/* 滑鼠按下時的a元素 */
a:active{
    color:#008c8c;
}

l v h a
愛恨法則:love hate

7. 偽元素選擇器

before

after

<p>
    袁老師和成老師的<span>HTML和CSS</span>課程真的是不錯呀!
</p>
span::before {
    content: "《";
    color: red;
}

span::after {
    content: "》";
    color: red;
}

選擇器的組合

并且

<p >
    Lorem, ipsum dolor sitpisicin
</p>
p.red {
    color: red;
}
/* 選中p元素中class為redde  */

后代元素 —— 空格

后代元素包括兒子孫子

    <div >
        Lorem, ipsum dolor sit amet 
        <ul>
            <li>Lorem.</li>
            <li>Harum.</li>
            <li>Eum!</li>
            <li>Impedit?</li>
            <li>Consequatur!</li>
        </ul>
    </div>
.red li {
    color: #008c8c;
}
<div >
    <p>Lorem.</p>
    <p >Sequi?</p>
    <p>Quasi.</p>
</div>

<p >
    Lorem.
</p>
.abc .bcd{
    color:red;
}

子元素 —— >

相鄰兄弟元素 —— +

后面出現的所有兄弟元素 —— ~

選擇器的并列

多個選擇器, 用逗號分隔

.special~li,p{
    color: #008c8c;
}

語法糖:方便書寫

層疊

宣告沖突:同一個樣式,多次應用到同一個元素

層疊:解決宣告沖突的程序,瀏覽器自動處理(權重計算)

比較重要性

作者樣式表:開發者書寫的樣式
重要性從高到底:

1) 作者樣式表中的!important樣式
2) 作者樣式表中的普通樣式
3) 瀏覽器默認樣式表中的樣式

比較特殊性

看選擇器

總體規則:選擇器選中的范圍越窄,越特殊

具體規則:通過選擇器,計算出一個4位數(x x x x)
不是逢10進一,而是逢255進一
1.千位:如果是行內樣式,記1,否則記0

<a href="" style="color: chocolate;">Perspiciatis</a>

2.百位:等于選擇器中所有id選擇器的數量

<a href="" id="mylink">Perspiciatis</a>
#mylink{
    color:#ccc;
}

3.十位:等于選擇器中所有類選擇器、屬性選擇器、偽類選擇器的數量
類選擇器

<a href="" >Perspiciatis</a>
.selected{
    color:#ccc;
}

4.個位:等于選擇器中所有元素選擇器、偽元素選擇器的數量

元素選擇器

<body>
    <a href="" id="mylink" >Perspiciatis.</a>
</body>
a {
    color: red;
}

body a {
    color: #fff; 
}

比較源次序

代碼書寫靠后的勝出

應用

1.重置樣式表

書寫一些作者樣式,覆寫瀏覽器的默認樣式

重置樣式表 -> 瀏覽器的默認樣式

常見的重置樣式表:normalize.css、reset.css、meyer.css

2.愛恨法則

link > visited > hover > active

從前往后,重要性以此增加,后面覆寫前面

繼承

子元素會繼承父元素的某些CSS屬性

通常,跟文字內容相關的屬性都能被繼承

屬性值的計算程序

一個元素一個元素依次渲染,順序按照頁面檔案的樹形目錄結構進行

渲染每個元素的前提條件:該元素的所有CSS屬性必須有值

一個元素,從所有屬性都沒有值,到所有的屬性都有值,這個計算程序,叫做屬性值計算程序

特殊的兩個CSS取值:

  • inherit:手動(強制)繼承,將父元素的值取出應用到該元素
  • initial:初始值,將該屬性設定為默認值

盒模型

box:盒子,每個元素在頁面中都會生成一個矩形區域(盒子)

盒子型別:

1.行盒,display等于inline的元素
2.塊盒,display等于block的元素

行盒在頁面中不換行、塊盒獨占一行

display默認值為inline

瀏覽器默認樣式表設定的塊盒:容器元素、h1~h6、p

常見的行盒:span、a、img、video、audio

盒子的組成部分

無論是行盒、還是塊盒,都由下面幾個部分組成,從內到外分別是:

1.內容 content

width、height,設定的是盒子內容的寬高

內容部分通常叫做整個盒子的內容盒 content-box

2.填充(內邊距) padding

盒子邊框到盒子內容的距離

padding-left、padding-right、padding-top、padding-bottom

padding: 簡寫屬性

padding: 上 右 下 左

填充區+內容區 = 填充盒 padding-box

3.邊框 border

邊框 = 邊框樣式 + 邊框寬度 + 邊框顏色

邊框樣式:border-style 默認沒有
邊框寬度:border-width 默認為0
邊框顏色:border-color

邊框+填充區+內容區 = 邊框盒 border-box

4.外邊距 margin

邊框到其他盒子的距離

margin-top、margin-left、margin-right、margin-bottom

速寫屬性margin

盒模型應用

改變寬高范圍

默認情況下,width 和 height 設定的是內容盒寬高,

頁面重構師:將psd檔案(設計稿)制作為靜態頁面

衡量設計稿尺寸的時候,往往使用的是邊框盒,但設定width和height,則設定的是內容盒

  1. 精確計算
  2. CSS3:box-sizing
/* 改變寬高的影響范圍 */
box-sizing: border-box; 

改變背景覆寫范圍

默認情況下,背景覆寫邊框盒

可以通過background-clip進行修改

溢位處理

overflow,控制內容溢位邊框盒后的處理方式

斷詞規則

word-break,會影響文字在什么位置被截斷換行

normal:普通,CJK字符(文字位置截斷),非CJK字符(單詞位置截斷)

break-all:截斷所有,所有字符都在文字處截斷

keep-all:保持所有,所有文字都在單詞之間截斷

空白處理

overflow: hidden;
white-space: nowrap
text-overflow: ellipsis;
/*文本顯示溢位顯示三個點*/
white-space:pre;
/* 空白折疊 */

行盒的盒模型

常見的行盒:包含具體內容的元素

span、strong、em、i、img、video、audio

顯著特點

1.盒子沿著內容沿伸,兩個相鄰的盒子連接
2.行盒不能設定寬和高

調整行盒的寬高,應該使用字體大小、行高、字體型別,間接調整,

3.內邊距(填充區)

水平方向有效,占據空間

垂直方向不會實際占據空間,只改變背景

4.邊框

水平方向有效,垂直方向不會實際占據空間,

5.外邊距

水平方向有效,垂直方向不會實際占據空間,

行塊盒

可以設定尺寸寬高的行盒(連著不獨占一行)
display:inline-block 的盒子

1.不獨占一行
2.盒模型中所有尺寸都有效

.pager a {
    border: 1px solid #e1e2e3;
    text-decoration: none;
    color: #38f;
    width: 34px;
    height: 34px;
    display: inline-block;
    text-align: center;
    line-height: 34px;
}

.pager a:hover {
    border-color: #38f;
    background: #f2f8ff;
}

.pager a.selected {
    border: none;
    color: #000;
    background: initial;
}
<body>
    <div >
        <a href="">1</a>
        <a href="">2</a>
        <a href="" >3</a>
        <a href="">4</a>
        <a href="">5</a>
        <a href="">6</a>
        <a href="">7</a>
        <a href="">8</a>
        <a href="">9</a>
        <a href="">10</a>
    </div>
</body>

空白折疊

空白折疊,發生在行盒(行塊盒)內部 或 行盒(行塊盒)之間

可替換元素 和 非可替換元素

大部分元素,頁面上顯示的結果,取決于元素內容,稱為非可替換元素

少部分元素,頁面上顯示的結果,取決于元素屬性,稱為可替換元素

可替換元素:img、video、audio

絕大部分可替換元素均為行盒,

可替換元素是行盒但是可以設定寬高,類似于行塊盒,盒模型中所有尺寸都有效,

object-fit:設定填充方式

常規流

盒模型:規定單個盒子的規則

視覺格式化模型(布局規則):頁面中的多個盒子排列規則

視覺格式化模型,大體上將頁面中盒子的排列分為三種方式:

  1. 常規流
  2. 浮動
  3. 定位

常規流布局

常規流、檔案流、普通檔案流、常規檔案流

所有元素,默認情況下,都屬于常規流布局

總體規則:塊盒獨占一行,行盒水平依次排列

包含塊(containing block):每個盒子都有它的包含塊,包含塊決定了盒子的排列區域,

絕大部分情況下:盒子的包含塊,為其父元素的內容盒

塊盒

1.每個塊盒的總寬度,必須剛好等于包含塊的寬度

寬度的默認值是auto

margin的取值也可以是auto,默認值0

auto:將剩余空間吸收掉

width吸收能力強于margin

若寬度、邊框、內邊距、外邊距計算后,仍然有剩余空間,該剩余空間被margin-right全部吸收

在常規流中,塊盒在其包含快中居中,可以定寬、然后左右margin設定為auto,

2.每個塊盒垂直方向上的auto值

height:auto, 適應內容的高度

margin:auto, 表示0

3.百分比取值

padding、寬、margin可以取值為百分比

以上的所有百分比相對于包含塊的寬度

高度的百分比:

1.包含塊的高度是否取決于子元素的高度,設定百分比無效
2.包含塊的高度不取決于子元素的高度,百分比相對于父元素高度

4.上下外邊距的合并

兩個常規流塊盒,上下外邊距相鄰,會進行合并,

兩個外邊距不一樣則取最大值,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/21302.html

標籤:其他

上一篇:vue 富文本編輯器 專案實戰用法

下一篇:0061. Rotate List (M)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more