日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Web工程实验

發布時間:2023/12/20 编程问答 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Web工程实验 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Web工程實驗

簡介

以下內容均總結自尚硅谷視頻 開放資料 ,官網鏈接: http://www.atguigu.com/.
課程名稱為 尚硅谷前端基礎_李立超老師(含HTML、CSS、H5、C3)(B站視頻連接附上)
所使用的開發工具為VS code,安裝教程和配置方法在視頻中有詳細步驟。
所需的配置內容為:
1 安裝VSCode
2 安裝中文語言包
3 嘗試安裝ayu主題
4 將一個目錄作為項目目錄大
5 創建一個新網頁
6 安裝live server
7 嘗試通過live server來運行網頁
8 設置代碼自動存儲
注意:以下內容僅作為學習筆記參考,以及復習知識使用,需要一定基礎。

課程評價

尚硅谷系列課程最大的特點是細,巨細無比。并且面向企業開發實戰,實用性很強與企業關聯緊密。但也是由于太過詳細導致課程內容較多和繁雜。適合0基礎新手并且有強烈學習欲望不容易半途而廢的學生學習。

快捷鍵:

以下為使用VScode時可以使用的快捷鍵。
注釋: Ctrl+/
自動補全標簽: 標簽名+tap
補全多個標簽: 標簽名*數字 回車
有時候,我們不能直接書寫部分符號,比如< > 和連續的空格,
< >可以在中間加空格解決,其他使用html中的實體(轉義字符)
例如: &nbsp; 空格 &lt;小于
!+tap直接生成網頁模板
Ul>li * 5 + tab 可以生成ul里面包含五個li
搜狗輸入法中文v1可以輸出符號
多行編輯(列編輯): Alt+Shift+鼠標左鍵 ,ctrl+Alt+Down/Up
連點兩下即選中這一行

第一章:introduce

1.網頁的結構

結構(HTML )
表現(CSS)
行為(JavaScript)
CSS:層疊樣式表

2.META標簽

主要用于設置網頁中的一些元數據,元數據不是給用戶看
charset指定網頁的字符集
name指定的數據的名稱
content指定的數據的內容
keywords表示網站的關鍵字,可以同時指定多個關鍵字,關鍵字間使用,隔開
title標簽的內容會作為搜索結果的超鏈接上的文字顯示
description 用于指定網站的描述
例如:

<meta name="keywords" content="HTML5,前端,CSS3"> <meta name="description" content="這是一個非常不錯的網站"> <meta name="description" content="京東JD.COM-專業的綜合網上購物商城,銷售家電、數碼通訊、電腦、家居百貨、服裝服飾、母嬰、圖書、食品等數萬個品牌優質商品.便捷、誠信的服務,為您提供愉悅的網上購物體驗!"/>

將頁面重定向到另一個網站url=后面接的是重定向后的網址

<meta name="keywords" content="HTML5,前端,CSS3"> <meta http-equiv=" refresh" confent= "3 ;url=https:/ /www . mozilla.org">

3.語義化標簽

在網頁中HTML專門用來負責網頁的結構
所以在使用html標簽時,應該關注的是標簽的語義,而不是它的樣式,比如不要管h1是不是比h2大。
標題標簽:
h1 ~ h6一共有六級標題
從h1~h6重要性遞減,h1最重要,h6最不重要
h1在網頁中的重要性僅次于title標簽,一般情況下一個頁 面中只會有一個h1
一般情況下標題標簽 只會使用到h1~h3, h4~h6很少用

<h1>一級標題</h1><h2>二級標題</h2>

4.塊元素

在頁面中獨占一行的元素稱為塊元素(block element)
在網頁中-般通過塊元素來對頁面進行布局
hgroup標簽用來為標題分組,可以將一組相關的標題同時放入到hgroup
例如:

<hgroup> <h1>回鄉偶書二首</h1> <h2>其-</h2> </hgroup>

4.行內元素

在頁面中不會獨占一行的元素稱為行內元素(inline element)。
行內元素主要用來包裹文字 如:
Em標簽用于表示語音語調的一個加重,效果為變為斜體
strong表示強調,重要內容
blockquote 表示一個長引用
q表示一個短引用

一般情況下會在塊元素中放行內元素,而不會在行內元素中放塊元素

塊元素中基本上什么都能放
p元素中不能放任何的塊元素

瀏覽器在解析網頁時,會自動對網頁中不符合規范的內容進行修正
比如:
標簽寫在了根元素的外部
p元素中嵌套了塊元素
根元素中出現了除head和body以外的子元素

5.布局標簽(結構化語義標簽)

header表示網頁的頭部
main表示網頁的主體部分(一個頁面中只會有一個。main)
footer表示網頁的底部
nav表示網頁中的導航
aside和主體相關的其他內容(側邊欄)
article表示一個獨立的文章
section 表示一個獨立的區塊,上邊的標簽都不能表示時使用secctiion
div 沒有語義, 就用來表示一個區塊,目前來講div還是我們主要的布局元素
span行內元素,沒有任何的語義,一般用于在網頁中選中文字

<header></header><main></main><footer></footer>

6.列表

1、有序列表
2、無序列表
3、定義列表
有序列表,使用ol標簽來創建有序列表
使用li表示列表項
無序列表,使用ul標簽來創建無序列表
使用li表示列表項
定義列表,使用dl標簽來創建一個 定義列表
使用dt來表示定義的內容
使用dd來對內容進行解釋說明
列表之間可以互相嵌套
例如:

<ul><li>結構</li><li>表現</li><li>行為</li> </ul><ol><li>結構</li><li>表現</li><li>行為</li> </ol>

實際效果:

  • 結構
  • 表現
  • 行為
  • 結構
  • 表現
  • 行為
  • 7.超鏈接:

    可以讓我們從一個頁面跳轉到其他頁面,
    或者是當前頁面的其他的位置
    使用a標簽來定義超鏈接
    屬性:
    href指定跳轉的目標路徑,當我們需要跳轉一個服務器內部的頁面時,一般我們都會使用相對路徑
    超鏈接是也是一個行內元素,在a標簽中可以嵌套除它自身外的任何元素
    相對路徑都會使用./或. ./開頭,且./可以省略
    值可以是一個外部網站的地址
    也可以寫一個內部頁面的地址
    target屬性,用來指定超鏈接打開的位置
    可選值:
    self默認值在當前頁面中打開超鏈接
    blank在一個新的頁面打開超鏈接

    <a href="07.列表.html" target="_blank">超鏈接</a>

    可以直接將超鏈接的href屬性設置為#,這樣點擊超鏈接以后
    頁面不會發生跳轉,而是轉到當前頁面的頂部的位置
    可以跳轉到頁面的指定位置,只需將href屬性設置#目標元素的id屬性值

    <a href="#bottom">去底部</a>

    id屬性(唯一不重復的):每一個標簽都可以添加一個d屬性
    id屬性就是元素的唯一標識,同一個頁面中不能出現重復的id屬性。
    可以使用javascript:;來作為href的屬性,此時點擊這個超鏈接什么也不會發生

    <a href="javascript:;">這是一個新的超鏈接</a>

    8.圖片:

    圖片標簽用于向當前頁面中引入一個外部圖片
    使用img標簽來引入外部圖片,img標簽是一個自結束標簽
    img這種元素屬于替換元素(塊和行內元素之間,具有兩種元素的特點)
    屬性:
    src. 屬性指定的是外部圖片的路徑(路徑規則和超鏈接是一 樣的)
    alt圖片的描述,這個描述默認情況下不會顯示,有些瀏覽器會圖片無法加載時顯示
    搜索引擎會根據alt中的內容來識別圖片,如果不寫alt屬性則圖片不會被搜索引擎所收錄
    width圖片的寬度( 單位是像素)
    height圖片的高度
    寬度和高度中如果只修改了一個,則另一個會等比例縮放
    注意:
    一般情況在pc端,不建議修改圖片的大小,需要多大的圖片就裁多大
    但是在移動端,經常需要對圖片進行縮放(大圖縮小)

    <img src="./img/1.gif" alt="松鼠"> <img width="200" src="https://d2ggl082rr1mkp.cloudfront.net/category/IronMan_preview_1521810286_220_310.jpeg" alt="鋼鐵俠">

    9.圖片的格式:

    jpeg(jpg)
    一支持的顏色比較豐富,不支持透明效果,不支持動圖
    一般用來顯示照片
    gif
    支持的顏色比較少,支持簡單透明, 支 持動圖
    顏色單一的圖片,動圖
    png
    支持的顏色豐富,支持復雜透明,不支持動圖
    顏色豐富,復雜透明圖片(專為網頁而生)
    webp
    這種格式是谷歌新推出的專門用來表示網頁中的圖片的一種格式
    它具備其他圖片格式的所有優點,而且文件還特別的小
    缺點:兼容性不好
    base64
    將圖片使用base64編碼,這樣可以將圖片轉換為字符,通過字符的形式來
    引入圖片
    一般都是一些需要和網頁-起加載的圖片才會使用base64
    效果一樣,用小的
    效果不一樣,用效果好的

    10.內聯框架

    內聯框架,用于向當前頁面中引入一個其他頁面
    src 指定要引入的網頁的路徑
    frameborder 指定內聯框架的邊框

    <iframe src="https://www.baidu.com" width="800" height="600" frameborder="0"></iframe>

    11.音頻播放

    用來向頁面中引入一個外部的音頻文件的
    音視頻文件引入時,默認情況下不允許用戶自已控制播放停止
    屬性:
    controls是否允許用戶控制播放
    autoplay音頻文件是否自動播放,有的瀏覽器不支持
    一如果設置了autoplay 則音樂在打開頁面時會自動播放
    但是目前來講大部分瀏覽器都不會自動對音樂進行播放
    Loop 音樂是否循環播放
    除了通過src來指定外部文件的路徑以外,還可以通過source來指定文件的路徑
    用source引用可以讓不支持的瀏覽器顯示文字
    Embed 是一個老式的標簽,可以適用所有瀏覽器

    <audio controls><!-- 對不起,您的瀏覽器不支持播放音頻!請升級瀏覽器! --><source src="./source/audio.mp3"><source src="./source/audio.ogg"><embed src="./source/audio.mp3" type="audio/mp3" width="300" height="100"> </audio>

    以上代碼優先執行第一條,無法執行則往下接替
    效果如下:

    <video controls><source src="./source/flower.webm"><source src="./source/flower.mp4"><embed src="./source/flower.mp4" type="video/mp4"> </video>

    效果如下:

    <iframe frameborder="0" src="https://v.qq.com/txp/iframe/player.html?vid=b00318l66nt" allowFullScreen="true" width="500" height="300"></iframe>

    效果如下:

    第二章CSS

    1.CSS簡介

    第一種方式:(內聯樣式,行內樣式):
    在標簽內部通過style屬性來設置元素的樣式
    問題:
    使用內聯樣式,樣式只能對一個標簽生效,
    如果希望影響到多個元素必須在每一個元素中都復制一遍
    并且當樣式發生變化時,我們必須要一個一個的修改,非常的不方便
    注意:開發時絕對不要使用內聯樣式
    第二種方式:(內部樣式表)
    將樣式編寫到head中的style標簽里
    然后通過css的選擇器來選中元素并為其設置各種樣式
    可以同時為多個標簽設置樣式,并且修改時只需要修改-處即可全部應用
    內部樣式表更加方便對樣式進行復用
    問題:
    我們的內部祥式表只能對一個網頁起作用,
    它里邊的樣式不能跨頁面進行復用
    第三種方式:(外部樣式表) 最佳實踐
    可以將CSS樣式編寫到一個外部的CSS文件中,
    然后通過link 標簽來引入外部的CSS.文件
    外部樣式表需要通過link標簽進行引入,
    意味著只要想使用這些樣式的網頁都可以對其進行引用
    使樣式可以在不同頁面之間進行復用
    將樣式編寫到外部的CSS文件中,可以使用到瀏覽器的緩存機制,
    從而加快網頁的加載速度,提高用戶的體驗。

    2.CSS的基本語法:

    選擇器 + 聲明塊
    選擇器,通過選擇器可以選中頁面中的指定元素
    聲明塊,通過聲明塊來指定要為元素設置的樣式
    聲明塊由一個一個的聲明組成
    聲明是一個名值對結構
    一個樣式名對應一個樣式值, 名和值之間以 : 連接, 以 ; 結尾

    p{color: red;font-size: 40px;}h1{color: green;}

    3.常用選擇器

    (1)id選擇器:
    作用:根據元素的id屬性值選中一個元素
    語法: #id屬性值{ }
    例子:

    #box{} #red{}

    (2)類選擇器:
    作用:根據元素的cLass 屠性值選中一組元素
    語法: . class 屬性值
    例子:

    .abc{ font-size: 20px; }

    class 是一個標簽的屬性,它和id類似,不同的是class可以重復使用
    可以通過class,屬性來為元素分組
    可以同時為一個元素指定多個class屬性
    (3)通配選擇器:
    作用:選中頁面中的所有元素
    語法:*
    例子:

    *{ color: red; }

    注意:p * { }中p和*之間要有空格

    4.復合選擇器

    (1)交集選擇器:
    作用:選中同時復合多個條件的元素
    語法:選擇器1選擇器2選擇器3選擇器n{ }
    注意點:
    交集選擇器中如果有元素選擇,必須使用元素選擇器開頭

    div.red{font-size: 30px; }.a.b.c{color: blue }

    (2)并集選擇器:
    作用:同時選擇多個選擇器對應的元素
    語法:選擇器1,選擇器2,選擇器3,選擇器n{ }

    h1, span{color: green} #b1, .p1,h1, span, div.red{ }

    5.關系選擇器
    (1)子元素選擇器
    作用:選中指定父元素的指定子元素
    語法: 父元素>子元素

    div.box > span{color: orange;}

    (2)后代元素選擇器:
    作用:選中指定元素內的指定后代元素
    語法:祖先 后代(中間是空格)

    div span{color: skyblue}div > p > span{color: red;}

    (3)兄弟選擇器
    選擇下一個兄弟
    語法:前一個 + 下一個

    p + span{color: red;}

    選擇下邊所有的兄弟
    語法:兄~弟

    P ~ span{ color: Ored; }

    6.屬性選擇器

    [屬性名]選擇含有指定屬性的元素 [屬性名=屬性值]選擇含有指定屬性和屬性值的元素 [屬性名^=屬性值]選擇屬性值以指定值開頭的元素 [屬性名$= 屬性值]選擇屬性值 以指定值結尾的元素 [屬性名*=屬性值]選擇屬性值中含有某值的元素的元素

    如:

    p[title$=abc]{ }

    7.偽類選擇器
    偽類(不存在的類,特殊的類)
    偽類用來描述一個元素的特殊狀態
    比如:第一個子元素、被點擊的元素、鼠標移入的元素…
    偽類一般情況下都是使用:開頭
    :first-child第一個子元素,這些都是限定詞,針對:前面的元素
    :last-child 最后一個子元素
    :nth-child()選中第n個子元素
    特殊值:
    n 第n個n的范圍0到正無窮
    2n或even表示選中偶數位的元素
    2n+1或odd表示選中奇數位的元素

    ul > li:first-child{color: red;} ul > li:last-child{color: red;} ul > li:nth-child(2n+1){color: red;} ul > li:nth-child(even){color: red;} ul > li:first-of-type{color: red;}

    以上這些偽類都是根據所有的子元素進行排序
    :first-of-type
    :last-of-type
    :nth-of- type()
    這幾個偽類的功能和上述的類似,不通點是他們是在同類型元素中進行排序
    :not()否定偽類
    將符合條件的元素從選擇器中去除
    如:

    uL>li:nth-child(2n+1){ coLor: red; }

    指的是li是ul的2n+1個孩子時變紅色

    注意:li和后面的:之間不要有空格!
    a元素的偽類
    :link 用來表示沒訪間過的娃接 (正常的鏈接)
    :visited用來表示訪問過的鏈接 由于隱私的原因,所以visited這個偽類只能修改鏈接的顏色
    :hover 用來表示鼠標移入的狀態
    :active用來表示鼠標點擊

    a:hover{color: aqua;font-size: 50px;}

    8.樣式的繼承

    樣式的繼承,我們為一個元素設置的樣式同時也會應用到它的后代元素上
    繼承是發生在祖先后后代之間的
    繼承的設計是為了方便我們的開發,
    利用繼承我們可以將一些通 用的樣式統一設 置到共同的祖先元素上,
    這樣只需設置一次即可讓所有的元素都具有該樣式
    注意:并不是所有的樣式都會被繼承:
    比如背景相關的,布局相關等的這些樣式都不會被繼承。

    9.選擇器的權重

    樣式的沖突
    當我們通過不同的選擇器,選中相同的元素,并且為相同的樣式設置不同的值時,此時就發生J樣式的沖突。
    發生樣式沖突時,應用哪個樣式由選擇器的權重(優先級)決定
    選擇器的權重
    內聯樣式 1000
    id選擇器 100
    類和偽類選擇器 10
    元素選擇器 1
    通配選擇器 0
    繼承的樣式 沒有優先級
    比較優先級時,需要將所有的選擇器的優先級迸行相加計算,最后優先級越高,則越優先顯示(分組選擇器是單獨計算的),
    選擇器的累加不會超過其最大的數量級,類選擇器在高也不會超過id選擇器
    如果優先級計算后相同,此時則優先使用靠下的梓式
    可以在某一個樣式的后邊添加! important,則此時該樣式會獲取到最高的優先級,甚至超過內聯樣式,
    注意:在開發中這個玩意一定要慎用!

    10.長度單位:

    像素
    屏幕(顯示器)實際上是由一個一個的小點點構成的
    不同屏幕的像素大小是不同的,像素越小的屏幕顯示的效果越清晰
    -所以同樣的200px在不同的設 備下顯示效果不一樣
    百分比
    也可以將屬性值設置為相對于其父元素屬性的百分比
    設置百分比可以使子元素跟隨父元素的改變而改變
    em
    em是相對于元素的字體大小來計算的
    1em = lfont-size
    em會根據字體大小的改變而改變
    rem
    rem是相對于根元素的字體大小來計算

    11.顏色:

    在CSS中可以直接使用顏色名來設置各種顏色
    比如: red、 orange、 yellow、 blue、 green
    但是在css中直接使用顏色名是非常的不方便
    RGB值:
    RGB通過三種顏色的不同濃度來調配出不同的顏色
    Rred,Ggreen,Bblue
    每一種顏色的范圍在0-255(0%-100%)之間
    語法: RGB(紅色, 綠色,藍色)
    RGBA:
    就是在rgb的基礎上增加了一個a表示不透明度
    需要四個值,前三個和rgb -一樣,第四個表示不透明度
    1表示完全不透明0表示完全透明.5半透明
    十六進制的RGB值:
    語法: #紅色綠色藍色
    顏色濃度通過00-ff
    如果顏色兩位兩位重復可以進行簡寫
    #aabbcc --> #abc
    HSL值HSLA值
    H色相(0 - 360)
    S飽和度,顏色的濃度0% - 100%
    L亮度,顏色的亮度0%- 100%

    第三章 layout

    1.文檔流(NORMAL FLOW)

    網頁是一個多層的結構,一層接著一層
    通過CSS可以分別為每一層來設置祥式
    作為用戶來進只能看到最頂上一層
    這些層中,最底下的一層稱為文檔流,文檔流是網頁的基社
    我們所創建的元就都是在文檔說中進行排列
    對于我們來元素主要有兩個狀態
    在文檔流中
    不在文檔流中(脫離文檔流)
    元者在文檔流中有什么特點:
    塊元素
    塊元素會在頁面中獨占一行(自上向下垂直排列)
    默認寬度是父元親的全部(會把父元病掉滿)
    默認高度是被內容撐開(子元素)
    行內元素
    行內元素不會獨占頁面的一行,只占自身的大小
    行內元責在頁面中左向右水平排列,如果一行之中不能容納下所有的行內元素
    則元素會換間第二行繼續自左向右排列(書寫習慣一致)
    行內元素的默認寬度和高度都是被內容撐開

    2.盒模型、盒子模型、框模型(BOX MODEL)

    CSS將頁面中的所有元親都設置為了一個矩形的盒子
    將元素設置為矩形的盒子后,對頁面的布局就變成將不同的盒子擺放到不同的位置
    每一個盒子都由一下/幾個部分組成:
    內容區(content )
    內邊距(padding )
    邊框(border)
    外邊距(margin)
    邊框
    邊框的寬度border-width

    3.邊框

    border-width: 10px;
    默認值,一般都是3個像素
    border-width可以用來措定四個方向的邊框的寬庹
    值的情況
    四個值:上右下左
    三個值:上左右下
    兩個值:上下左右
    一個值:上下左右
    除了border-width還有一組border-xxx -width
    xxx可以是top right bottom Left
    用來單獨指定某一條邊的寬度

    邊框的顏色border-color

    border-color.用來指定邊框的顏色,同樣可以分別指定四個邊的邊框
    規則和border-width一樣
    border-color也可以省略不寫,如果省略則自動使用color的值
    邊框的樣式border-style
    solid 表示實線
    dotted點虛線
    dashed虛線
    double雙線
    border-style以值是none表示沒有邊框

    4.內邊距

    內邊距(padding)
    內容區和邊框之間的距離是內邊距
    一共有四個方向的內邊距:
    padding-top
    padding-right
    padding-bottom
    padding-left
    內邊距的設置會影響到盒子的大小
    背景顏色會延伸到內邊距上
    一個盒子的可見框的大小,由內容區 內邊距 和 邊框共同決定,
    所以在計算盒子大小時,需要將這三個區域加到一起計算

    5.外邊距

    外邊距(margin)
    外邊距不會影響盒子可見框的大小
    但是外邊距會影響盒子的位置
    一共有四個方向的外邊距:
    margin-top
    上外邊距,設置一個正值,元素會向下移動
    margin-right
    默認情況下設置margin-right不會產生任何效果
    margin-bottom
    下外邊距,設置一個正值,其下邊的元素會向下移動
    margin-left
    左外邊距,設置一個正值,元素會向右移動
    margin也可以設置負值,如果是負值則元素會向相反的方向移動
    元素在頁面中是按照自左向右的順序排列的,
    所以默認情況下如果我們設置的左和上外邊距則會移動元素自身
    而設置下和右外邊距會移動其他元素
    margin的簡寫屬性
    margin 可以同時設置四個方向的外邊距 ,用法和padding一樣
    margin會影響到盒子實際占用空間

    6.元素的水平方向的布局:

    元素在其父元素中水平方向的位置由以下幾個屬性共同決定“
    margin-left
    border-left
    padding-left
    width
    padding-right
    border-right
    margin-right
    一個元素在其父元素中,水平布局必須要滿足以下的等式
    margin-left+border-left+padding-left+width+padding-right+border-right+margin-right = 其父元素內容區的寬度 (必須滿足)
    以上等式必須滿足,如果相加結果使等式不成立,則稱為過度約束,則等式會自動調整
    調整的情況:(可以變成負值)
    如果這七個值中沒有為 auto 的情況,則瀏覽器會自動調整margin-right值以使等式滿足
    這七個值中有三個值和設置為auto
    width
    margin-left
    maring-right
    如果某個值為auto,則會自動調整為auto的那個值以使等式成立
    如果將一個寬度和一個外邊距設置為auto,則寬度會調整到最大,設置為auto的外邊距會自動為0
    如果將三個值都設置為auto,則外邊距都是0,寬度最大
    如果將兩個外邊距設置為auto,寬度固定值,則會將外邊距設置為相同的值,居中
    所以我們經常利用這個特點來使一個元素在其父元素中水平居中
    示例:
    width:xxxpx;
    margin:0 auto;

    7.垂直布局

    默認情況下父元素的高度被內容撐開
    子元素是在父元素的內容區中排列的,
    如果子元素的大小超過了父元素,則子元素會從父元素中溢出
    使用 overflow 屬性來設置父元素如何處理溢出的子元素
    可選值:
    visible,默認值 子元素會從父元素中溢出,在父元素外部的位置顯示
    hidden 溢出內容將會被裁剪不會顯示
    scroll 生成兩個滾動條,通過滾動條來查看完整的內容
    auto 根據需要生成滾動條

    8.垂直外邊距的重疊(折疊)

    相鄰的垂直方向外邊距會發生重疊現象
    兄弟元素
    兄弟元素間的相鄰垂直外邊距會取兩者之間的較大值(兩者都是正值)
    特殊情況:
    如果相鄰的外邊距一正一負,則取兩者的和
    如果相鄰的外邊距都是負值,則取兩者中絕對值較大的
    兄弟元素之間的外邊距的重疊,對于開發是有利的,所以我們不需要進行處理
    父子元素
    父子元素間相鄰外邊距,子元素的會傳遞給父元素(上外邊距)
    父子外邊距的折疊會影響到頁面的布局,必須要進行處理
    處理方式:

  • 不用外邊距,用內邊距(此時要調整父元素高度)
  • 給父元素加一個邊框,來隔開兩個外邊距
  • 9.行內元素的盒模型

    行內元素不支持設置寬度和高度
    行內元素可以設置padding,但是垂直方向padding不會影響頁面的布局
    行內元素可以設置border,垂直方向的border不會影響頁面的布局
    行內元素可以設置margin,垂直方向的margin不會影響布局

    display用來設置元素顯示的類型
    可選值:
    inline將元素設置為行內元素
    block將元素設置為塊元素
    inline-block 將元素設置為行內塊元素
    行內塊,既可以設置寬度和高度又不會獨占一行
    table將元素設置為一個表格
    none元素不在頁面中顯示
    visibility用來設置元素的顯示狀態
    可選值:
    visible 默認值,元素在頁面中正常顯示
    hidden元素在頁面中隱藏不顯示,但是依然占據頁面的位置

    10.默認樣式:

    通常情況,瀏覽器都會為元素設置一些默認樣式
    默認樣式的存在會影響到頁面的布局,
    通常情況下編寫網頁時必須要去除瀏覽器的默認樣式(PC 端的頁面)

    重置樣式表:專門用來對瀏覽器的樣式進行重置的
    reset.css 直接去除了瀏覽器的默認樣式
    normalize.css 對默認樣式進行了統一

    要讓一個文字在父元素中垂直居中,只需將父元素的line-height設置為一個和父元素height一樣的值
    line-height: 25px;

    11.盒子的尺寸

    默認情況下,盒子可見框的大小由內容區、內邊距和邊框共同決定
    box-sizing 用來設置盒子尺寸的計算方式(設置width和height的作用)
    可選值:
    content-box 默認值,寬度和高度用來設置內容區的大小
    border-box 寬度和高度用來設置整個盒子可見框的大小
    width 和 height 指的是內容區 和 內邊距 和 邊框的總大小

    12.陰影,輪廓和圓角

    box-shadow 用來設置元素的陰影效果,陰影不會影響頁面布局
    第一個值 水平偏移量 設置陰影的水平位置 正值向右移動 負值向左移動
    第二個值 垂直偏移量 設置陰影的水平位置 正值向下移動 負值向上移動
    第三個值 陰影的模糊半徑
    第四個值 陰影的顏色
    如:box-shadow: 0px 0px 50px rgba(0, 0, 0, .3) ;
    outline 用來設置元素的輪廓線,用法和border一模一樣
    如: outline: 10px red solid;
    輪廓和邊框不同的點,就是輪廓不會影響到可見框的大小
    border-radius: 用來設置圓角 圓角設置的圓的半徑大小
    border-radius 可以分別指定四個角的圓角
    四個值 左上 右上 右下 左下
    三個值 左上 右上/左下 右下
    兩個個值 左上/右下 右上/左下
    也可以單獨制定一個角
    border-top-left-radius:
    border-top-right-radius
    border-bottom-left-radius:
    border-bottom-right-radius:
    此時如果后面帶兩個值則為橢圓形圓角
    將元素設置為一個圓形 :border-radius: 50%;

    第四章 float

    1.浮動:

    通過浮動可以使一個元素向其父元素的左側或右側移動,使用 float 屬性來設置于元素的浮動可選值:
    none 默認值 ,元素不浮動
    left 元素向左浮動
    right 元素向右浮動
    注意,元素設置浮動以后,水平布局的等式便不需要強制成立
    元素設置浮動以后,會完全從文檔流中脫離,不再占用文檔流的位置,
    所以元素下邊的還在文檔流中的元素會自動向上移動

    2.浮動的特點:

    1、浮動元素會完全脫離文檔流,不再占據文檔流中的位置
    2、設置浮動以后元素會向父元素的左側或右側移動,
    3、浮動元素默認不會從父元素中移出
    4、浮動元素向左或向右移動時,不會超過它前邊的其他浮動元素
    5、如果浮動元素的上邊是一個沒有浮動的塊元素,則浮動元素無法上移
    6、浮動元素不會超過它上邊的浮動的兄弟元素,最多最多就是和它一樣高
    7.浮動元素不會蓋住文字,文字會自動環繞在浮動元素的周圍,所以我們可以利用浮動來設置文字環繞圖片的效果
    簡單總結:
    浮動目前來講它的主要作用就是讓頁面中的元素可以水平排列,
    通過浮動可以制作一些水平方向的布局

    3.脫離文檔流的特點:

    塊元素:
    1、塊元素不在獨占頁面的一行
    2、脫離文檔流以后,塊元素的寬度和高度默認都被內容撐開
    行內元素:
    1、行內元素脫離文檔流以后會變成塊元素,特點和塊元素一樣
    2、脫離文檔流以后,不需要再區分塊和行內了

    4.高度塌陷問題:

    BFC(Block Formatting Context) 塊級格式化環境
    BFC是一個CSS中的一個隱含的屬性,可以為一個元素開啟BFC
    開啟BFC該元素會變成一個獨立的布局區域
    元素開啟BFC后的特點:
    1.開啟BFC的元素不會被浮動元素所覆蓋
    2.開啟BFC的元素子元素和父元素外邊距不會重疊
    3.開啟BFC的元素可以包含浮動的子元素
    可以通過一些特殊方式來開啟元素的BFC:
    1、設置元素的浮動(不推薦)
    2、將元素設置為行內塊元素(不推薦)
    3、將元素的overflow設置為一個非visible的值
    常用的方式 為父元素設置 overflow:hidden 開啟其BFC 以使其可以包含浮動元素而不塌陷

    如果我們不希望某個元素因為其他元素浮動的影響而改變位置,
    可以通過clear屬性來清除浮動元素對當前元素所產生的影響
    clear:
    作用:清除浮動元素對當前元素所產生的影響
    可選值:
    left 清除左側浮動元素對當前元素的影響
    right 清除右側浮動元素對當前元素的影響
    both 清除兩側中最大影響的那側
    原理:
    設置清除浮動以后,瀏覽器會自動為元素添加一個上外邊距,以使其位置不受其他元素的影響
    高度塌陷最終解決方案:在style里面加個
    .clearfix::before, .clearfix::after{
    content: ‘’;
    display: table;
    clear: both;
    }
    //這既可以解決高度塌陷(后面加table)也可以解決上邊距重疊(前面加table隔開)
    再把父元素加一個class=clearfix就行了

    第五章 position

    1.定位的簡介

    定位是一種更加高級的布局手段,但一定多用浮動少用定位
    通過定位可以將元素擺放到頁面的任意位置
    使用position屬性來設置定位
    可選值:
    static 默認值,元素是靜止的沒有開啟定位
    relative 開啟元素的相對定位
    absolute 開啟元素的絕對定位
    fixed 開啟元素的固定定位
    sticky 開啟元素的粘滯定位

    2.相對定位:

    當元素的position屬性值設置為relative時則開啟了元素的相對定位
    相對定位的特點:
    1.元素開啟相對定位以后,如果不設置偏移量元素不會發生任何的變化
    2.相對定位是參照于元素在文檔流中的位置進行定位的
    3.相對定位會提升元素的層級
    4.相對定位不會使元素脫離文檔流
    5.相對定位不會改變元素的性質塊還是塊,行內還是行內

    偏移量(offset)
    當元素開啟了定位以后,可以通過偏移量來設置元素的位置
    top定位元素和定位位置上邊的距離
    bottom定位元素和定位位置下邊的距離
    定位元素垂直方向的位置由top和bottom兩個屬性來控制
    通常情況下我們只會使用其中一
    top值越大,定位元素越向下移動
    bottom值越大,定位元素越向上移動
    left 定位元素和定位位置的左側距離
    right 定位元素和定位位置的右側距離
    定位元素水平方向的位置由left和right兩個屬性控制
    通常情況下只會使用一個
    left越大元素越靠右
    right越大元素越靠左

    3.絕對定位

    當元素的position屬性值設置為absolute時,則開啟了元素的絕對定位
    絕對定位的特點:
    1.開啟絕對定位后,如果不設置偏移量元素的位置不會發生變化
    2.開啟絕對定位后,元素會從文檔流中脫離
    3.絕對定位會改變元素的性質,行內變成塊,塊的寬高被內容撐開
    4.絕對定位會使元素提升一個層級
    5.絕對定位元素是相對于其包含塊進行定位的
    包含塊( containing block )
    正常情況下:
    包含塊就是離當前元素最近的祖先塊元素

    <div> <div></div> </div> <div><span><em>hello</em></span></div>

    絕對定位的包含塊:
    包含塊就是離它最近的開啟了定位的祖先元素,
    如果所有的祖先元素都沒有開啟定位則根元素就是它的包含塊
    html(根元素、初始包含塊)

    4.固定定位:

    將元素的position屬性設置為fixed則開啟了元素的固定定位
    固定定位也是一種絕對定位,所以固定定位的大部分特點都和絕對定位一樣
    唯一不同的是固定定位永遠參照于瀏覽器的視口進行定位
    固定定位的元素不會隨網頁的滾動條滾動

    5.粘滯定位

    當元素的position屬性設置為sticky時則開啟了元素的粘滯定位
    粘滯定位和相對定位的特點基本一致,
    不同的是粘滯定位可以在元素到達某個位置時將其固定

    6.絕對定位元素的布局

    水平布局
    left + margin-left + border-left + padding-left + width + padding-right + border-right + margin-right + right = 包含塊的內容區的寬度

    當我們開啟了絕對定位后:
    水平方向的布局等式就需要添加left 和 right 兩個值
    此時規則和之前一樣只是多添加了兩個值:
    當發生過度約束:
    如果9個值中沒有 auto 則自動調整right值以使等式滿足
    如果有auto,則自動調整auto的值以使等式滿足

    可設置auto的值
    margin width left right
    因為left 和 right的值默認是auto,所以如果不指定left和right
    則等式不滿足時,會自動調整這兩個值
    垂直方向布局的等式的也必須要滿足
    top + margin-top/bottom + padding-top/bottom + border-top/bottom + height = 包含塊的高度

    7.元素的層級

    對于開啟了定位元素,可以通過z-index屬性來指定元素的層級
    z-index需要一個整數作為參數,值越大元素的層級越高
    元素的層級越高越優先顯示
    如果元素的層級一樣,則優先顯示靠下的元素
    祖先的元素的層級再高也不會蓋住后代元素

    第六章font&background

    1.字體

    font-face可以將服務器中的字體直接提供給用戶去使用
    問題:
    1.加載速度
    2.版權
    3.字體格式
    例如:
    @font-face {
    /* 指定字體的名字 /
    font-family:‘myfont’ ;
    / 服務器中字體的路徑 */
    src: url(‘./font/ZCOOLKuaiLe-Regular.ttf’) format(“truetype”);
    }
    字體相關的樣式
    color 用來設置字體顏色
    font-size 字體的大小
    和font-size相關的單位
    em 相當于當前元素的一個font-size
    rem 相對于根元素的一個font-size
    font-family 字體族(字體的格式)
    可選值:
    serif 襯線字體
    sans-serif 非襯線字體
    monospace 等寬字體
    指定字體的類別,瀏覽器會自動使用該類別下的字體
    font-family 可以同時指定多個字體,多個字體間使用,隔開

    2.圖標字體

    圖標字體(iconfont)
    在網頁中經常需要使用一些圖標,可以通過圖片來引入圖標,但是圖片大小本身比較大,并且非常的不靈活,所以在使用圖標時,我們還可以將圖標直接設置為字體,然后通過font-face的形式來對字體進行引入。這樣我們就可以通過使用字體的形式來使用圖標
    fontawesome 使用步驟
    1.下載 https://fontawesome.com/
    2.解壓
    3.將css和webfonts移動到項目中
    4.將all.css引入到網頁中
    5.使用圖標字體
    這里建議不下載而是直接引用,可以參照菜鳥教程
    直接通過類名來使用圖標字體
    class=“fas fa-bell”
    class=“fab fa-accessible-icon”
    通過偽元素來設置圖標字體
    1.找到要設置圖標的元素通過before或after選中
    2.在content中設置字體的編碼
    3.設置字體的樣式

    3. 阿里字體庫

    官網:

    https://www.iconfont.cn/

    可以直接下載單個圖片或者加入購物車下載合集
    注意版權

    4. 行高

    行高(line height)
    行高指的是文字占有的實際高度
    可以通過line-height來設置行高
    行高可以直接指定一個大小(px em)
    也可以直接為行高設置一個整數
    如果是一個整數的話,行高將會是字體的指定的倍數
    行高經常還用來設置文字的行間距
    行間距 = 行高 - 字體大小
    字體框
    字體框就是字體存在的格子,設置font-size實際上就是在設置字體框的高度
    行高會在字體框的上下平均分配
    可以將行高設置為和高度一樣的值,使單行文字在一個元素中垂直居中

    5. 字體的簡寫屬性

    font 可以設置字體相關的所有屬性
    語法:
    font: 字體大小/行高 字體族
    行高 可以省略不寫 如果不寫使用默認值
    font-weight 字重 字體的加粗
    可選值:
    normal 默認值 不加粗
    bold 加粗
    100-900 九個級別(沒什么用)
    font-style 字體的風格
    normal 正常的
    italic 斜體
    如:font: bold italic 50px/2 微軟雅黑, ‘Times New Roman’, Times, serif;

    6. 文本的樣式

    text-align 文本的水平對齊
    可選值:
    left 左側對齊
    right 右對齊
    center 居中對齊
    justify 兩端對齊

    vertical-align 設置元素垂直對齊的方式
    可選值:
    baseline 默認值 基線對齊
    top 頂部對齊
    bottom 底部對齊
    middle 居中對齊
    圖片引入后底部會有縫隙,將垂直對齊設置為非基線對齊就可
    text-decoration 設置文本修飾
    可選值:
    none 什么都沒有
    underline 下劃線
    line-through 刪除線
    overline 上劃線
    white-space 設置網頁如何處理空白
    可選值:
    normal 正常
    nowrap 不換行
    pre 保留空白
    text-overflow: ellipsis;多出的內容顯示省略號

    7. 背景

    background-color 設置背景顏色
    background-image 設置背景圖片
    可以同時設置背景圖片和背景顏色,這樣背景顏色將會成為圖片的背景色
    如果背景的圖片小于元素,則背景圖片會自動在元素中平鋪將元素鋪滿
    如果背景的圖片大于元素,將會一個部分背景無法完全顯示
    如果背景圖片和元素一樣大,則會直接正常顯示
    background-repeat 用來設置背景的重復方式
    可選值:
    repeat 默認值 , 背景會沿著x軸 y軸雙方向重復
    repeat-x 沿著x軸方向重復
    repeat-y 沿著y軸方向重復
    no-repeat 背景圖片不重復
    background-position 用來設置背景圖片的位置
    設置方式:
    通過 top left right bottom center 幾個表示方位的詞來設置背景圖片的位置
    使用方位詞時必須要同時指定兩個值,如果只寫一個則第二個默認就是center
    通過偏移量來指定背景圖片的位置:
    水平方向的偏移量 垂直方向變量

    設置背景的范圍
    background-clip
    可選值:
    border-box 默認值,背景會出現在邊框的下邊
    padding-box 背景不會出現在邊框,只出現在內容區和內邊距
    content-box 背景只會出現在內容區
    background-origin 背景圖片的偏移量計算的原點
    padding-box 默認值,background-position從內邊距處開始計算
    content-box 背景圖片的偏移量從內容區處計算
    border-box 背景圖片的變量從邊框處開始計算
    background-origin: border-box;
    background-clip: content-box; */
    background-size 設置背景圖片的大小
    第一個值表示寬度
    第二個值表示高度
    如果只寫一個,則第二個值默認是 auto
    cover 圖片的比例不變,將元素鋪滿
    contain 圖片比例不變,將圖片在元素中完整顯示
    background-color
    background-image
    background-repeat
    background-position
    background-size
    background-origin
    background-clip
    background-attachment
    backgound 背景相關的簡寫屬性,所有背景相關的樣式都可以通過該樣式來設置
    并且該樣式沒有順序要求,也沒有哪個屬性是必須寫的
    注意:
    background-size必須寫在background-position的后邊,并且使用/隔開
    background-position/background-size
    background-origin background-clip 兩個樣式 ,orgin要在clip的前邊

    8. 漸變

    通過漸變可以設置一些復雜的背景顏色,可以實現從一個顏色向其他顏色過渡的效果
    !!漸變是圖片,需要通過background-image來設置
    線性漸變,顏色沿著一條直線發生變化
    linear-gradient()
    linear-gradient(red,yellow) 紅色在開頭,黃色在結尾,中間是過渡區域
    線性漸變的開頭,我們可以指定一個漸變的方向
    to left
    to right
    to bottom
    to top
    deg deg表示度數
    turn 表示圈
    漸變可以同時指定多個顏色,多個顏色默認情況下平均分布,
    也可以手動指定漸變的分布情況
    repeating-linear-gradient() 可以平鋪的線性漸變

    9. 徑向漸變

    默認情況下徑向漸變的形狀根據元素的形狀來計算的
    正方形 --> 圓形
    長方形 --> 橢圓形
    我們也可以手動指定徑向漸變的大小
    circle
    ellipse
    也可以指定漸變的位置
    語法:
    radial-gradient(大小 at 位置, 顏色 位置 ,顏色 位置 ,顏色 位置)
    大小:
    circle 圓形
    ellipse 橢圓
    closest-side 近邊
    closest-corner 近角
    farthest-side 遠邊
    farthest-corner 遠角
    位置:
    top right left center bottom

    第七章 html補充

    1.表格

    在table中使用tr表示表格中的一行,有幾個tr就有幾行
    在tr中使用td表示一個單元格,有幾個td就有幾個單元格
    rowspan 縱向的合并單元格
    colspan 橫向的合并單元格

    2.長表格

    可以將一個表格分成三個部分:
    頭部 thead
    主體 tbody
    底部 tfoot
    th 表示頭部的單元格
    這樣無論放在什么位置,thead永遠顯示在最前面

    3.表格邊框

    border-spacing: 指定邊框之間的距離
    border-spacing: 0px;此時兩條線合二為一,邊框為2px
    border-collapse: collapse; 設置邊框的合并,此時邊框為1px
    默認情況下元素在td中是垂直居中的 可以通過 vertical-align 來修改
    vertical-align:middle; 垂直居中
    text-align: center;水平居中
    如果表格中沒有使用tbody而是直接使用tr,那么瀏覽器會自動創建一個tbody,并且將tr全都放到tbody中,注意:tr不是table的子元素
    因此在使用關系選擇器選擇tr時要這樣:
    tbody > tr:nth-child(odd){background-color: #bfa; }

    4.表單

    表單: 在現實生活中表單用于提交數據,在網頁中也可以使用表單,網頁中的表單用于將本地的數據提交給遠程的服務器
    使用form標簽來創建一個表單、
    form的屬性
    action 表單要提交的服務器的地址
    如:

    <form action="target.html">

    文本框:

    <input type="text" name="username">

    注意:數據要提交到服務器中,必須要為元素指定一個name屬性值
    密碼框

    <input type="password" name="password">

    單選按鈕

    <input type="radio" name="hello" value="a">

    像這種選擇框,必須要指定一個value屬性,value屬性最終會作為用戶的填寫的值傳遞給服務器
    多選框

    <input type="checkbox" name="test" value="1"> <input type="checkbox" name="test" value="2"> <input type="checkbox" name="test" value="3" checked>

    注意checked表示默認選中
    下拉列表

    <select name="haha"> <option value="i">選項一</option> <option selected value="ii">選項二</option> <option value="iii">選項三</option> </select>

    selected表示默認選中
    提交按鈕

    <input type="submit" value="注冊">

    在input標簽里面
    autocomplete=“off” 關閉自動補全
    readonly 將表單項設置為只讀,數據會提交
    disabled 將表單項設置為禁用,數據不會提交
    autofocus 設置表單項自動獲取焦點
    提交按鈕

    <input type="submit">

    重置按鈕

    <input type="reset">

    普通的按鈕

    <input type="button" value="按鈕">

    未完待續…

    總結

    以上是生活随笔為你收集整理的Web工程实验的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。