前端之路——筆記(基礎(chǔ)css)


  1. 學(xué)會(huì)使用CSS選擇器
  2. 熟記CSS樣式和外觀屬性
  3. 熟練掌握CSS各種選擇器
  4. 熟練掌握CSS各種選擇器
  5. 熟練掌握CSS三種顯示模式
  6. 熟練掌握CSS背景屬性
  7. 熟練掌握CSS三大特性
  8. 熟練掌握CSS盒子模型
  9. 熟練掌握CSS浮動(dòng)
    10.熟練掌握CSS定位
    11.熟練掌握CSS高級(jí)技巧強(qiáng)化CSS
    typora-copy-images-to: media

CSS的發(fā)展歷程

從HTML被發(fā)明開始,樣式就以各種形式存在宦焦。不同的瀏覽器結(jié)合它們各自的樣式語言為用戶提供頁面效果的控制料身。最初的HTML只包含很少的顯示屬性赔硫。
隨著HTML的成長,為了滿足頁面設(shè)計(jì)者的要求骂倘,HTML添加了很多顯示功能掺涛。但是隨著這些功能的增加,HTML變的越來越雜亂匿情,而且HTML頁面也越來越臃腫兰迫。于是CSS便誕生了。

CSS 網(wǎng)頁的美容師

CSS的出現(xiàn)炬称,拯救了混亂的HTML汁果,當(dāng)讓更加拯救了我們web開發(fā)者。 讓我們的網(wǎng)頁更加豐富多彩玲躯。

CSS的最大貢獻(xiàn)就是: 讓 HTML 從樣式中解脫苦海, 實(shí)現(xiàn)了 HTML 專注去做 結(jié)構(gòu)呈現(xiàn)跷车。 而樣式交給 CSS 后棘利,你完全可以放心的早點(diǎn)洗洗睡了!

而且朽缴。浇冰。咏花。壁畸。癣朗。 CSS 做的很出色,如果JavaScript是網(wǎng)頁的魔法師或渤,那么CSS它是我們網(wǎng)頁的美容師系冗,不信,你看:

baby.jpeg

ps: 你跟Angelababy只差了一個(gè)妝容的距離

有人說薪鹦, 沒有不漂亮的女人掌敬,只有不會(huì)打扮的女人。

我想說距芬, 沒有不好看的網(wǎng)頁涝开,只有不會(huì)CSS的前端循帐。

CSS初識(shí)

CSS(Cascading Style Sheets) 美化樣式

CSS通常稱為CSS樣式表或?qū)盈B樣式表(級(jí)聯(lián)樣式表)框仔,主要用于設(shè)置HTML頁面中的文本內(nèi)容(字體、大小拄养、對(duì)齊方式等)离斩、圖片的外形(寬高银舱、邊框樣式、邊距等)以及版面的布局等外觀顯示樣式跛梗。

CSS以HTML為基礎(chǔ)寻馏,提供了豐富的功能,如字體核偿、顏色诚欠、背景的控制及整體排版等,而且還可以針對(duì)不同的瀏覽器設(shè)置不同的樣式漾岳。

引入CSS樣式表(書寫位置)

CSS可以寫到那個(gè)位置轰绵? 是不是一定寫到html文件里面呢?

內(nèi)部樣式表

內(nèi)嵌式是將CSS代碼集中寫在HTML文檔的head頭部標(biāo)簽中尼荆,并且用style標(biāo)簽定義左腔,其基本語法格式如下:

<head>
<style type="text/CSS">
    選擇器 {屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3;}
</style>
</head>

語法中,style標(biāo)簽一般位于head標(biāo)簽中title標(biāo)簽之后捅儒,也可以把他放在HTML文檔的任何地方液样。

type="text/CSS" 在html5中可以省略, 寫上也比較符合規(guī)范巧还, 所以這個(gè)地方可以寫也可以省略鞭莽。

行內(nèi)式(內(nèi)聯(lián)樣式)

內(nèi)聯(lián)樣式,又有人稱行內(nèi)樣式狞悲、行間樣式撮抓、內(nèi)嵌樣式。是通過標(biāo)簽的style屬性來設(shè)置元素的樣式摇锋,其基本語法格式如下:

<標(biāo)簽名 style="屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3;"> 內(nèi)容 </標(biāo)簽名>

語法中style是標(biāo)簽的屬性丹拯,實(shí)際上任何HTML標(biāo)簽都擁有style屬性,用來設(shè)置行內(nèi)式荸恕。其中屬性和值的書寫規(guī)范與CSS樣式規(guī)則相同乖酬,行內(nèi)式只對(duì)其所在的標(biāo)簽及嵌套在其中的子標(biāo)簽起作用。

外部樣式表(外鏈?zhǔn)剑?/h2>

鏈入式是將所有的樣式放在一個(gè)或多個(gè)以.CSS為擴(kuò)展名的外部樣式表文件中融求,通過link標(biāo)簽將外部樣式表文件鏈接到HTML文檔中咬像,其基本語法格式如下:

<head>
  <link href="CSS文件的路徑"  rel="stylesheet" />
</head>

注意: link 是個(gè)單標(biāo)簽哦!!!

該語法中,link標(biāo)簽需要放在head頭部標(biāo)簽中生宛,并且必須指定link標(biāo)簽的三個(gè)屬性县昂,具體如下:

href:定義所鏈接外部樣式表文件的URL,可以是相對(duì)路徑陷舅,也可以是絕對(duì)路徑倒彰。
type:定義所鏈接文檔的類型,在這里需要指定為“text/CSS”莱睁,表示鏈接的外部文件為CSS樣式表待讳。
rel:定義當(dāng)前文檔與被鏈接文檔之間的關(guān)系芒澜,在這里需要指定為“stylesheet”,表示被鏈接的文檔是一個(gè)樣式表文件创淡。

三種樣式表總結(jié)(位置)

樣式表 優(yōu)點(diǎn) 缺點(diǎn) 使用情況 控制范圍
行內(nèi)樣式表 書寫方便痴晦,權(quán)重高 沒有實(shí)現(xiàn)樣式和結(jié)構(gòu)相分離 較少 控制一個(gè)標(biāo)簽(少)
內(nèi)部樣式表 部分結(jié)構(gòu)和樣式相分離 沒有徹底分離 較多 控制一個(gè)頁面(中)
外部樣式表 完全實(shí)現(xiàn)結(jié)構(gòu)和樣式相分離 需要引入 最多,強(qiáng)烈推薦 控制整個(gè)站點(diǎn)(多)

CSS樣式規(guī)則

使用HTML時(shí)琳彩,需要遵從一定的規(guī)范誊酌。CSS亦如此,要想熟練地使用CSS對(duì)網(wǎng)頁進(jìn)行修飾露乏,首先需要了解CSS樣式規(guī)則术辐,具體格式如下:

gz.png
在上面的樣式規(guī)則中:

1.選擇器用于指定CSS樣式作用的HTML對(duì)象,花括號(hào)內(nèi)是對(duì)該對(duì)象設(shè)置的具體樣式施无。
2.屬性和屬性值以“鍵值對(duì)”的形式出現(xiàn)辉词。
3.屬性是對(duì)指定的對(duì)象設(shè)置的樣式屬性,例如字體大小猾骡、文本顏色等瑞躺。
4.屬性和屬性值之間用英文“:”連接。
5.多個(gè)“鍵值對(duì)”之間用英文“;”進(jìn)行區(qū)分兴想。
可以用段落 和 表格的對(duì)齊的演示幢哨。

選擇器(重點(diǎn))

要想將CSS樣式應(yīng)用于特定的HTML元素,首先需要找到該目標(biāo)元素嫂便。在CSS中捞镰,執(zhí)行這一任務(wù)的樣式規(guī)則部分被稱為選擇器(選擇符)。

<img src="media/ax.png" />

如上圖所以毙替,要把里面的小黃人分為2組岸售,最快的方法怎辦?

很多厂画, 比如 一只眼睛的一組凸丸,剩下的一組

選擇器干啥的? 選擇標(biāo)簽用的

這就用到基礎(chǔ)選擇器組:

CSS基礎(chǔ)選擇器

標(biāo)簽選擇器(元素選擇器)

標(biāo)簽選擇器是指用HTML標(biāo)簽名稱作為選擇器袱院,按標(biāo)簽名稱分類屎慢,為頁面中某一類標(biāo)簽指定統(tǒng)一的CSS樣式。其基本語法格式如下:

標(biāo)簽名{屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; }  或者
元素名{屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; }

標(biāo)簽選擇器最大的優(yōu)點(diǎn)是能快速為頁面中同類型的標(biāo)簽統(tǒng)一樣式忽洛,同時(shí)這也是他的缺點(diǎn)腻惠,不能設(shè)計(jì)差異化樣式。

標(biāo)簽選擇器 可以把某一類標(biāo)簽全部選擇出來 div span

類選擇器

類選擇器使用“.”(英文點(diǎn)號(hào))進(jìn)行標(biāo)識(shí)欲虚,后面緊跟類名集灌,其基本語法格式如下:

.類名{屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; }
 標(biāo)簽調(diào)用的時(shí)候用 class=“類名”  即可。

類選擇器最大的優(yōu)勢(shì)是可以為元素對(duì)象定義單獨(dú)或相同的樣式苍在。 可以選擇一個(gè)或者多個(gè)標(biāo)簽

<img src="media/good.png" />小技巧:

1.長名稱或詞組可以使用中橫線來為選擇器命名绝页。
2.不建議使用“_”下劃線來命名CSS選擇器。

? 輸入的時(shí)候少按一個(gè)shift鍵;
 瀏覽器兼容問題 (比如使用tips的選擇器命名寂恬,在IE6是無效的)
 能良好區(qū)分JavaScript變量命名(JS變量命名是用“
”)

3.不要純數(shù)字续誉、中文等命名, 盡量使用英文字母來表示初肉。

猜謎底游戲:

<img src="media/midi.png" width="450" /> 你猜酷鸦?

命名是我們通俗約定的,但是沒有規(guī)定必須用這些常用的命名牙咏。

go.png













<head>
        <meta charset="utf-8">
        <style>
        span {
            font-size: 100px;
        }
        .blue {
            color: blue;
        }
        .red {
            color: red;
        }
        .orange {
            color: orange;
        }
        .green {
            color: green;
        }
        </style>
    </head>
    <body>
        <span class="blue">G</span>
        <span class="red">o</span>
        <span class="orange">o</span>
        <span class="blue">g</span>
        <span class="green">l</span>
        <span class="red">e</span>
    </body>

多類名選擇器

我們可以給標(biāo)簽指定多個(gè)類名臼隔,從而達(dá)到更多的選擇目的。

<img src="media/lei.png" />

注意:

1. 樣式顯示效果跟HTML元素中的類名先后順序沒有關(guān)系,受CSS樣式書寫的上下順序有關(guān)妄壶。
2. 各個(gè)類名中間用空格隔開摔握。

多類名選擇器在后期布局比較復(fù)雜的情況下,還是較多使用的丁寄。

<div class="pink fontWeight font20">亞瑟</div>
<div class="font20">劉備</div>
<div class="font14 pink">安其拉</div>
<div class="font14">貂蟬</div>

類名選擇器 :< div class=“nav”> 這個(gè) div 的名字 就是 nav nav 就是 div 這個(gè) div 也是 nav

< 人 class = 劉德華 > 我們想要吧div 找到 div {} .nav {}

id選擇器

id選擇器使用“#”進(jìn)行標(biāo)識(shí)氨淌,后面緊跟id名,其基本語法格式如下:

#id名{屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; }

該語法中伊磺,id名即為HTML元素的id屬性值盛正,大多數(shù)HTML元素都可以定義id屬性,元素的id值是唯一的屑埋,只能對(duì)應(yīng)于文檔中某一個(gè)具體的元素豪筝。

用法基本和類選擇器相同。

id選擇器和類選擇器區(qū)別

W3C標(biāo)準(zhǔn)規(guī)定摘能,在同一個(gè)頁面內(nèi)续崖,不允許有相同名字的id對(duì)象出現(xiàn),但是允許相同名字的class团搞。

類選擇器(class) 好比人的名字袜刷, 是可以多次重復(fù)使用的, 比如 張偉 王偉 李偉 李娜

id選擇器 好比人的身份證號(hào)碼莺丑, 全中國是唯一的著蟹, 不得重復(fù)。 只能使用一次梢莽。

id選擇器和類選擇器最大的不同在于 使用次數(shù)上萧豆。

通配符選擇器

通配符 選擇器用“*”號(hào)表示,他是所有選擇器中作用范圍最廣的昏名,能匹配頁面中所有的元素涮雷。其基本語法格式如下:

* { 屬性1:屬性值1; 屬性2:屬性值2; 屬性3:屬性值3; }

例如下面的代碼,使用通配符選擇器定義CSS樣式轻局,清除所有HTML標(biāo)記的默認(rèn)邊距洪鸭。

* {
  margin: 0;                    /* 定義外邊距*/
  padding: 0;                   /* 定義內(nèi)邊距*/
}

注意:

這個(gè)通配符選擇器样刷,就像我們的電影明星中的夢(mèng)中情人, 想想它就好了览爵,但是它不會(huì)和你過日子置鼻。

CSS字體樣式屬性

font-size:字號(hào)大小

font-size屬性用于設(shè)置字號(hào),該屬性的值可以使用相對(duì)長度單位蜓竹,也可以使用絕對(duì)長度單位箕母。其中,相對(duì)長度單位比較常用俱济,推薦使用像素單位px嘶是,絕對(duì)長度單位使用較少。具體如下:

dd.png

font-family:字體

font-family屬性用于設(shè)置字體蛛碌。網(wǎng)頁中常用的字體有宋體聂喇、微軟雅黑、黑體等蔚携,例如將網(wǎng)頁中所有段落文本的字體設(shè)置為微軟雅黑蘸朋,可以使用如下CSS樣式代碼:

p{ font-family:"微軟雅黑";}

可以同時(shí)指定多個(gè)字體坤学,中間以逗號(hào)隔開有序,表示如果瀏覽器不支持第一個(gè)字體唐含,則會(huì)嘗試下一個(gè),直到找到合適的字體秕硝。

<img src="media/good.png" />常用技巧:

1. 現(xiàn)在網(wǎng)頁中普遍使用14px+芥映。
2. 盡量使用偶數(shù)的數(shù)字字號(hào)。ie6等老式瀏覽器支持奇數(shù)會(huì)有bug远豺。
3. 各種字體之間必須使用英文狀態(tài)下的逗號(hào)隔開奈偏。
4. 中文字體需要加英文狀態(tài)下的引號(hào),英文字體一般不需要加引號(hào)躯护。當(dāng)需要設(shè)置英文字體時(shí)惊来,英文字體名必須位于中文字體名之前。
5. 如果字體名中包含空格棺滞、#裁蚁、$等符號(hào),則該字體必須加英文狀態(tài)下的單引號(hào)或雙引號(hào)继准,例如font-family: "Times New Roman";枉证。
6. 盡量使用系統(tǒng)默認(rèn)字體,保證在任何用戶的瀏覽器中都能正確顯示移必。

CSS Unicode字體

在 CSS 中設(shè)置字體名稱室谚,直接寫中文是可以的。但是在文件編碼(GB2312、UTF-8 等)不匹配時(shí)會(huì)產(chǎn)生亂碼的錯(cuò)誤秒赤。xp 系統(tǒng)不支持 類似微軟雅黑的中文猪瞬。

方案一: 你可以使用英文來替代。 比如 font-family:"Microsoft Yahei"入篮。

方案二: 在 CSS 直接使用 Unicode 編碼來寫字體名稱可以避免這些錯(cuò)誤陈瘦。使用 Unicode 寫中文字體名稱,瀏覽器是可以正確的解析的崎弃。
font-family: "\5FAE\8F6F\96C5\9ED1",表示設(shè)置字體為“微軟雅黑”含潘。

shs.png

可以通過escape() 來測(cè)試屬于什么字體饲做。

字體名稱 英文名稱 Unicode 編碼
宋體 SimSun \5B8B\4F53
新宋體 NSimSun \65B0\5B8B\4F53
黑體 SimHei \9ED1\4F53
微軟雅黑 Microsoft YaHei \5FAE\8F6F\96C5\9ED1
楷體_GB2312 KaiTi_GB2312 \6977\4F53_GB2312
隸書 LiSu \96B6\4E66
幼園 YouYuan \5E7C\5706
華文細(xì)黑 STXihei \534E\6587\7EC6\9ED1
細(xì)明體 MingLiU \7EC6\660E\4F53
新細(xì)明體 PMingLiU \65B0\7EC6\660E\4F53

為了照顧不同電腦的字體安裝問題,我們盡量只使用宋體和微軟雅黑中文字體

font-weight:字體粗細(xì)

字體加粗除了用 b 和 strong 標(biāo)簽之外遏弱,可以使用CSS 來實(shí)現(xiàn)盆均,但是CSS 是沒有語義的。

font-weight屬性用于定義字體的粗細(xì)漱逸,其可用屬性值:normal泪姨、bold、bolder饰抒、lighter肮砾、100~900(100的整數(shù)倍)。

<img src="media/good.png" />小技巧:

數(shù)字 400 等價(jià)于 normal袋坑,而 700 等價(jià)于 bold仗处。  但是我們更喜歡用數(shù)字來表示。  

font-style:字體風(fēng)格

字體傾斜除了用 i 和 em 標(biāo)簽之外枣宫,可以使用CSS 來實(shí)現(xiàn)翅娶,但是CSS 是沒有語義的胯府。

font-style屬性用于定義字體風(fēng)格十减,如設(shè)置斜體、傾斜或正常字體帮辟,其可用屬性值如下:

normal:默認(rèn)值速址,瀏覽器會(huì)顯示標(biāo)準(zhǔn)的字體樣式。

italic:瀏覽器會(huì)顯示斜體的字體樣式由驹。

oblique:瀏覽器會(huì)顯示傾斜的字體樣式芍锚。

<img src="media/good.png" />小技巧:

平時(shí)我們很少給文字加斜體,反而喜歡給斜體標(biāo)簽(em,i)改為普通模式并炮。

font:綜合設(shè)置字體樣式 (重點(diǎn))

font屬性用于對(duì)字體樣式進(jìn)行綜合設(shè)置默刚,其基本語法格式如下:

選擇器{font: font-style  font-weight  font-size/line-height  font-family;}
使用font屬性時(shí),必須按上面語法格式中的順序書寫逃魄,不能更換順序荤西,各個(gè)屬性以空格隔開。

注意:其中不需要設(shè)置的屬性可以省略(取默認(rèn)值)伍俘,但必須保留font-size和font-family屬性邪锌,否則font屬性將不起作用。

CSS外觀屬性

color:文本顏色

color屬性用于定義文本的顏色癌瘾,其取值方式有如下3種:

1.預(yù)定義的顏色值觅丰,如red,green柳弄,blue等舶胀。

2.十六進(jìn)制概说,如#FF0000碧注,#FF6600,#29D794等糖赔。實(shí)際工作中萍丐,十六進(jìn)制是最常用的定義顏色的方式。

3.RGB代碼放典,如紅色可以表示為rgb(255,0,0)或rgb(100%,0%,0%)逝变。

需要注意的是,如果使用RGB代碼的百分比顏色值奋构,取值為0時(shí)也不能省略百分號(hào)壳影,必須寫為0%。

line-height:行間距

ine-height屬性用于設(shè)置行間距弥臼,就是行與行之間的距離宴咧,即字符的垂直間距,一般稱為行高径缅。line-height常用的屬性值單位有三種掺栅,分別為像素px,相對(duì)值em和百分比%纳猪,實(shí)際工作中使用最多的是像素px

一般情況下氧卧,行距比字號(hào)大7.8像素左右就可以了。

text-align:水平對(duì)齊方式

text-align屬性用于設(shè)置文本內(nèi)容的水平對(duì)齊氏堤,相當(dāng)于html中的align對(duì)齊屬性沙绝。其可用屬性值如下:

left:左對(duì)齊(默認(rèn)值)

right:右對(duì)齊

center:居中對(duì)齊

是讓盒子里面的內(nèi)容水平居中, 而不是讓盒子居中對(duì)齊

text-indent:首行縮進(jìn)

text-indent屬性用于設(shè)置首行文本的縮進(jìn),其屬性值可為不同單位的數(shù)值宿饱、em字符寬度的倍數(shù)熏瞄、或相對(duì)于瀏覽器窗口寬度的百分比%,允許使用負(fù)值, 建議使用em作為設(shè)置單位谬以。

1em 就是一個(gè)字的寬度 如果是漢字的段落强饮, 1em 就是一個(gè)漢字的寬度

text-decoration 文本的裝飾

text-decoration 通常我們用于給鏈接修改裝飾效果

描述
none 默認(rèn)。定義標(biāo)準(zhǔn)的文本为黎。
underline 定義文本下的一條線邮丰。下劃線 也是我們鏈接自帶的
overline 定義文本上的一條線。
line-through 定義穿過文本下的一條線铭乾。

開發(fā)者工具(chrome)

此工具是我們的必備工具剪廉,以后代碼出了問題,我們首先第一反應(yīng)就是:

“按F12”或者是 “shift+ctrl+i” 打開 開發(fā)者工具炕檩。

菜單: 右擊網(wǎng)頁空白出---查看

小技巧:

  1. ctrl+滾輪 可以 放大開發(fā)者工具代碼大小斗蒋。
  2. 左邊是HTML元素結(jié)構(gòu) 右邊是CSS樣式。
  3. 右邊CSS樣式可以改動(dòng)數(shù)值和顏色查看更改后效果笛质。

CSS復(fù)合選擇器

復(fù)合選擇器是由兩個(gè)或多個(gè)基礎(chǔ)選擇器泉沾,通過不同的方式組合而成的,目的是為了可以選擇更準(zhǔn)確更精細(xì)的目標(biāo)元素標(biāo)簽。

交集選擇器

交集選擇器由兩個(gè)選擇器構(gòu)成妇押,其中第一個(gè)為標(biāo)簽選擇器跷究,第二個(gè)為class選擇器,兩個(gè)選擇器之間不能有空格敲霍,如h3.special俊马。

jiao.png

記憶技巧:

交集選擇器 是 并且的意思。 即...又...的意思

比如:   p.one   選擇的是: 類名為 .one  的 段落標(biāo)簽肩杈。  

用的相對(duì)來說比較少柴我,不太建議使用。

并集選擇器

并集選擇器(CSS選擇器分組)是各個(gè)選擇器通過<strong style="color:#f00">逗號(hào)</strong>連接而成的扩然,任何形式的選擇器(包括標(biāo)簽選擇器艘儒、class類選擇器id選擇器等),都可以作為并集選擇器的一部分与学。如果某些選擇器定義的樣式完全相同彤悔,或部分相同,就可以利用并集選擇器為它們定義相同的CSS樣式索守。

bing.png

記憶技巧:

并集選擇器 和 的意思晕窑, 就是說,只要逗號(hào)隔開的卵佛,所有選擇器都會(huì)執(zhí)行后面樣式杨赤。

比如  .one, p , #test {color: #F00;}  表示   .one 和 p  和 #test 這三個(gè)選擇器都會(huì)執(zhí)行顏色為紅色敞斋。  通常用于集體聲明。

<img src="media/hu.gif" /> 他和他疾牲,在一起植捎, 在一起 一起的意思

后代選擇器

后代選擇器又稱為包含選擇器,用來選擇元素或元素組的后代阳柔,其寫法就是把外層標(biāo)簽寫在前面焰枢,內(nèi)層標(biāo)簽寫在后面,中間用空格分隔舌剂。當(dāng)標(biāo)簽發(fā)生嵌套時(shí)济锄,內(nèi)層標(biāo)簽就成為外層標(biāo)簽的后代。

hou.png

子孫后代都可以這么選擇霍转。 或者說荐绝,它能選擇任何包含在內(nèi) 的標(biāo)簽。

<img src="media/li.png" />

子元素選擇器

子元素選擇器只能選擇作為某元素子元素的元素避消。其寫法就是把父級(jí)標(biāo)簽寫在前面低滩,子級(jí)標(biāo)簽寫在后面,中間跟一個(gè) > 進(jìn)行連接岩喷,注意恕沫,符號(hào)左右兩側(cè)各保留一個(gè)空格。

zi1.png

白話: 這里的子 指的是 親兒子 不包含孫子 重孫子之類均驶。

 比如:  .demo > h3 {color: red;}   說明  h3 一定是demo 親兒子昏兆。  demo 元素包含著h3枫虏。

<img src="media/san.jpg" />

測(cè)試題

<div class="nav">    <!-- 主導(dǎo)航欄 -->
  <ul>
    <li><a href="#">公司首頁</a></li>
    <li><a href="#">公司簡(jiǎn)介</a></li>
    <li><a href="#">公司產(chǎn)品</a></li>
    <li>
         <a href="#">聯(lián)系我們</a>
         <ul>
                    <li><a href="#">公司郵箱</a></li>
                    <li><a href="#">公司電話</a></li>
         </ul>
    </li>
  </ul>
</div>
<div class="sitenav">    <!-- 側(cè)導(dǎo)航欄 -->
  <div class="site-l">左側(cè)側(cè)導(dǎo)航欄</div>
  <div class="site-r"><a href="#">登錄</a></div>
</div>

在不修改以上代碼的前提下淋叶,完成以下任務(wù):

  1. 鏈接 登錄 的顏色為紅色,同時(shí)主導(dǎo)航欄里面的所有的鏈接改為橙色 (簡(jiǎn)單)
  2. 主導(dǎo)航欄和側(cè)導(dǎo)航欄里面文字都是14像素并且是微軟雅黑因惭。(中等)
  3. 主導(dǎo)航欄里面的一級(jí)菜單鏈接文字顏色為綠色。(難)

偽類選擇器

偽類選擇器用于向某些選擇器添加特殊的效果。比如給鏈接添加特殊效果报亩, 比如可以選擇 第1個(gè),第n個(gè)元素推励。

偽娘

類 .one

偽類 :link

為了和我們剛才學(xué)的類選擇器相區(qū)別父晶,  類選擇器是一個(gè)點(diǎn) 比如 .demo {}   而我們的偽類 用 2個(gè)點(diǎn) 就是 冒號(hào)  比如  :link{}

鏈接偽類選擇器

  • :link /* 未訪問的鏈接 */
  • :visited /* 已訪問的鏈接 */
  • :hover /* 鼠標(biāo)移動(dòng)到鏈接上 */
  • :active /* 選定的鏈接 */

注意寫的時(shí)候,他們的順序盡量不要顛倒 按照 lvha 的順序赞警。 love hate 愛上了討厭 記憶法 或者 lv 包包 非常 hao

a {   /* a是標(biāo)簽選擇器  所有的鏈接 */
            font-weight: 700;
            font-size: 16px;
            color: gray;
        }
a:hover {   /* :hover 是鏈接偽類選擇器 鼠標(biāo)經(jīng)過 */
            color: red; /*  鼠標(biāo)經(jīng)過的時(shí)候妓忍,由原來的 灰色 變成了紅色 */
}

CSS注釋

CSS規(guī)則是使用     /*  需要注釋的內(nèi)容  */  進(jìn)行注釋的,即在需要注釋的內(nèi)容前使用 “/*” 標(biāo)記開始注釋愧旦,在內(nèi)容的結(jié)尾使用 “*/”結(jié)束世剖。

例如:

p {
  font-size: 14px;                 /* 所有的字體是14像素大小*/
}

sublime快捷方式

sublime可以快速提高我們代碼的書寫方式

  1. 生成標(biāo)簽 直接輸入標(biāo)簽名 按tab鍵即可 比如 div 然后tab 鍵, 就可以生成 <div></div>

  2. 如果想要生成多個(gè)相同標(biāo)簽 加上 * 就可以了 比如 div*3 就可以快速生成3個(gè)div

  3. 如果有父子級(jí)關(guān)系的標(biāo)簽笤虫,可以用 > 比如 ul > li就可以了

  4. 如果有兄弟關(guān)系的標(biāo)簽旁瘫,用 + 就可以了 比如 div+p

  5. 如果生成帶有類名或者id名字的祖凫, 直接寫 .demo 或者 #two tab 鍵就可以了

    ?

標(biāo)簽顯示模式(display)

非洲黑人: 皮膚內(nèi)黑色素含量高,以吸收陽光中的紫外線酬凳,保護(hù)皮膚內(nèi)部結(jié)構(gòu)免遭損害惠况,頭發(fā)象羊毛一樣卷曲,使每根卷發(fā)周圍都有許多空隙宁仔,空隙充滿空氣稠屠,卷發(fā)有隔熱作用。

歐洲白人: 生活寒帶或著是說常年溫度較低的地緣,加上年日照時(shí)間少翎苫,身體的黑色素沉淀比較少``所以出現(xiàn)皮膚完箩、發(fā)色、瞳暈都呈現(xiàn)淺色

傳智黃人: 我中間的拉队。弊知。。 <img src="media/h.jpg" alt="" />

最重要的總結(jié): 是為了更好的適應(yīng)環(huán)境而完成的自然選擇粱快。

同理秩彤,我們網(wǎng)頁的標(biāo)簽非常多,再不同地方會(huì)用到不同類型的標(biāo)簽事哭,以便更好的完成我們的網(wǎng)頁漫雷。

標(biāo)簽的類型(顯示模式)

HTML標(biāo)簽一般分為塊標(biāo)簽和行內(nèi)標(biāo)簽兩種類型,它們也稱塊元素和行內(nèi)元素鳍咱。具體如下:

塊級(jí)元素(block-level)

每個(gè)塊元素通常都會(huì)獨(dú)自占據(jù)一整行或多整行降盹,可以對(duì)其設(shè)置寬度、高度谤辜、對(duì)齊等屬性蓄坏,常用于網(wǎng)頁布局和網(wǎng)頁結(jié)構(gòu)的搭建。 霸道

常見的塊元素有<h1>~<h6>丑念、<p>涡戳、<div>、<ul>脯倚、<ol>渔彰、<li>等推正,其中<div>標(biāo)簽是最典型的塊元素恍涂。
xtf.jpg

塊級(jí)元素的特點(diǎn):

(1)總是從新行開始

(2)高度,行高植榕、外邊距以及內(nèi)邊距都可以控制再沧。

(3)寬度默認(rèn)是容器的100%

(4)可以容納內(nèi)聯(lián)元素和其他塊元素。

行內(nèi)元素(inline-level)

行內(nèi)元素(內(nèi)聯(lián)元素)不占有獨(dú)立的區(qū)域内贮,僅僅靠自身的字體大小和圖像尺寸來支撐結(jié)構(gòu)产园,一般不可以設(shè)置寬度汞斧、高度、對(duì)齊等屬性什燕,常用于控制頁面中文本的樣式粘勒。

常見的行內(nèi)元素有<a>、<strong>屎即、<b>庙睡、<em>、<i>技俐、<del>乘陪、<s>、<ins>雕擂、<u>啡邑、<span>等,其中<span>標(biāo)簽最典型的行內(nèi)元素井赌。

<img src="media/wf.jpg" /> 我一樣重要

行內(nèi)元素的特點(diǎn):

(1)和相鄰行內(nèi)元素在一行上谤逼。

(2)高、寬無效仇穗,但水平方向的padding和margin可以設(shè)置流部,垂直方向的無效。

(3)默認(rèn)寬度就是它本身內(nèi)容的寬度纹坐。

(4)行內(nèi)元素只能容納文本或則其他行內(nèi)元素枝冀。(a特殊 a里面可以放塊級(jí)元素 )

<img src="media/w.jpg" /> 注意:

  1. 只有 文字才 能組成段落 因此 p 里面不能放塊級(jí)元素,同理還有這些標(biāo)簽h1,h2,h3,h4,h5,h6,dt耘子,他們都是文字類塊級(jí)標(biāo)簽果漾,里面不能放其他塊級(jí)元素。
  2. 鏈接里面不能再放鏈接拴还。
  3. a里面可以放塊級(jí)元素

塊級(jí)元素和行內(nèi)元素區(qū)別

塊級(jí)元素的特點(diǎn):
(1)總是從新行開始
(2)高度跨晴,行高欧聘、外邊距以及內(nèi)邊距都可以控制片林。
(3)寬度默認(rèn)是容器的100%
(4)可以容納內(nèi)聯(lián)元素和其他塊元素。
行內(nèi)元素的特點(diǎn):
(1)和相鄰行內(nèi)元素在一行上怀骤。
(2)高费封、寬無效,但水平方向的padding和margin可以設(shè)置蒋伦,垂直方向的無效弓摘。
(3)默認(rèn)寬度就是它本身內(nèi)容的寬度。
(4)行內(nèi)元素只能容納文本或則其他行內(nèi)元素痕届。

行內(nèi)塊元素(inline-block)

在行內(nèi)元素中有幾個(gè)特殊的標(biāo)簽——<img />韧献、<input />末患、<td>,可以對(duì)它們?cè)O(shè)置寬高和對(duì)齊屬性锤窑,有些資料可能會(huì)稱它們?yōu)樾袃?nèi)塊元素璧针。

行內(nèi)塊元素的特點(diǎn):
(1)和相鄰行內(nèi)元素(行內(nèi)塊)在一行上,但是之間會(huì)有空白縫隙。
(2)默認(rèn)寬度就是它本身內(nèi)容的寬度渊啰。
(3)高度探橱,行高、外邊距以及內(nèi)邊距都可以控制绘证。

<img src="media/lyc.jpg" width="400" />

標(biāo)簽顯示模式轉(zhuǎn)換 display

塊轉(zhuǎn)行內(nèi):display:inline;

行內(nèi)轉(zhuǎn)塊:display:block;

塊隧膏、行內(nèi)元素轉(zhuǎn)換為行內(nèi)塊: display: inline-block;

此階段,我們只需關(guān)心這三個(gè)嚷那,其他的是我們后面的工作胞枕。

課堂練習(xí)

1.寫 三個(gè) div 給定 100 * 100 的紅色盒子 -- 寬度 高度 背景色

2.三個(gè) span 也要求 150 * 150 綠色盒子

  1. 三個(gè) a 鏈接 80 * 20 藍(lán)色 盒子 要求 必須一行顯示 這三個(gè)盒子
  2. 鼠標(biāo)經(jīng)過3個(gè)a鏈接的時(shí)候, 背景顏色變?yōu)? 橙色 hover bgc
  3. 導(dǎo)航欄案例

CSS書寫規(guī)范

開始就形成良好的書寫規(guī)范魏宽,是你專業(yè)化的開始曲稼。

空格規(guī)范

【強(qiáng)制】 選擇器 與 { 之間必須包含空格。

示例: .selector { }

【強(qiáng)制】 屬性名 與之后的 : 之間不允許包含空格湖员, : 與 屬性值 之間必須包含空格贫悄。

示例:

font-size: 12px;

選擇器規(guī)范

【強(qiáng)制】 當(dāng)一個(gè) rule 包含多個(gè) selector 時(shí),每個(gè)選擇器聲明必須獨(dú)占一行娘摔。

示例:

/* good */
.post,
.page,
.comment {
    line-height: 1.5;
}


/* bad */
.post, .page, .comment {
    line-height: 1.5;
}

【建議】 選擇器的嵌套層級(jí)應(yīng)不大于 3 級(jí)窄坦,位置靠后的限定條件應(yīng)盡可能精確。

示例:

/* good */
#username input {}
.comment .avatar {}

/* bad */
.page .header .login #username input {}
.comment div * {}

屬性規(guī)范

【強(qiáng)制】 屬性定義必須另起一行凳寺。

示例:

/* good */
.selector {
    margin: 0;
    padding: 0;
}

/* bad */
.selector { margin: 0; padding: 0; }

【強(qiáng)制】 屬性定義后必須以分號(hào)結(jié)尾鸭津。

示例:

/* good */
.selector {
    margin: 0;
}

/* bad */
.selector {
    margin: 0
}

行高的測(cè)量

[圖片上傳中...(line2.png-1d0402-1527492744983-0)]

![![1.png](https://upload-images.jianshu.io/upload_images/12408279-8fbd2997a9b52b26.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ](https://upload-images.jianshu.io/upload_images/12408279-773f59e374d66bea.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

行高我們利用最多的一個(gè)地方是: 可以讓一行文本在盒子中垂直居中對(duì)齊。

做法就是: 文字的行高等于盒子的高度肠缨。

這里情況些許復(fù)雜逆趋,開始學(xué)習(xí),我們可以先從簡(jiǎn)單地方入手學(xué)會(huì)晒奕。

1.png

上距離和下距離總是相等的闻书,因此文字看上去是垂直居中的。

如果 行高 等 height 高度 文字會(huì) 垂直居中

如果行高 大于 高度 文字會(huì) 偏下

如果行高小于高度 文字會(huì) 偏上

CSS 三大特性

層疊 繼承 優(yōu)先級(jí) 是我們學(xué)習(xí)CSS 必須掌握的三個(gè)特性脑慧。

CSS層疊性

所謂層疊性是指多種CSS樣式的疊加魄眉。

是瀏覽器處理沖突的一個(gè)能力,如果一個(gè)屬性通過兩個(gè)相同選擇器設(shè)置到同一個(gè)元素上,那么這個(gè)時(shí)候一個(gè)屬性就會(huì)將另一個(gè)屬性層疊掉

比如先給某個(gè)標(biāo)簽指定了內(nèi)部文字顏色為紅色闷袒,接著又指定了顏色為藍(lán)色坑律,此時(shí)出現(xiàn)一個(gè)標(biāo)簽指定了相同樣式不同值的情況,這就是樣式?jīng)_突囊骤。 就近原則

一般情況下晃择,如果出現(xiàn)樣式?jīng)_突冀值,則會(huì)按照CSS書寫的順序,以最后的樣式為準(zhǔn)宫屠。

  1. 樣式?jīng)_突池摧,遵循的原則是就近原則。 那個(gè)樣式離著結(jié)構(gòu)近激况,就執(zhí)行那個(gè)樣式作彤。
  2. 樣式不沖突,不會(huì)層疊
CSS最后的執(zhí)行口訣:  長江后浪推前浪乌逐,前浪死在沙灘上竭讳。

<img src="media/hai.gif" width="600" height="400" />

CSS繼承性

所謂繼承性是指書寫CSS樣式表時(shí),子標(biāo)簽會(huì)繼承父標(biāo)簽的某些樣式浙踢,如文本顏色和字號(hào)绢慢。想要設(shè)置一個(gè)可繼承的屬性,只需將它應(yīng)用于父元素即可洛波。

簡(jiǎn)單的理解就是: 子承父業(yè)胰舆。

CSS最后的執(zhí)行口訣:  龍生龍,鳳生鳳蹬挤,老鼠生的孩子會(huì)打洞缚窿。

<img src="media/shu.gif" />

注意:

恰當(dāng)?shù)厥褂美^承可以簡(jiǎn)化代碼,降低CSS樣式的復(fù)雜性焰扳。子元素可以繼承父元素的樣式(text-倦零,font-,line-這些元素開頭的都可以繼承吨悍,以及color屬性)

CSS優(yōu)先級(jí)

定義CSS樣式時(shí)扫茅,經(jīng)常出現(xiàn)兩個(gè)或更多規(guī)則應(yīng)用在同一元素上,這時(shí)就會(huì)出現(xiàn)優(yōu)先級(jí)的問題育瓜。

在考慮權(quán)重時(shí)葫隙,初學(xué)者還需要注意一些特殊的情況咳燕,具體如下:

繼承樣式的權(quán)重為0阎曹。即在嵌套結(jié)構(gòu)中,不管父元素樣式的權(quán)重多大雷滚,被子元素繼承時(shí)钙态,他的權(quán)重都為0慧起,也就是說子元素定義的樣式會(huì)覆蓋繼承來的樣式。

行內(nèi)樣式優(yōu)先册倒。應(yīng)用style屬性的元素,其行內(nèi)樣式的權(quán)重非常高磺送,可以理解為遠(yuǎn)大于100驻子〔右猓總之,他擁有比上面提高的選擇器都大的優(yōu)先級(jí)崇呵。

權(quán)重相同時(shí)缤剧,CSS遵循就近原則。也就是說靠近元素的樣式具有最大的優(yōu)先級(jí)域慷,或者說排在最后的樣式優(yōu)先級(jí)最大荒辕。

CSS定義了一個(gè)!important命令,該命令被賦予最大的優(yōu)先級(jí)犹褒。也就是說不管權(quán)重如何以及樣式位置的遠(yuǎn)近抵窒,!important都具有最大優(yōu)先級(jí)。

CSS特殊性(Specificity)

關(guān)于CSS權(quán)重叠骑,我們需要一套計(jì)算公式來去計(jì)算李皇,這個(gè)就是 CSS Specificity,我們稱為CSS 特性或稱非凡性宙枷,它是一個(gè)衡量CSS值優(yōu)先級(jí)的一個(gè)標(biāo)準(zhǔn) 具體規(guī)范入如下:

specificity用一個(gè)四位的數(shù) 字串(CSS2是三位)來表示掉房,更像四個(gè)級(jí)別,值從左到右慰丛,左面的最大卓囚,一級(jí)大于一級(jí),數(shù)位之間沒有進(jìn)制诅病,級(jí)別之間不可超越捍岳。

繼承或者* 的貢獻(xiàn)值 0,0,0,0
每個(gè)元素(標(biāo)簽)貢獻(xiàn)值為 0,0,0,1
每個(gè)類,偽類貢獻(xiàn)值為 0,0,1,0
每個(gè)ID貢獻(xiàn)值為 0,1,0,0
每個(gè)行內(nèi)樣式貢獻(xiàn)值 1,0,0,0
每個(gè)!important貢獻(xiàn)值 重要的 ∞ 無窮大

權(quán)重是可以疊加的

比如的例子:

div ul  li   ------>      0,0,0,3

.nav ul li   ------>      0,0,1,2

a:hover      -----—>      0,0,1,1

.nav a       ------>      0,0,1,1   

#nav p       ----->       0,1,0,1

?

?

<img src="media/w.jpg" /> 注意:

1.數(shù)位之間沒有進(jìn)制 比如說: 0,0,0,5 + 0,0,0,5 =0,0,0,10 而不是 0,0, 1, 0睬隶, 所以不會(huì)存在10個(gè)div能趕上一個(gè)類選擇器的情況锣夹。

  1. 繼承的 權(quán)重是 0

總結(jié)優(yōu)先級(jí):

  1. 使用了 !important聲明的規(guī)則。
  2. 內(nèi)嵌在 HTML 元素的 style屬性里面的聲明苏潜。
  3. 使用了 ID 選擇器的規(guī)則银萍。
  4. 使用了類選擇器、屬性選擇器恤左、偽元素和偽類選擇器的規(guī)則贴唇。
  5. 使用了元素選擇器的規(guī)則。
  6. 只包含一個(gè)通用選擇器的規(guī)則飞袋。
  7. 同一類選擇器則遵循就近原則戳气。
總結(jié):權(quán)重是優(yōu)先級(jí)的算法,層疊是優(yōu)先級(jí)的表現(xiàn)

CSS 背景(background)

CSS 可以添加背景顏色和背景圖片巧鸭,以及來進(jìn)行圖片設(shè)置瓶您。

background-color 背景顏色
background-image 背景圖片地址
background-repeat 是否平鋪
background-position 背景位置
background-attachment 背景固定還是滾動(dòng)
背景的合寫(復(fù)合屬性)
background:背景顏色 背景圖片地址 背景平鋪 背景滾動(dòng) 背景位置

背景圖片(image)

語法:

background-image : none | url (url) 

參數(shù):

none :  無背景圖(默認(rèn)的)
url :  使用絕對(duì)或相對(duì)地址指定背景圖像

background-image 屬性允許指定一個(gè)圖片展示在背景中(只有CSS3才可以多背景)可以和 background-color 連用。 如果圖片不重復(fù)地話,圖片覆蓋不到地地方都會(huì)被背景色填充呀袱。 如果有背景圖片平鋪贸毕,則會(huì)覆蓋背景顏色。

小技巧: 我們提倡 背景圖片后面的地址夜赵,url不要加引號(hào)明棍。

背景平鋪(repeat)

語法:

background-repeat : repeat | no-repeat | repeat-x | repeat-y 

參數(shù):

repeat :  背景圖像在縱向和橫向上平鋪(默認(rèn)的)

no-repeat :  背景圖像不平鋪

repeat-x :  背景圖像在橫向上平鋪

repeat-y :  背景圖像在縱向平鋪

設(shè)置背景圖片時(shí),默認(rèn)把圖片在水平和垂直方向平鋪以鋪滿整個(gè)元素寇僧。

repeat-x :  背景圖像在橫向上平鋪

repeat-y :  背景圖像在縱向平鋪

<img src="media/y.png" width="600"/>

設(shè)置背景圖片時(shí)摊腋,默認(rèn)把圖片在水平和垂直方向平鋪以鋪滿整個(gè)元素。

<img src="media/q.png" width="600"/>

背景位置(position)

語法:

background-position : length || length

background-position : position || position 

參數(shù):

length :  百分?jǐn)?shù) | 由浮點(diǎn)數(shù)字和單位標(biāo)識(shí)符組成的長度值嘁傀。請(qǐng)參閱長度單位
position :  top | center | bottom | left | center | right

說明:

設(shè)置或檢索對(duì)象的背景圖像位置兴蒸。必須先指定background-image屬性。默認(rèn)值為:(0% 0%)心包。
如果只指定了一個(gè)值类咧,該值將用于橫坐標(biāo)⌒诽冢縱坐標(biāo)將默認(rèn)為50%痕惋。第二個(gè)值將用于縱坐標(biāo)。

注意:

  1. position 后面是x坐標(biāo)和y坐標(biāo)娃殖。 可以使用方位名詞或者 精確單位值戳。
  2. 如果和精確單位和方位名字混合使用,則必須是x坐標(biāo)在前炉爆,y坐標(biāo)后面堕虹。比如 background-position: 15px top; 則 15px 一定是 x坐標(biāo) top是 y坐標(biāo)。

實(shí)際工作用的最多的芬首,就是背景圖片居中對(duì)齊了赴捞。

背景附著

語法:

background-attachment : scroll | fixed 

參數(shù):

scroll :  背景圖像是隨對(duì)象內(nèi)容滾動(dòng)
fixed :  背景圖像固定

說明:

設(shè)置或檢索背景圖像是隨對(duì)象內(nèi)容滾動(dòng)還是固定的。

背景簡(jiǎn)寫

background屬性的值的書寫順序官方并沒有強(qiáng)制標(biāo)準(zhǔn)的郁稍。為了可讀性赦政,建議大家如下寫:

background:背景顏色 背景圖片地址 背景平鋪 背景滾動(dòng) 背景位置

background: transparent url(image.jpg) repeat-y  scroll 50% 0 ;

背景透明(CSS3)

CSS3支持背景半透明的寫法語法格式是:

background: rgba(0,0,0,0.3);

最后一個(gè)參數(shù)是alpha 透明度 取值范圍 0~1之間

注意: 背景半透明是指盒子背景半透明, 盒子里面的內(nèi)容不收影響耀怜。

導(dǎo)航欄案例

使用技巧:在一行內(nèi)的盒子內(nèi)恢着,我們?cè)O(shè)定行高等于盒子的高度,就可以使文字垂直居中财破。

<head>
        <meta charset="utf-8">
        <style>
        body {
            background-color: #000;
        }
        a {
            width: 200px;
            height: 50px;
            /* background-color: orange; */
            display: inline-block;  /* 把a(bǔ) 行內(nèi)元素轉(zhuǎn)換為行內(nèi)塊元素 */
            text-align: center;  /* 文字水平居中 */
            line-height: 50px;  /* 我們?cè)O(shè)定行高等于盒子的高度掰派,就可以使文字垂直居中 */
            color: #fff;
            font-size: 22px;
            text-decoration: none;  /* 取消下劃線 文本裝飾 */
        }
        a:hover {  /* 鼠標(biāo)經(jīng)過 給我們的鏈接添加背景圖片*/
            background: url(images/h.png) no-repeat; 
        }
        </style>
    </head>
    <body>
    <a href="#">專區(qū)說明</a>
    <a href="#">申請(qǐng)資格</a>
    <a href="#">兌換獎(jiǎng)勵(lì)</a>
    <a href="#">下載游戲</a>
    </body>

盒子模型(CSS重點(diǎn))

其實(shí),CSS就三個(gè)大模塊: 盒子模型 左痢、 浮動(dòng) 靡羡、 定位系洛,其余的都是細(xì)節(jié)。要求這三部分亿眠,無論如何也要學(xué)的非常精通碎罚。

所謂盒子模型就是把HTML頁面中的元素看作是一個(gè)矩形的盒子磅废,也就是一個(gè)盛裝內(nèi)容的容器纳像。每個(gè)矩形都由元素的內(nèi)容、內(nèi)邊距(padding)拯勉、邊框(border)和外邊距(margin)組成竟趾。

看透網(wǎng)頁布局的本質(zhì)

網(wǎng)頁布局中,我們是如何把里面的文字宫峦,圖片岔帽,按照美工給我們的效果圖排列的整齊有序呢?


t.jpg
m.jpg

我們說過导绷,行內(nèi)元素比如 文字 類似牛奶犀勒,也需要一個(gè)盒子把他們裝起來,我們前面學(xué)過的雙標(biāo)簽都是一個(gè)盒子妥曲。有了盒子贾费,我們就可以隨意的,自由的檐盟,擺放位置了褂萧。

看透網(wǎng)頁布局的本質(zhì): 把網(wǎng)頁元素比如文字圖片等等,放入盒子里面葵萎,然后利用CSS擺放盒子的過程导犹,就是網(wǎng)頁布局。

1.png

CSS 其實(shí)沒有太多邏輯可言 羡忘, 類似我們小時(shí)候玩的積木,我們可以自由的谎痢,隨意的擺放出我們想要的效果。

<img src="media/j.jpg" width="300" />

盒子模型(Box Model)

這里略過 老舊的ie盒子模型(IE6以下)卷雕,對(duì)不起节猿,我都沒見過IE5的瀏覽器。

首先爽蝴,我們來看一張圖沐批,來體會(huì)下什么是盒子模型。

box.png

所有的文檔元素(標(biāo)簽)都會(huì)生成一個(gè)矩形框蝎亚,我們成為元素框(element box)九孩,它描述了一個(gè)文檔元素再網(wǎng)頁布局匯總所占的位置大小。因此发框,<strong style="color: #f00;">每個(gè)盒子除了有自己大小和位置外躺彬,還影響著其他盒子的大小和位置。</strong>

boxs.png

盒子邊框(border)

邊框就是那層皮。 橘子皮宪拥。仿野。柚子皮。她君。橙子皮脚作。。缔刹。

語法:

border : border-width || border-style || border-color 

邊框?qū)傩浴O(shè)置邊框樣式(border-style)

邊框樣式用于定義頁面中邊框的風(fēng)格球涛,常用屬性值如下:

none:沒有邊框即忽略所有邊框的寬度(默認(rèn)值)

solid:邊框?yàn)閱螌?shí)線(最為常用的)

dashed:邊框?yàn)樘摼€  

dotted:邊框?yàn)辄c(diǎn)線

double:邊框?yàn)殡p實(shí)線

盒子邊框?qū)懛偨Y(jié)表

設(shè)置內(nèi)容 樣式屬性 常用屬性值
上邊框 border-top-style:樣式; border-top-width:寬度;border-top-color:顏色;border-top:寬度 樣式 顏色;
下邊框 border-bottom-style:樣式;border- bottom-width:寬度;border- bottom-color:顏色;border-bottom:寬度 樣式 顏色;
左邊框 border-left-style:樣式; border-left-width:寬度;border-left-color:顏色;border-left:寬度 樣式 顏色;
右邊框 border-right-style:樣式;border-right-width:寬度;border-right-color:顏色;border-right:寬度 樣式 顏色;
樣式綜合設(shè)置 border-style:上邊 [右邊 下邊 左邊]; none無(默認(rèn))、solid單實(shí)線校镐、dashed虛線亿扁、dotted點(diǎn)線、double雙實(shí)線
寬度綜合設(shè)置 border-width:上邊 [右邊 下邊 左邊]; 像素值
顏色綜合設(shè)置 border-color:上邊 [右邊 下邊 左邊]; 顏色值鸟廓、#十六進(jìn)制从祝、rgb(r,g,b)、rgb(r%,g%,b%)
邊框綜合設(shè)置 border:四邊寬度 四邊樣式 四邊顏色;
    border-top: 1px solid red; /*上邊框*/
    border-bottom: 2px solid green; /*下邊框*/
    border-left: 1px solid blue;
    border-right: 5px solid pink;
    
    border: 1px solid red;

表格的細(xì)線邊框

以前學(xué)過的html表格邊框很粗引谜,這里只需要CSS一句話就可以美觀起來牍陌。 讓我們真的相信,CSS就是我們的白馬王子(白雪公主)煌张。

table{ border-collapse:collapse; } collapse 單詞是合并的意思

border-collapse:collapse; 表示相鄰邊框合并在一起呐赡。

內(nèi)邊距(padding)

padding屬性用于設(shè)置內(nèi)邊距。 是指 邊框與內(nèi)容之間的距離骏融。

padding-top:上內(nèi)邊距

padding-right:右內(nèi)邊距

padding-bottom:下內(nèi)邊距

padding-left:左內(nèi)邊距

<img src="media/w.jpg"/>注意: 后面跟幾個(gè)數(shù)值表示的意思是不一樣的链嘀。

值的個(gè)數(shù) 表達(dá)意思
1個(gè)值 padding:上下左右邊距 比如padding: 3px; 表示上下左右都是3像素
2個(gè)值 padding: 上下邊距 左右邊距 比如 padding: 3px 5px; 表示 上下3像素 左右 5像素
3個(gè)值 padding:上邊距 左右邊距 下邊距 比如 padding: 3px 5px 10px; 表示 上是3像素 左右是5像素 下是10像素
4個(gè)值 padding:上內(nèi)邊距 右內(nèi)邊距 下內(nèi)邊距 左內(nèi)邊距 比如: padding: 3px 5px 10px 15px; 表示 上3px 右是5px 下 10px 左15px 順時(shí)針

課堂案例: 新浪導(dǎo)航

<img src="media/al.gif" />

關(guān)于盒子寬度下列正確的是()

(A) 盒子寬:就是width的大小

(B) 盒子寬: padding-left + width + padding-right

(C) 盒子寬: border-left + width + border-right

(D) 盒子寬: border-left+ padding-left + width + padding-right + border-right

w 100 padding 10 border 5 ? 實(shí)際大小 ? 130

3關(guān)于盒子高度下列正確的是()

(A) 盒子高:就是height的大小

(B) 盒子高:padding-top +height + padding-bottom

(C) 盒子高:border-top + height + border-bottom

(D) 盒子高:border-top + padding-top +height + padding-bottom + border-bottom

**4**** 關(guān)于根據(jù)下列代碼計(jì)算 盒子寬高下列說法正確的是()******

div {

? width: 200px;

? height: 200px;

? border: 1px solid #000000;

? border-top: 5px solid blue;

? padding: 50px;

? padding-left: 100px;

? }

(A) 寬度為200px 高度為200px

(B) 寬度為352px 高度為306px

(C) 寬度為302px 高度為307px

(D) 寬度為302px 高度為252px

外邊距(margin)

margin屬性用于設(shè)置外邊距档玻。 設(shè)置外邊距會(huì)在元素之間創(chuàng)建“空白”怀泊, 這段空白通常不能放置其他內(nèi)容。

margin-top:上外邊距

margin-right:右外邊距

margin-bottom:下外邊距

margin-left:上外邊距

margin:上外邊距 右外邊距 下外邊距 左外邊

取值順序跟內(nèi)邊距相同误趴。

外邊距實(shí)現(xiàn)盒子居中

可以讓一個(gè)盒子實(shí)現(xiàn)水平居中霹琼,需要滿足一下兩個(gè)條件:

  1. 必須是塊級(jí)元素。
  2. 盒子必須指定了寬度(width)

然后就給左右的外邊距都設(shè)置為auto凉当,就可使塊級(jí)元素水平居中枣申。

實(shí)際工作中常用這種方式進(jìn)行網(wǎng)頁布局,示例代碼如下:

.header{ width:960px; margin:0 auto;}

文字盒子居中圖片和背景區(qū)別

  1. 文字水平居中是 text-align: center
  2. 盒子水平居中 左右margin 改為 auto
text-align: center; /*  文字居中水平 */
margin: 10px auto;  /* 盒子水平居中  左右margin 改為 auto 就闊以了 */
  1. 插入圖片 我們用的最多 比如產(chǎn)品展示類
  2. 背景圖片我們一般用于小圖標(biāo)背景 或者 超大背景圖片
section img {  
        width: 200px;/* 插入圖片更改大小 width 和 height */
        height: 210px;
        margin-top: 30px;  /* 插入圖片更改位置 可以用margin 或padding  盒模型 */
        margin-left: 50px; /* 插入當(dāng)圖片也是一個(gè)盒子 */
    }

aside {
        width: 400px;
        height: 400px;
        border: 1px solid purple;
        background: #fff url(images/sun.jpg) no-repeat;
    
        background-size: 200px 210px; /*  背景圖片更改大小只能用 background-size */
        background-position: 30px 50px; /* 背景圖片更該位置 我用 background-position */
    }

清除元素的默認(rèn)內(nèi)外邊距

為了更方便地控制網(wǎng)頁中的元素看杭,制作網(wǎng)頁時(shí)忠藤,可使用如下代碼清除元素的默認(rèn)內(nèi)外邊距:

* {
   padding:0;         /* 清除內(nèi)邊距 */
   margin:0;          /* 清除外邊距 */
}

注意: 行內(nèi)元素是只有左右外邊距的,是沒有上下外邊距的楼雹。 內(nèi)邊距模孩,在ie6等低版本瀏覽器也會(huì)有問題尖阔。

我們盡量不要給行內(nèi)元素指定上下的內(nèi)外邊距就好了。

外邊距合并

使用margin定義塊元素的垂直外邊距時(shí)榨咐,可能會(huì)出現(xiàn)外邊距的合并驾荣。

相鄰塊元素垂直外邊距的合并

當(dāng)上下相鄰的兩個(gè)塊元素相遇時(shí)蛇耀,如果上面的元素有下外邊距margin-bottom迟郎,下面的元素有上外邊距margin-top辫狼,則他們之間的垂直間距不是margin-bottom與margin-top之和,而是兩者中的較大者龟劲。這種現(xiàn)象被稱為相鄰塊元素垂直外邊距的合并(也稱外邊距塌陷)胃夏。

www.png

解決方案: 避免就好了轴或。

嵌套塊元素垂直外邊距的合并

對(duì)于兩個(gè)嵌套關(guān)系的塊元素昌跌,如果父元素沒有上內(nèi)邊距及邊框,則父元素的上外邊距會(huì)與子元素的上外邊距發(fā)生合并照雁,合并后的外邊距為兩者中的較大者蚕愤,即使父元素的上外邊距為0,也會(huì)發(fā)生合并饺蚊。

<img src="media/n.png" />

解決方案:

  1. 可以為父元素定義1像素的上邊框或上內(nèi)邊距萍诱。
  2. 可以為父元素添加overflow:hidden。

待續(xù)污呼。裕坊。。燕酷。

content寬度和高度

使用寬度屬性width和高度屬性height可以對(duì)盒子的大小進(jìn)行控制籍凝。

width和height的屬性值可以為不同單位的數(shù)值或相對(duì)于父元素的百分比%,實(shí)際工作中最常用的是像素值苗缩。

大多數(shù)瀏覽器饵蒂,如Firefox、IE6及以上版本都采用了W3C規(guī)范酱讶,符合CSS規(guī)范的盒子模型的總寬度和總高度的計(jì)算原則是:

  /*外盒尺寸計(jì)算(元素空間尺寸)*/
  Element空間高度 = content height + padding + border + margin
  Element 空間寬度 = content width + padding + border + margin
  /*內(nèi)盒尺寸計(jì)算(元素實(shí)際大型硕ⅰ)*/
  Element Height = content height + padding + border (Height為內(nèi)容高度)
  Element Width = content width + padding + border (Width為內(nèi)容寬度)

注意:

1、寬度屬性width和高度屬性height僅適用于塊級(jí)元素泻肯,對(duì)行內(nèi)元素?zé)o效( img 標(biāo)簽和 input除外)渊迁。

2、計(jì)算盒子模型的總高度時(shí)灶挟,還應(yīng)考慮上下兩個(gè)盒子垂直外邊距合并的情況琉朽。

3、如果一個(gè)盒子則會(huì)和父親一樣寬 占滿父親的寬度膏萧, 如果此盒子沒有給定寬度 則padding 不會(huì)影響本盒子大小漓骚。

盒子模型布局穩(wěn)定性

開始學(xué)習(xí)盒子模型蝌衔,同學(xué)們最大的困惑就是, 分不清內(nèi)外邊距的使用蝌蹂,什么情況下使用內(nèi)邊距噩斟,什么情況下使用外邊距?

答案是: 其實(shí)他們大部分情況下是可以混用的孤个。 就是說剃允,你用內(nèi)邊距也可以,用外邊距也可以齐鲤。 你覺得哪個(gè)方便斥废,就用哪個(gè)。

但是给郊,總有一個(gè)最好用的吧牡肉,我們根據(jù)穩(wěn)定性來分,建議如下:

按照 優(yōu)先使用 寬度 (width) 其次 使用內(nèi)邊距(padding) 再次 外邊距(margin)淆九。

  width >  padding  >   margin   

原因:

  1. margin 會(huì)有外邊距合并 還有 ie6下面margin 加倍的bug(討厭)所以最后使用统锤。

  2. padding 會(huì)影響盒子大小, 需要進(jìn)行加減計(jì)算(麻煩) 其次使用炭庙。

  3. width 沒有問題(嗨皮)我們經(jīng)常使用寬度剩余法 高度剩余法來做饲窿。

    ?

圓角邊框(CSS3)

從此以后,我們的世界不只有矩形焕蹄。radius 半徑(距離)

語法格式:

border-radius: 50%;   讓一個(gè)正方形  變成圓圈

盒子陰影(CSS3)

語法格式:

box-shadow:水平陰影 垂直陰影 模糊距離(虛實(shí))  陰影尺寸(影子大杏庑邸)  陰影顏色  內(nèi)/外陰影;

[圖片上傳失敗...(image-5c80de-1527494961605)]

  1. 前兩個(gè)屬性是必須寫的腻脏。其余的可以省略鸦泳。
  2. 外陰影 (outset) 但是不能寫 默認(rèn) 想要內(nèi)陰影 inset
div {
            width: 200px;
            height: 200px;
            border: 10px solid red;
            /* box-shadow: 5px 5px 3px 4px rgba(0, 0, 0, .4);  */
            /* box-shadow:水平位置 垂直位置 模糊距離 陰影尺寸(影子大小) 陰影顏色  內(nèi)/外陰影迹卢; */
            box-shadow: 0 15px 30px  rgba(0, 0, 0, .4);
            
}

浮動(dòng)(float)

普通流(normal flow)

這個(gè)單詞很多人翻譯為 文檔流 辽故, 字面翻譯 普通流 或者標(biāo)準(zhǔn)流都可以。

前面我們說過腐碱,網(wǎng)頁布局的核心誊垢,就是用CSS來擺放盒子位置。如何把盒子擺放到合適的位置症见?

CSS的定位機(jī)制有3種:普通流(標(biāo)準(zhǔn)流)喂走、浮動(dòng)和定位。

html語言當(dāng)中另外一個(gè)相當(dāng)重要的概念----------標(biāo)準(zhǔn)流谋作!或者普通流芋肠。普通流實(shí)際上就是一個(gè)網(wǎng)頁內(nèi)標(biāo)簽元素正常從上到下,從左到右排列順序的意思遵蚜,比如塊級(jí)元素會(huì)獨(dú)占一行帖池,行內(nèi)元素會(huì)按順序依次前后排列奈惑;按照這種大前提的布局排列之下絕對(duì)不會(huì)出現(xiàn)例外的情況叫做普通流布局。

<img src="media/t.jpg" />

浮動(dòng)(float)

浮動(dòng)最早是用來控制圖片睡汹,以便達(dá)到其他元素(特別是文字)實(shí)現(xiàn)“環(huán)繞”圖片的效果肴甸。

l.png

后來,我們發(fā)現(xiàn)浮動(dòng)有個(gè)很有意思的事情:就是讓任何盒子可以一行排列,因此我們就慢慢的偏離主題囚巴,用浮動(dòng)的特性來布局了原在。(CSS3已經(jīng)我們真正意義上的網(wǎng)頁布局,具體CSS3我們會(huì)詳細(xì)解釋)

d.png

什么是浮動(dòng)彤叉?

元素的浮動(dòng)是指設(shè)置了浮動(dòng)屬性的元素會(huì)脫離標(biāo)準(zhǔn)標(biāo)準(zhǔn)流的控制庶柿,移動(dòng)到其父元素中指定位置的過程。

在CSS中秽浇,通過float屬性來定義浮動(dòng)浮庐,其基本語法格式如下:

選擇器{float:屬性值;}
屬性值 描述
left 元素向左浮動(dòng)
right 元素向右浮動(dòng)
none 元素不浮動(dòng)(默認(rèn)值)

浮動(dòng)詳細(xì)內(nèi)幕特性

浮動(dòng)脫離標(biāo)準(zhǔn)流,====脫標(biāo)==== 不占位置兼呵,會(huì)影響標(biāo)準(zhǔn)流兔辅。浮動(dòng)只有左右浮動(dòng)。

1. 浮動(dòng)首先創(chuàng)建包含塊的概念(包裹)击喂。就是說, 浮動(dòng)的元素總是找理它最近的父級(jí)元素對(duì)齊碰辅。但是不會(huì)超出內(nèi)邊距的范圍懂昂。 

<img src="media/one.jpg" width="500" />

2.一個(gè)父盒子里面的子盒子,如果其中一個(gè)子級(jí)有浮動(dòng)的没宾,則其他子級(jí)都需要浮動(dòng)凌彬。這樣才能一行對(duì)齊顯示。
3. 元素添加浮動(dòng)后循衰,元素會(huì)具有行內(nèi)塊元素的特性铲敛。元素的大小完全取決于定義的大小或者默認(rèn)的內(nèi)容多少浮動(dòng)根據(jù)元素書寫的位置來顯示相應(yīng)的浮動(dòng)。

總結(jié): 浮動(dòng) --->

浮動(dòng)的目的就是為了讓多個(gè)塊級(jí)元素同一行上顯示会钝。 最核心的關(guān)鍵點(diǎn)就是 怎么排列的伐蒋, 是否占有位置

float 浮 漏 特

浮: 加了浮動(dòng)的元素盒子是浮起來的迁酸,漂浮在其他的標(biāo)準(zhǔn)流盒子上面先鱼。
漏: 加了浮動(dòng)的盒子,不占位置的奸鬓,它浮起來了焙畔,它原來的位置漏 給了標(biāo)準(zhǔn)流的盒子。
特: 特別注意串远,首先浮動(dòng)的盒子需要和標(biāo)準(zhǔn)流的父級(jí)搭配使用宏多, 其次 特別的注意浮動(dòng)可以使元素顯示模式體現(xiàn)為行內(nèi)塊特性儿惫。

版心和布局流程

閱讀報(bào)紙時(shí)容易發(fā)現(xiàn),雖然報(bào)紙中的內(nèi)容很多伸但,但是經(jīng)過合理地排版姥闪,版面依然清晰、易讀砌烁。同樣筐喳,在制作網(wǎng)頁時(shí),要想使頁面結(jié)構(gòu)清晰函喉、有條理避归,也需要對(duì)網(wǎng)頁進(jìn)行“排版”。

“版心”(可視區(qū)) 是指網(wǎng)頁中主體內(nèi)容所在的區(qū)域管呵。一般在瀏覽器窗口中水平居中顯示梳毙,常見的寬度值為960px、980px捐下、1000px账锹、1200px等。

布局流程

為了提高網(wǎng)頁制作的效率坷襟,布局時(shí)通常需要遵守一定的布局流程奸柬,具體如下:

1、確定頁面的版心(可視區(qū))婴程。

2廓奕、分析頁面中的行模塊,以及每個(gè)行模塊中的列模塊档叔。

3桌粉、制作HTML結(jié)構(gòu) 。

4衙四、CSS初始化铃肯,然后開始運(yùn)用盒子模型的原理,通過DIV+CSS布局來控制網(wǎng)頁的各個(gè)模塊传蹈。

一列固定寬度且居中

<img src="media/yl.jpg" width="400" />

最普通的押逼,最為常用的結(jié)構(gòu)

兩列左窄右寬型

<img src="media/ll.jpg" width="400" />

比如小米 <a target="_blank"> 小米官網(wǎng) </a>

通欄平均分布型

<img src="media/tl.jpg" width="600" />

比如錘子 <a target="_blank"> 錘子官網(wǎng) </a>

清除浮動(dòng)

人生就像乘坐北京地鐵一號(hào)線:

途經(jīng)國貿(mào),羨慕繁華卡睦;

途經(jīng)天安門宴胧,幻想權(quán)力;

途經(jīng)金融街表锻,夢(mèng)想發(fā)財(cái)恕齐;

經(jīng)過公主墳,遙想華麗家族瞬逊;

經(jīng)過玉泉路显歧,依然雄心勃勃…

這時(shí)仪或,有個(gè)聲音飄然入耳:乘客你好,八寶山馬上就要到了!

頓時(shí)醒悟:人生苦短士骤,有始有終范删。

好比我們的浮動(dòng),有浮動(dòng)開始拷肌,則就應(yīng)該有浮動(dòng)結(jié)束到旦。

為什么要清除浮動(dòng)

我們前面說過,浮動(dòng)本質(zhì)是用來做一些文字混排效果的巨缘,但是被我們拿來做布局用添忘,則會(huì)有很多的問題出現(xiàn), 但是若锁,你不能說浮動(dòng)不好 <img src="media/wq.jpg" height="100" />搁骑。

由于浮動(dòng)元素不再占用原文檔流的位置,所以它會(huì)對(duì)后面的元素排版產(chǎn)生影響又固,為了解決這些問題仲器,此時(shí)就需要在該元素中清除浮動(dòng)。

準(zhǔn)確地說仰冠,并不是清除浮動(dòng)乏冀,而是清除浮動(dòng)后造成的影響

如果浮動(dòng)一開始就是一個(gè)美麗的錯(cuò)誤,那么請(qǐng)用正確的方法挽救它沪停。

清除浮動(dòng)本質(zhì)

清除浮動(dòng)主要為了解決父級(jí)元素因?yàn)樽蛹?jí)浮動(dòng)引起內(nèi)部高度為0 的問題煤辨。

<img src="media/n.jpg" />

<img src="media/no.jpg" />

<img src="media/kc.jpg" />

清除浮動(dòng)的方法

其實(shí)本質(zhì)叫做閉合浮動(dòng)更好一些, 記住,清除浮動(dòng)就是把浮動(dòng)的盒子圈到里面木张,讓父盒子閉合出口和入口不讓他們出來影響其他元素。

在CSS中,clear屬性用于清除浮動(dòng),其基本語法格式如下:

選擇器{clear:屬性值;}   clear 清除 
屬性值 描述
left 不允許左側(cè)有浮動(dòng)元素(清除左側(cè)浮動(dòng)的影響)
right 不允許右側(cè)有浮動(dòng)元素(清除右側(cè)浮動(dòng)的影響)
both 同時(shí)清除左右兩側(cè)浮動(dòng)的影響

額外標(biāo)簽法

是W3C推薦的做法是通過在浮動(dòng)元素末尾添加一個(gè)空的標(biāo)簽例如 <div style=”clear:both”></div>州袒,或則其他標(biāo)簽br等亦可筋岛。

優(yōu)點(diǎn): 通俗易懂,書寫方便

缺點(diǎn): 添加許多無意義的標(biāo)簽慌盯,結(jié)構(gòu)化較差。 我只能說,w3c你推薦的方法我不接受育拨,你不值得擁有。欢摄。熬丧。

父級(jí)添加overflow屬性方法

可以通過觸發(fā)BFC的方式,可以實(shí)現(xiàn)清除浮動(dòng)效果怀挠。(BFC后面講解)

可以給父級(jí)添加: overflow為 hidden|auto|scroll  都可以實(shí)現(xiàn)析蝴。

優(yōu)點(diǎn): 代碼簡(jiǎn)潔

缺點(diǎn): 內(nèi)容增多時(shí)候容易造成不會(huì)自動(dòng)換行導(dǎo)致內(nèi)容被隱藏掉害捕,無法顯示需要溢出的元素。

使用after偽元素清除浮動(dòng)

:after 方式為空元素的升級(jí)版闷畸,好處是不用單獨(dú)加標(biāo)簽了

使用方法:

 .clearfix:after {  content: ""; display: block; height: 0; clear: both; visibility: hidden;  }   

 .clearfix {*zoom: 1;}   /* IE6尝盼、7 專有 */

優(yōu)點(diǎn): 符合閉合浮動(dòng)思想 結(jié)構(gòu)語義化正確

缺點(diǎn): 由于IE6-7不支持:after,使用 zoom:1觸發(fā) hasLayout佑菩。

代表網(wǎng)站: 百度盾沫、淘寶網(wǎng)、網(wǎng)易等

<img src="media/163.png" style="border: 1px dashed #3c3c3c;"/>

注意: content:"" 盡量不帶點(diǎn)

使用before和after雙偽元素清除浮動(dòng)

使用方法:

.clearfix:before,.clearfix:after { 
  content:"";
  display:table;  /* 這句話可以出發(fā)BFC BFC可以清除浮動(dòng),BFC我們后面講 */
}
.clearfix:after {
 clear:both;
}
.clearfix {
  *zoom:1;
}

優(yōu)點(diǎn): 代碼更簡(jiǎn)潔

缺點(diǎn): 由于IE6-7不支持:after殿漠,使用 zoom:1觸發(fā) hasLayout赴精。

代表網(wǎng)站: 小米、騰訊等

Photoshop基本使用

PS界面組成:

ctrl + r 顯示隱藏標(biāo)尺 右擊 標(biāo)尺 --- 把里面的單位一律改為像素

ctrl+ d 取消選區(qū)

菜單欄凸舵、選項(xiàng)欄祖娘、工具欄、浮動(dòng)面板(拖拽名稱啊奄,可單獨(dú)操作面板)渐苏、繪圖窗口
? 窗口菜單,可顯示隱藏所有面板

工作區(qū):(新建)

調(diào)整浮動(dòng)面板

<img src="media/jiemian.png"/>

圖層操作(重點(diǎn))

圖層面板快捷鍵 F7 其實(shí)圖層就是一張張透明的紙 可以實(shí)現(xiàn)疊加問題菇夸。

<img src="media/tuceng.png" />

圖層選擇: 使用移動(dòng)工具V

1琼富、圖層縮覽圖判斷

2、按住CTRL,在目標(biāo)圖像上單擊

3庄新、將光標(biāo)放置在目標(biāo)圖像上右鍵鞠眉,選擇圖層名稱

圖層面板中加選圖層:

1、按SHIFT择诈,單擊另一目標(biāo)圖層 中間所有圖層被選中

2械蹋、按CTRL,單擊另一目標(biāo)圖層 只選中目標(biāo)圖層

復(fù)制圖層:選中目標(biāo)圖層后(移動(dòng)工具狀態(tài)下)

1羞芍、按ALT拖拽圖像

2哗戈、CTRL+J (重合)

案例: 擺放一個(gè)自行車

<img src="media/bike.jpg" />

圖層編組

選中目標(biāo)圖層,CTRL+G

取消編組:CTRL+SHIFT+G

雙擊圖層名稱可重新命名

雙擊組名稱荷科,可命名組

移動(dòng)工具V選擇組或圖層時(shí)唯咬,需設(shè)置選項(xiàng)欄

[圖片上傳失敗...(image-89c258-1527494961605)]

圖層上下位置移動(dòng)

1、選中目標(biāo)圖層畏浆,在圖層面拖拽

2胆胰、CTRL+] 向上移動(dòng)圖層
? CTRL+[ 向下移動(dòng)圖層

3、CTRL+SHIFT+] 圖層置頂
? CTRL+SHIFT+[ 圖層置底

移動(dòng)選區(qū)或圖像時(shí):

移動(dòng)過程中刻获,沒釋放鼠標(biāo)蜀涨,按住SHIFT,可同一水平線、同一垂線勉盅、45度移動(dòng)佑颇。

ps中的撤銷操作是:

ctrl+z 撤銷一步

ctrl+alt+z 撤銷多步

Photoshop 切圖

PS切圖 可以 分為 手動(dòng) 利用切片切圖 以及 利用PS的插件快速切圖

切片工具

[圖片上傳失敗...(image-590ac6-1527494961605)]

  1. 利用切片工具手動(dòng)劃出

  2. 圖層菜單---新建基于圖層的切片

  3. 利用標(biāo)尺 基于參考線的切片 (選擇切片工具)

    ?

    [圖片上傳失敗...(image-d4e276-1527494961605)]

  4. 先選個(gè)一個(gè)整個(gè)的切片, 切片選擇工具-- 屬性面板中有 “劃分” --可以等分?jǐn)?shù)平分切圖

導(dǎo)出切片: 文件-- 存儲(chǔ)為web設(shè)備所用格式

輔助線和切片使用及清除

視圖菜單-- 清除 輔助線/ 清除切片

切圖插件

Cutterman是一款運(yùn)行在photoshop中的插件草娜,能夠自動(dòng)將你需要的圖層進(jìn)行輸出挑胸, 以替代傳統(tǒng)的手工 "導(dǎo)出web所用格式" 以及使用切片工具進(jìn)行挨個(gè)切圖的繁瑣流程。 它支持各種各樣的圖片尺寸宰闰、格式茬贵、形態(tài)輸出,方便你在pc移袍、ios解藻、Android等端上使用。 它不需要你記住一堆的語法葡盗、規(guī)則螟左,純點(diǎn)擊操作,方便觅够、快捷胶背,易于上手。

官網(wǎng): http://www.cutterman.cn/zh/cutterman

注意: cutterman插件要求你的ps 必須是完整版喘先,不能是綠色版钳吟,所以大家需要從新安裝完整版本。

<img src="media/sample1.gif" />

項(xiàng)目案例: 云道頁面

案例練習(xí)目的是總結(jié)以前的css和html

還有ps的使用窘拯。

制作步驟:

  1. 準(zhǔn)備相關(guān)文件红且。(內(nèi)部樣式表) html文件(index.html) 圖片文件
  2. 準(zhǔn)備CSS 初始化。 書寫結(jié)構(gòu)和樣式
  3. 確定版心(是1200像素)和各個(gè)模塊涤姊。

定位(position)

background-position 背景定位

如果暇番,說浮動(dòng), 關(guān)鍵在一個(gè) “浮” 字上面思喊, 那么 我們的定位奔誓,關(guān)鍵在于一個(gè) “位” 上。

PS: 定位是我們CSS算是數(shù)一數(shù)二難點(diǎn)的了搔涝,但是,你務(wù)必要學(xué)好它和措,我們CSS離不開定位庄呈,特別是后面的js特效,天天和定位打交道派阱。不要抵觸它诬留,反而要愛上它,它可以讓我們工作更加輕松哦!

為什么要用定位文兑?

那么定位盒刚,最長運(yùn)用的場(chǎng)景再那里呢? 來看幾幅圖片绿贞,你一定會(huì)有感悟因块!

第一幅圖, 小黃色塊可以再圖片上移動(dòng):

<img src="media/1.gif" style="border: 1px dashed #3c3c3c;"/>

第二幅圖籍铁, 左右箭頭壓住圖片:

<img src="media/2.gif" style="border: 1px dashed #3c3c3c;"/>

第三幅圖, hot 再盒子外面多出一塊涡上,更加突出:

<img src="media/it.png" style="border: 1px dashed #3c3c3c;"/>

以上三個(gè)小地方,如果用標(biāo)準(zhǔn)流或者浮動(dòng)拒名,實(shí)現(xiàn)會(huì)比較復(fù)雜或者難以實(shí)現(xiàn)吩愧,此時(shí)我們用定位來做,just soso增显!

元素的定位屬性

元素的定位屬性主要包括定位模式和邊偏移兩部分雁佳。

1、邊偏移

邊偏移屬性 描述
top 頂端偏移量同云,定義元素相對(duì)于其父元素上邊線的距離
bottom 底部偏移量糖权,定義元素相對(duì)于其父元素下邊線的距離
left 左側(cè)偏移量,定義元素相對(duì)于其父元素左邊線的距離
right 右側(cè)偏移量梢杭,定義元素相對(duì)于其父元素右邊線的距離

也就說温兼,以后定位要和這邊偏移搭配使用了, 比如 top: 100px; left: 30px; 等等

2武契、定位模式(定位的分類)

在CSS中募判,position屬性用于定義元素的定位模式,其基本語法格式如下:

選擇器{position:屬性值;}

position屬性的常用值

描述
static 自動(dòng)定位(默認(rèn)定位方式)
relative 相對(duì)定位咒唆,相對(duì)于其原文檔流的位置進(jìn)行定位
absolute 絕對(duì)定位届垫,相對(duì)于其上一個(gè)已經(jīng)定位的父元素進(jìn)行定位
fixed 固定定位,相對(duì)于瀏覽器窗口進(jìn)行定位

靜態(tài)定位(static)

靜態(tài)定位是所有元素的默認(rèn)定位方式全释,當(dāng)position屬性的取值為static時(shí)装处,可以將元素定位于靜態(tài)位置。 所謂靜態(tài)位置就是各個(gè)元素在HTML文檔流中默認(rèn)的位置浸船。

上面的話翻譯成白話: 就是網(wǎng)頁中所有元素都默認(rèn)的是靜態(tài)定位哦妄迁! 其實(shí)就是標(biāo)準(zhǔn)流的特性。

在靜態(tài)定位狀態(tài)下李命,無法通過邊偏移屬性(top登淘、bottom、left或right)來改變?cè)氐奈恢谩?/p>

PS: 靜態(tài)定位其實(shí)沒啥可說的封字。

靜態(tài)定位唯一的用處: 就是 取消定位黔州。 position: static;

相對(duì)定位relative(自戀型)

小笑話: 
剛剛看到一個(gè)超級(jí)超級(jí)帥的帥哥耍鬓,看得我都忍不住想和他搞基了。世間怎會(huì)有如此之完美的男人流妻。我和他就這樣一動(dòng)不動(dòng)的對(duì)視著牲蜀,就仿佛一見鐘情。時(shí)間也在這一瞬間停止了绅这。直到我的手麻了涣达。才戀戀不舍的放下鏡子。君躺。峭判。。

<img src="media/smail.gif" width="100"/>

相對(duì)定位是將元素相對(duì)于它在標(biāo)準(zhǔn)流中的位置進(jìn)行定位棕叫,當(dāng)position屬性的取值為relative時(shí)林螃,可以將元素定位于相對(duì)位置。

對(duì)元素設(shè)置相對(duì)定位后俺泣,可以通過邊偏移屬性改變?cè)氐奈恢昧迫希撬谖臋n流中的位置仍然保留。如下圖所示伏钠,即是一個(gè)相對(duì)定位的效果展示:

<img src="media/r.png" />

注意:

  1. 相對(duì)定位最重要的一點(diǎn)是横漏,它可以通過邊偏移移動(dòng)位置,但是原來的所占的位置熟掂,繼續(xù)占有缎浇。
  2. 其次,每次移動(dòng)的位置赴肚,是以自己的左上角為基點(diǎn)移動(dòng)(相對(duì)于自己來移動(dòng)位置)

就是說素跺,相對(duì)定位的盒子仍在標(biāo)準(zhǔn)流中,它后面的盒子仍以標(biāo)準(zhǔn)流方式對(duì)待它誉券。(相對(duì)定位不脫標(biāo))

如果說浮動(dòng)的主要目的是 讓多個(gè)塊級(jí)元素一行顯示指厌,那么定位的主要價(jià)值就是 移動(dòng)位置, 讓盒子到我們想要的位置上去踊跟。

絕對(duì)定位absolute (拼爹型)

小笑話:

吃早飯時(shí)踩验,老婆往兒子碗里放了兩個(gè)煎蛋,兒子全給了我商玫,還一本正經(jīng)地說:“爸爸箕憾,多吃點(diǎn),男人養(yǎng)家不容易拳昌〔蘧牛” <br/>

我一陣感動(dòng),剛想夸他兩句地回。 

兒子接著說:“以后全靠你讓我拼爹了扁远!”

<img src="media/smail.gif" width="100"/>

[注意] 如果文檔可滾動(dòng),絕對(duì)定位元素會(huì)隨著它滾動(dòng)刻像,因?yàn)樵刈罱K會(huì)相對(duì)于正常流的某一部分定位畅买。

當(dāng)position屬性的取值為absolute時(shí),可以將元素的定位模式設(shè)置為絕對(duì)定位细睡。

注意: 絕對(duì)定位最重要的一點(diǎn)是谷羞,它可以通過邊偏移移動(dòng)位置,但是它完全脫標(biāo)溜徙,完全不占位置湃缎。

父級(jí)沒有定位

若所有父元素都沒有定位,以瀏覽器當(dāng)前屏幕為準(zhǔn)對(duì)齊(document文檔)蠢壹。

<img src="media/ab.png" />

父級(jí)有定位

絕對(duì)定位是將元素依據(jù)最近的已經(jīng)定位(絕對(duì)嗓违、固定或相對(duì)定位)的父元素(祖先)進(jìn)行定位。

<img src="media/ab1.png" />

子絕父相

這個(gè)“子絕父相”太重要了图贸,是我們學(xué)習(xí)定位的口訣蹂季,時(shí)時(shí)刻刻記住的。

這句話的意思是 子級(jí)是絕對(duì)定位的話疏日, 父級(jí)要用相對(duì)定位偿洁。

首先, 我們說下帜平, 絕對(duì)定位是將元素依據(jù)最近的已經(jīng)定位絕對(duì)塞淹、固定或相對(duì)定位)的父元素(祖先)進(jìn)行定位惩嘉。

就是說, 子級(jí)是絕對(duì)定位宾肺,父親只要是定位即可(不管父親是絕對(duì)定位還是相對(duì)定位,甚至是固定定位都可以)鹃唯,就是說爱榕, 子絕父絕,子絕父相都是正確的坡慌。

但是黔酥,在我們網(wǎng)頁布局的時(shí)候, 最常說的 子絕父相是怎么來的呢洪橘? 請(qǐng)看如下圖:

<img src="media/zi.png" style="border: 1px dashed #3c3c3c;"/>

所以跪者,我們可以得出如下結(jié)論:

因?yàn)樽蛹?jí)是絕對(duì)定位,不會(huì)占有位置熄求, 可以放到父盒子里面的任何一個(gè)地方渣玲。

父盒子布局時(shí),需要占有位置弟晚,因此父親只能是 相對(duì)定位.

這就是子絕父相的由來忘衍。

絕對(duì)定位的盒子水平/垂直居中

普通的盒子是左右margin 改為 auto就可逾苫, 但是對(duì)于絕對(duì)定位就無效了

定位的盒子也可以水平或者垂直居中,有一個(gè)算法枚钓。

  1. 首先left 50% 父盒子的一半大小

  2. 然后走自己外邊距負(fù)的一半值就可以了 margin-left铅搓。

    ?

固定定位fixed(認(rèn)死理型)

固定定位是絕對(duì)定位的一種特殊形式,類似于 正方形是一個(gè)特殊的 矩形搀捷。它以瀏覽器窗口作為參照物來定義網(wǎng)頁元素星掰。當(dāng)position屬性的取值為fixed時(shí),即可將元素的定位模式設(shè)置為固定定位嫩舟。

當(dāng)對(duì)元素設(shè)置固定定位后氢烘,它將脫離標(biāo)準(zhǔn)文檔流的控制,始終依據(jù)瀏覽器窗口來定義自己的顯示位置家厌。不管瀏覽器滾動(dòng)條如何滾動(dòng)也不管瀏覽器窗口的大小如何變化播玖,該元素都會(huì)始終顯示在瀏覽器窗口的固定位置。

固定定位有兩點(diǎn):

  1. 固定定位的元素跟父親沒有任何關(guān)系像街,只認(rèn)瀏覽器黎棠。
  2. 固定定位完全脫標(biāo),不占有位置镰绎,不隨著滾動(dòng)條滾動(dòng)脓斩。

記憶法: 就類似于孫猴子, 無父無母畴栖,好不容易找到一個(gè)可靠的師傅(瀏覽器)随静,就聽的師傅的,別的都不聽吗讶。

<img src="media/sun.jpg" width="100">

ie6等低版本瀏覽器不支持固定定位燎猛。

疊放次序(z-index)

當(dāng)對(duì)多個(gè)元素同時(shí)設(shè)置定位時(shí),定位元素之間有可能會(huì)發(fā)生重疊照皆。

<img src="media/zzz.png" />

在CSS中重绷,要想調(diào)整重疊定位元素的堆疊順序,可以對(duì)定位元素應(yīng)用z-index層疊等級(jí)屬性膜毁,其取值可為正整數(shù)昭卓、負(fù)整數(shù)和0。

比如: z-index: 2; font-weight: 700

注意:

  1. z-index的默認(rèn)屬性值是0瘟滨,取值越大候醒,定位元素在層疊元素中越居上。

  2. 如果取值相同杂瘸,則根據(jù)書寫順序倒淫,后來居上。

  3. 后面數(shù)字一定不能加單位败玉。

  4. 只有相對(duì)定位敌土,絕對(duì)定位镜硕,固定定位有此屬性,其余標(biāo)準(zhǔn)流纯赎,浮動(dòng)谦疾,靜態(tài)定位都無此屬性,亦不可指定此屬性犬金。

四種定位總結(jié)

定位模式 是否脫標(biāo)占有位置 是否可以使用邊偏移 移動(dòng)位置基準(zhǔn)
靜態(tài)static 不脫標(biāo),正常模式 不可以 正常模式
相對(duì)定位relative 脫標(biāo)六剥,占有位置 可以 相對(duì)自身位置移動(dòng)(自戀型)
絕對(duì)定位absolute 完全脫標(biāo)晚顷,不占有位置 可以 相對(duì)于定位父級(jí)移動(dòng)位置(拼爹型)
固定定位fixed 完全脫標(biāo),不占有位置 可以 相對(duì)于瀏覽器移動(dòng)位置(認(rèn)死理型)

定位模式轉(zhuǎn)換

跟 浮動(dòng)一樣疗疟, 元素添加了 絕對(duì)定位和固定定位之后该默, 元素模式也會(huì)發(fā)生轉(zhuǎn)換, 都轉(zhuǎn)換為 行內(nèi)塊模式策彤,

行內(nèi)塊 的寬度和高度 跟內(nèi)容有關(guān)系

** 因此 比如 行內(nèi)元素 如果添加了 絕對(duì)定位或者 固定定位后 浮動(dòng)后栓袖,可以不用轉(zhuǎn)換模式,直接給高度和寬度就可以了店诗。**

CSS高級(jí)技巧

元素的顯示與隱藏

在CSS中有三個(gè)顯示和隱藏的單詞比較常見裹刮,我們要區(qū)分開,他們分別是 display visibility 和 overflow庞瘸。

他們的主要目的是讓一個(gè)元素在頁面中消失捧弃,但是不在文檔源碼中刪除。 最常見的是網(wǎng)站廣告擦囊,當(dāng)我們點(diǎn)擊類似關(guān)閉不見了违霞,但是我們重新刷新頁面,它們又會(huì)出現(xiàn)和你玩躲貓貓K渤 买鸽!

display 顯示

display 設(shè)置或檢索對(duì)象是否及如何顯示。

display : none 隱藏對(duì)象 與它相反的是 display:block 除了轉(zhuǎn)換為塊級(jí)元素之外贯被,同時(shí)還有顯示元素的意思眼五。

特點(diǎn): 隱藏之后,不再保留位置刃榨。

visibility 可見性

設(shè)置或檢索是否顯示對(duì)象弹砚。

visible :  對(duì)象可視

hidden :  對(duì)象隱藏

特點(diǎn): 隱藏之后,繼續(xù)保留原有位置枢希。(停職留薪)

overflow 溢出

檢索或設(shè)置當(dāng)對(duì)象的內(nèi)容超過其指定高度及寬度時(shí)如何管理內(nèi)容桌吃。

visible :  不剪切內(nèi)容也不添加滾動(dòng)條。

auto :   超出自動(dòng)顯示滾動(dòng)條苞轿,不超出不顯示滾動(dòng)條

hidden :  不顯示超過對(duì)象尺寸的內(nèi)容茅诱,超出的部分隱藏掉

scroll :  不管超出內(nèi)容否逗物,總是顯示滾動(dòng)條

CSS用戶界面樣式

所謂的界面樣式, 就是更改一些用戶操作樣式瑟俭, 比如 更改用戶的鼠標(biāo)樣式翎卓, 表單輪廓等。但是比如滾動(dòng)條的樣式改動(dòng)受到了很多瀏覽器的抵制摆寄,因此我們就放棄了失暴。 防止表單域拖拽

鼠標(biāo)樣式cursor

設(shè)置或檢索在對(duì)象上移動(dòng)的鼠標(biāo)指針采用何種系統(tǒng)預(yù)定義的光標(biāo)形狀。

cursor :  default  小白 | pointer  小手  | move  移動(dòng)  |  text  文本

鼠標(biāo)放我身上查看效果哦:

<ul>
  <li style="cursor:default">我是小白</li>
  <li style="cursor:pointer">我是小手</li>
  <li style="cursor:move">我是移動(dòng)</li>
  <li style="cursor:text">我是文本</li>
</ul>

盡量不要用hand 因?yàn)?火狐不支持 pointer ie6以上都支持的盡量用

輪廓 outline

是繪制于元素周圍的一條線微饥,位于邊框邊緣的外圍逗扒,可起到突出元素的作用。

 outline : outline-color ||outline-style || outline-width 

但是我們都不關(guān)心可以設(shè)置多少欠橘,我們平時(shí)都是去掉的矩肩。

最直接的寫法是 : outline: 0; 或者 outline: none;

 <input  type="text"  style="outline: 0;"/>

防止拖拽文本域resize

resize:none 這個(gè)單詞可以防止 火狐 谷歌等瀏覽器隨意的拖動(dòng) 文本域。

右下角可以拖拽:

<textarea></textarea>

右下角不可以拖拽:

<textarea  style="resize: none;"></textarea>

vertical-align 垂直對(duì)齊

以前我們講過讓帶有寬度的塊級(jí)元素居中對(duì)齊肃续,是margin: 0 auto;

以前我們還講過讓文字居中對(duì)齊黍檩,是 text-align: center;

但是我們從來沒有講過有垂直居中的屬性, 我們的媽媽一直很擔(dān)心我們的垂直居中怎么做始锚。

vertical-align 垂直對(duì)齊刽酱, 這個(gè)看上去很美好的一個(gè)屬性, 實(shí)際有著不可捉摸的脾氣疼蛾,否則我們也不會(huì)這么晚來講解肛跌。

<img src="media/xian.jpg" />

vertical-align : baseline |top |middle |bottom 

設(shè)置或檢索對(duì)象內(nèi)容的垂直對(duì)其方式。

vertical-align 不影響塊級(jí)元素中的內(nèi)容對(duì)齊察郁,它只針對(duì)于 行內(nèi)元素或者行內(nèi)塊元素衍慎,特別是行內(nèi)塊元素, 通常用來控制圖片/表單與文字的對(duì)齊皮钠。

[圖片上傳失敗...(image-f983b5-1527494961605)]

圖片稳捆、表單和文字對(duì)齊

所以我們知道,我們可以通過vertical-align 控制圖片和文字的垂直關(guān)系了麦轰。 默認(rèn)的圖片會(huì)和文字基線對(duì)齊乔夯。

去除圖片底側(cè)空白縫隙

有個(gè)很重要特性你要記住: 圖片或者表單等行內(nèi)塊元素款侵,他的底線會(huì)和父級(jí)盒子的基線對(duì)齊末荐。這樣會(huì)造成一個(gè)問題,就是圖片底側(cè)會(huì)有一個(gè)空白縫隙新锈。

<img src="media/3.jpg" />

解決的方法就是:

  1. 給img vertical-align:middle | top等等甲脏。 讓圖片不要和基線對(duì)齊。<img src="media/1633.png" width="500" style="border: 1px dashed #ccc;" />
  1. 給img 添加 display:block; 轉(zhuǎn)換為塊級(jí)元素就不會(huì)存在問題了。<img src="media/sina1.png" width="500" style="border: 1px dashed #ccc;"/>

溢出的文字隱藏

white-space

white-space設(shè)置或檢索對(duì)象內(nèi)文本顯示方式块请。通常我們使用于強(qiáng)制一行顯示內(nèi)容

normal :  默認(rèn)處理方式
nowrap :  強(qiáng)制在同一行內(nèi)顯示所有文本娜氏,直到文本結(jié)束或者遭遇br標(biāo)簽對(duì)象才換行。

可以處理中文

text-overflow 文字溢出

text-overflow : clip | ellipsis

設(shè)置或檢索是否使用一個(gè)省略標(biāo)記(...)標(biāo)示對(duì)象內(nèi)文本的溢出

clip :  不顯示省略標(biāo)記(...)墩新,而是簡(jiǎn)單的裁切

ellipsis :  當(dāng)對(duì)象內(nèi)文本溢出時(shí)顯示省略標(biāo)記(...)

注意一定要首先強(qiáng)制一行內(nèi)顯示贸弥,再次和overflow屬性 搭配使用

CSS精靈技術(shù)(sprite) 小妖精 雪碧

精靈技術(shù)產(chǎn)生的背景

<img src="media/sss.png" />

圖所示為網(wǎng)頁的請(qǐng)求原理圖,當(dāng)用戶訪問一個(gè)網(wǎng)站時(shí)海渊,需要向服務(wù)器發(fā)送請(qǐng)求绵疲,網(wǎng)頁上的每張圖像都要經(jīng)過一次請(qǐng)求才能展現(xiàn)給用戶。

然而臣疑,一個(gè)網(wǎng)頁中往往會(huì)應(yīng)用很多小的背景圖像作為修飾最岗,當(dāng)網(wǎng)頁中的圖像過多時(shí),服務(wù)器就會(huì)頻繁地接受和發(fā)送請(qǐng)求朝捆,這將大大降低頁面的加載速度。為了有效地減少服務(wù)器接受和發(fā)送請(qǐng)求的次數(shù)懒豹,提高頁面的加載速度芙盘,出現(xiàn)了CSS精靈技術(shù)(也稱CSS Sprites、CSS雪碧)脸秽。

精靈技術(shù)本質(zhì)

簡(jiǎn)單地說儒老,CSS精靈是一種處理網(wǎng)頁背景圖像的方式。它將一個(gè)頁面涉及到的所有零星背景圖像都集中到一張大圖中去记餐,然后將大圖應(yīng)用于網(wǎng)頁驮樊,這樣,當(dāng)用戶訪問該頁面時(shí)片酝,只需向服務(wù)發(fā)送一次請(qǐng)求囚衔,網(wǎng)頁中的背景圖像即可全部展示出來。通常情況下雕沿,這個(gè)由很多小的背景圖像合成的大圖被稱為精靈圖(雪碧圖)练湿,如下圖所示為京東網(wǎng)站中的一個(gè)精靈圖。

<img src="media/jds.png" style="border: 1px dashed #ccc;" />

精靈技術(shù)的使用

CSS 精靈其實(shí)是將網(wǎng)頁中的一些背景圖像整合到一張大圖中(精靈圖)审轮,然而肥哎,各個(gè)網(wǎng)頁元素通常只需要精靈圖中不同位置的某個(gè)小圖,要想精確定位到精靈圖中的某個(gè)小圖疾渣,就需要使用CSS的background-image篡诽、background-repeat和background-position屬性進(jìn)行背景定位,其中最關(guān)鍵的是使用background-position屬性精確地定位榴捡。

制作精靈圖

CSS 精靈其實(shí)是將網(wǎng)頁中的一些背景圖像整合到一張大圖中(精靈圖)杈女,那我們要做的,就是把小圖拼合成一張大圖。

大部分情況下碧信,精靈圖都是網(wǎng)頁美工做赊琳。

我們精靈圖上放的都是小的裝飾性質(zhì)的背景圖片。 插入圖片不能往上放砰碴。
我們精靈圖的寬度取決于最寬的那個(gè)背景躏筏。 
我們可以橫向擺放也可以縱向擺放,但是每個(gè)圖片之間呈枉,間隔至少隔開偶數(shù)像素合適趁尼。
在我們精靈圖的最低端,留一片空隙猖辫,方便我們以后添加其他精靈圖酥泞。

結(jié)束語: 小公司,背景圖片很少的情況啃憎,沒有必要使用精靈技術(shù)芝囤,維護(hù)成本太高。 如果是背景圖片比較多辛萍,可以建議使用精靈技術(shù)悯姊。

滑動(dòng)門

先來體會(huì)下現(xiàn)實(shí)中的滑動(dòng)門,或者你可以叫做推拉門:

<img src="media/h.gif" />

滑動(dòng)門出現(xiàn)的背景

制作網(wǎng)頁時(shí),為了美觀,常常需要為網(wǎng)頁元素設(shè)置特殊形狀的背景,比如微信導(dǎo)航欄铛纬,有凸起和凹下去的感覺澈驼,最大的問題是里面的字?jǐn)?shù)不一樣多,咋辦?

<img src="media/wxx.jpg" />

為了使各種特殊形狀的背景能夠自適應(yīng)元素中文本內(nèi)容的多少,出現(xiàn)了CSS滑動(dòng)門技術(shù)。它從新的角度構(gòu)建頁面垃僚,使各種特殊形狀的背景能夠自由拉伸滑動(dòng),以適應(yīng)元素內(nèi)部的文本內(nèi)容店印,可用性更強(qiáng)冈在。 最常見于各種導(dǎo)航欄的滑動(dòng)門。

核心技術(shù)

核心技術(shù)就是利用CSS精靈(主要是背景位置)和盒子padding撐開寬度, 以便能適應(yīng)不同字?jǐn)?shù)的導(dǎo)航欄按摘。

一般的經(jīng)典布局都是這樣的:

<li>
  <a href="#">
    <span>導(dǎo)航欄內(nèi)容</span>
  </a>
</li>

總結(jié):

  1. a 設(shè)置 背景左側(cè)包券,padding撐開合適寬度。
  2. span 設(shè)置背景右側(cè)炫贤, padding撐開合適寬度 剩下由文字繼續(xù)撐開寬度溅固。
  3. 之所以a包含span就是因?yàn)?整個(gè)導(dǎo)航都是可以點(diǎn)擊的。

web字體

字體格式

不同瀏覽器所支持的字體格式是不一樣的兰珍,我們有必要了解一下有關(guān)字體格式的知識(shí)侍郭。

1、TureType(.ttf)格式

.ttf字體是Windows和Mac的最常見的字體,是一種RAW格式亮元,支持這種字體的瀏覽器有IE9+猛计、Firefox3.5+、Chrome4+爆捞、Safari3+奉瘤、Opera10+、iOS Mobile煮甥、Safari4.2+盗温;

2、OpenType(.otf)格式

.otf字體被認(rèn)為是一種原始的字體格式成肘,其內(nèi)置在TureType的基礎(chǔ)上卖局,支持這種字體的瀏覽器有Firefox3.5+、Chrome4.0+双霍、Safari3.1+砚偶、Opera10.0+、iOS Mobile洒闸、Safari4.2+蟹演;

3、Web Open Font Format(.woff)格式

woff字體是Web字體中最佳格式顷蟀,他是一個(gè)開放的TrueType/OpenType的壓縮版本,同時(shí)也支持元數(shù)據(jù)包的分離骡技,支持這種字體的瀏覽器有IE9+鸣个、Firefox3.5+、Chrome6+布朦、Safari3.6+囤萤、Opera11.1+;

4是趴、Embedded Open Type(.eot)格式

.eot字體是IE專用字體涛舍,可以從TrueType創(chuàng)建此格式字體,支持這種字體的瀏覽器有IE4+唆途;

5富雅、SVG(.svg)格式

.svg字體是基于SVG字體渲染的一種格式,支持這種字體的瀏覽器有Chrome4+肛搬、Safari3.1+没佑、Opera10.0+、iOS Mobile Safari3.2+温赔;

了解了上面的知識(shí)后蛤奢,我們就需要為不同的瀏覽器準(zhǔn)備不同格式的字體,通常我們會(huì)通過字體生成工具幫我們生成各種格式的字體,因此無需過于在意字體格式間的區(qū)別差異啤贩。

字體圖標(biāo)

圖片是有諸多優(yōu)點(diǎn)的待秃,但是缺點(diǎn)很明顯,比如圖片不但增加了總文件的大小痹屹,還增加了很多額外的"http請(qǐng)求"章郁,這都會(huì)大大降低網(wǎng)頁的性能的。更重要的是圖片不能很好的進(jìn)行“縮放”痢掠,因?yàn)閳D片放大和縮小會(huì)失真驱犹。 我們后面會(huì)學(xué)習(xí)移動(dòng)端響應(yīng)式,很多情況下希望我們的圖標(biāo)是可以縮放的足画。此時(shí)雄驹,一個(gè)非常重要的技術(shù)出現(xiàn)了,額不是出現(xiàn)了淹辞,是以前就有医舆,是被從新"寵幸"啦。象缀。 這就是字體圖標(biāo)(iconfont).

字體圖標(biāo)優(yōu)點(diǎn)

可以做出跟圖片一樣可以做的事情,改變透明度蔬将、旋轉(zhuǎn)度,等..
但是本質(zhì)其實(shí)是文字央星,可以很隨意的改變顏色霞怀、產(chǎn)生陰影、透明效果等等...
本身體積更小莉给,但攜帶的信息并沒有削減毙石。
幾乎支持所有的瀏覽器
移動(dòng)端設(shè)備必備良藥...

字體圖標(biāo)使用流程

總體來說,字體圖標(biāo)按照如下流程:

<img src="media/fontt.png" />

設(shè)計(jì)字體圖標(biāo)

假如圖標(biāo)是我們公司單獨(dú)設(shè)計(jì)颓遏,那就需要第一步了徐矩,這個(gè)屬于UI設(shè)計(jì)人員的工作, 他們?cè)?illustrator 或 Sketch 這類矢量圖形軟件里創(chuàng)建 icon圖標(biāo)叁幢, 比如下圖:

<img src="media/03.jpg" />

之后保存為svg格式滤灯,然后給我們前端人員就好了。

其實(shí)第一步曼玩,我們不需要關(guān)心鳞骤,只需要給我們這些圖標(biāo)就可以了,如果圖標(biāo)是大眾的黍判,網(wǎng)上本來就有的弟孟,可以直接跳過第一步,進(jìn)入第三步样悟。

上傳生成字體包

當(dāng)UI設(shè)計(jì)人員給我們svg文件的時(shí)候拂募,我們需要轉(zhuǎn)換成我們頁面能使用的字體文件庭猩, 而且需要生成的是兼容性的適合各個(gè)瀏覽器的。

? 推薦網(wǎng)站: http://icomoon.io

icomoon字庫

IcoMoon成立于2011年陈症,推出的第一個(gè)自定義圖標(biāo)字體生成器蔼水,它允許用戶選擇他們所需要的圖標(biāo),使它們成一字型录肯。 內(nèi)容種類繁多趴腋,非常全面,唯一的遺憾是國外服務(wù)器论咏,打開網(wǎng)速較慢优炬。

推薦網(wǎng)站: http://www.iconfont.cn/

阿里icon font字庫

http://www.iconfont.cn/

這個(gè)是阿里媽媽M2UX的一個(gè)icon font字體圖標(biāo)字庫,包含了淘寶圖標(biāo)庫和阿里媽媽圖標(biāo)庫厅贪〈阑ぃ可以使用AI制作圖標(biāo)上傳生成。 一個(gè)字养涮,免費(fèi)葵硕,免費(fèi)!贯吓!

fontello

http://fontello.com/

在線定制你自己的icon font字體圖標(biāo)字庫懈凹,也可以直接從GitHub下載整個(gè)圖標(biāo)集,該項(xiàng)目也是開源的悄谐。

Font-Awesome

http://fortawesome.github.io/Font-Awesome/

這是我最喜歡的字庫之一了介评,更新比較快。目前已經(jīng)有369個(gè)圖標(biāo)了爬舰。

Glyphicon Halflings

http://glyphicons.com/

這個(gè)字體圖標(biāo)可以在Bootstrap下免費(fèi)使用威沫。自帶了200多個(gè)圖標(biāo)。

Icons8

https://icons8.com/

提供PNG免費(fèi)下載洼专,像素大能到500PX

[圖片上傳失敗...(image-a314ad-1527494961605)]

下載兼容字體包

剛才上傳完畢, 網(wǎng)站會(huì)給我們把UI做的svg圖片轉(zhuǎn)換為我們的字體格式孵构, 然后下載下來就好了

當(dāng)然屁商,我們不需要自己專門的圖標(biāo),是想網(wǎng)上找?guī)讉€(gè)圖標(biāo)使用颈墅,以上2步可以直接省略了蜡镶, 直接到剛才的網(wǎng)站上找喜歡的下載使用吧。

<img src="media/fontt1.png" />

<img src="media/fontt2.png" />

字體引入到HTML

得到壓縮包之后恤筛,最后一步官还,是最重要的一步了, 就是字體文件已經(jīng)有了毒坛,我們需要引入到我們頁面中望伦。

  1. 首先把 以下4個(gè)文件放入到 fonts文件夾里面林说。 通俗的做法

    [圖片上傳失敗...(image-20689-1527494961606)]

    第一步:在樣式里面聲明字體: 告訴別人我們自己定義的字體
    @font-face {
      font-family: 'icomoon';
      src:  url('fonts/icomoon.eot?7kkyc2');
      src:  url('fonts/icomoon.eot?7kkyc2#iefix') format('embedded-opentype'),
        url('fonts/icomoon.ttf?7kkyc2') format('truetype'),
        url('fonts/icomoon.woff?7kkyc2') format('woff'),
        url('fonts/icomoon.svg?7kkyc2#icomoon') format('svg');
      font-weight: normal;
      font-style: normal;
    }
    
    第二步:給盒子使用字體
    span {
         font-family: "icomoon";
     }
    
    第三步:盒子里面添加結(jié)構(gòu)
    span::before {
          content: "\e900";
     }
    或者  
    <span>?</span>  
    

    追加新圖標(biāo)到原來庫里面

    如果工作中,原來的字體圖標(biāo)不夠用了屯伞,我們需要添加新的字體圖標(biāo)腿箩,但是原來的不能刪除,繼續(xù)使用劣摇,此時(shí)我們需要這樣做

    把壓縮包里面的selection.json 從新上傳珠移,然后,選中自己想要新的圖標(biāo)末融,從新下載壓縮包钧惧,替換原來文件即可。

    <img src="media/fontt5.png" />

京東項(xiàng)目(一)

京東項(xiàng)目介紹

項(xiàng)目名稱:京東網(wǎng)
項(xiàng)目描述:京東首頁公共部分的頭部和尾部制作勾习,京東首頁中間部分浓瞪。

<img src="media/jd.png" />

項(xiàng)目背景

現(xiàn)階段電商類網(wǎng)站很流行,很多同學(xué)畢業(yè)之后會(huì)進(jìn)入電商類企業(yè)工作语卤,同時(shí)電商類網(wǎng)站需要的技術(shù)也是較為復(fù)雜的追逮,這里用京東電商網(wǎng)站復(fù)習(xí)、總結(jié)粹舵、提高前面所學(xué)布局技術(shù)钮孵。其實(shí),最主要的原因還是眼滤,為啥寫京東巴席? 因?yàn)閯?qiáng)東,賺了我們的錢诅需,搶了我們的女神漾唉, 我們也要學(xué)劉強(qiáng)東,賺別人的錢堰塌,搶別人..額赵刑,自己的女神。场刑。般此。

設(shè)計(jì)目標(biāo)

  • 保證瀏覽器 ie7及以上, 火狐, 360, safari,chrome等牵现。誰讓我再測(cè)ie6铐懊,就跟誰急。瞎疼。
  • 熟悉CSS+DIV布局科乎,頁面的搭建工作
  • 了解常用電商類網(wǎng)站的布局模式
  • 為后期京東移動(dòng)端做鋪墊

幾點(diǎn)思考

(1). 開發(fā)工具 sublime 、fireworks(ps)贼急、各種瀏覽器(ie6.7 要測(cè)看心情)

(2). CSS Reset 類庫,為跨瀏覽器兼容做準(zhǔn)備(也可以直接運(yùn)用jd網(wǎng)站的初始化)

normalize.css   只是一個(gè)很小的CSS文件茅茂,但它在默認(rèn)的HTML元素樣式上提供了跨瀏覽器的高度一致性捏萍。相比于傳統(tǒng)的CSS reset,Normalize.css是一種現(xiàn)代的玉吁、為HTML5準(zhǔn)備的優(yōu)質(zhì)替代方案照弥。Normalize.css現(xiàn)在已經(jīng)被用于Twitter Bootstrap、HTML5 Boilerplate进副、GOV.UK这揣、Rdio、CSS Tricks 以及許許多多其他框架影斑、工具和網(wǎng)站上给赞。 你值得擁有。矫户。 

- 保護(hù)有用的瀏覽器默認(rèn)樣式而不是完全去掉它們

- 一般化的樣式:為大部分HTML元素提供

- 修復(fù)瀏覽器自身的bug并保證各瀏覽器的一致性

- 優(yōu)化CSS可用性:用一些小技巧

- 解釋代碼:用注釋和詳細(xì)的文檔來

(3). 技術(shù)棧

HTML 結(jié)構(gòu) + CSS  布局 (因?yàn)槲覀兙蜁?huì)這些片迅。。皆辽。嘻嘻)

(4). 低版本瀏覽器 單獨(dú)制作一個(gè)跳轉(zhuǎn)頁面 (都是孩子柑蛇,也舍不得打,舍不得扔)

https://h5.m.jd.com/dev/3dm8aE4LDBNMkDfcCaRxLnVQ7rqo/index.html

<img src="media/di.png" width="600" />

目錄說明

要實(shí)現(xiàn)結(jié)構(gòu)和樣式相分離的設(shè)計(jì)思想驱闷。 根目錄下有這4個(gè)文件(目錄)耻台。

名稱 說明
css 用于存放CSS文件
images 用于存放圖片
index 京東首頁 HTML
js 用于后期存放javascript文件

運(yùn)用知識(shí)點(diǎn)

引入ico圖標(biāo)

<img src="media/ico.png" style="border: 1px dashed #ccc; padding:3px;" />

代碼:  <link rel="shortcut icon" href="favicon.ico"  type="image/x-icon"/>     

注意:

  1. 她(它)不是iconfont字體哦 也不是圖片。

  2. 位置是放到 head 標(biāo)簽中間空另。

  3. 后面的type="image/x-icon" 屬性可以省略盆耽。(我相信你也愿意省略。)

  4. 為了兼容性扼菠,請(qǐng)將favicon.ico 這個(gè)圖標(biāo)放到根目錄下摄杂。(我們就不要任性了,聽話放位置循榆,省很多麻煩主卫。胰耗。你好岖赋,我也好)

    ?

轉(zhuǎn)換ico圖標(biāo)

我們可以自己做的圖片赖阻,轉(zhuǎn)換為 ico圖標(biāo),以便放到我們站點(diǎn)里面浦楣。 http://www.bitbug.net/

網(wǎng)站優(yōu)化三大標(biāo)簽

SEO是由英文Search Engine Optimization縮寫而來, 中文意譯為“搜索引擎優(yōu)化”咪辱!SEO是指通過對(duì)網(wǎng)站進(jìn)行站內(nèi)優(yōu)化振劳、網(wǎng)站結(jié)構(gòu)調(diào)整、網(wǎng)站內(nèi)容建設(shè)油狂、網(wǎng)站代碼優(yōu)化等)和站外優(yōu)化历恐,從而提高網(wǎng)站的關(guān)鍵詞排名以及公司產(chǎn)品的曝光度寸癌。 簡(jiǎn)單的說就是,把產(chǎn)品做好弱贼,搜索引擎就會(huì)介紹客戶來蒸苇。

我們現(xiàn)在階段主要進(jìn)行站內(nèi)優(yōu)化。網(wǎng)站優(yōu)化吮旅,我們應(yīng)該要懂溪烤。。庇勃。

<img src="media/san.png" />

網(wǎng)頁title 標(biāo)題

title具有不可替代性檬嘀,是我們的內(nèi)頁第一個(gè)重要標(biāo)簽,是搜索引擎了解網(wǎng)頁的入口责嚷,和對(duì)網(wǎng)頁主題歸屬的最佳判斷點(diǎn)鸳兽。

<img src="media/title.png" width="500" />

建議:

首頁標(biāo)題:網(wǎng)站名(產(chǎn)品名)- 網(wǎng)站的介紹

例如:

京東(JD.COM)-綜合網(wǎng)購首選-正品低價(jià)、品質(zhì)保障罕拂、配送及時(shí)揍异、輕松購物!

小米商城 - 小米5s爆班、紅米Note 4衷掷、小米MIX、小米筆記本官方網(wǎng)站

Description 網(wǎng)站說明

對(duì)于關(guān)鍵詞的作用明顯降低蛋济,但由于很多搜索引擎棍鳖,仍然大量采用網(wǎng)頁的MATA標(biāo)簽中描述部分作為搜索結(jié)果的“內(nèi)容摘要”。 就是簡(jiǎn)要說明我們網(wǎng)站的主要做什么的碗旅。
我們提倡渡处,Description作為網(wǎng)站的總體業(yè)務(wù)和主題概括,多采用“我們是…”“我們提供…”“×××網(wǎng)作為…”“電話:010…”之類語句祟辟。

京東網(wǎng):

<meta name="description" content="京東JD.COM-專業(yè)的綜合網(wǎng)上購物商城,銷售家電医瘫、數(shù)碼通訊、電腦旧困、家居百貨醇份、服裝服飾、母嬰吼具、圖書僚纷、食品等數(shù)萬個(gè)品牌優(yōu)質(zhì)商品.便捷、誠信的服務(wù)拗盒,為您提供愉悅的網(wǎng)上購物體驗(yàn)!" />

注意點(diǎn):

  1. 描述中出現(xiàn)關(guān)鍵詞怖竭,與正文內(nèi)容相關(guān),這部分內(nèi)容是給人看的陡蝇,所以要寫的很詳細(xì)痊臭,讓人感興趣哮肚, 吸引用戶點(diǎn)擊。
  2. 同樣遵循簡(jiǎn)短原則广匙,字符數(shù)含空格在內(nèi)不要超過 120 個(gè)漢字允趟。
  3. 補(bǔ)充在 title 和 keywords 中未能充分表述的說明.
  4. 用英文逗號(hào) 關(guān)鍵詞1,關(guān)鍵詞2
<meta name="description" content="小米商城直營小米公司旗下所有產(chǎn)品,囊括小米手機(jī)系列小米MIX鸦致、小米Note 2潮剪,紅米手機(jī)系列紅米Note 4、紅米4蹋凝,智能硬件鲁纠,配件及小米生活周邊,同時(shí)提供小米客戶服務(wù)及售后支持鳍寂。" />

Keywords 關(guān)鍵字

Keywords是頁面關(guān)鍵詞改含,是搜索引擎關(guān)注點(diǎn)之一。Keywords應(yīng)該限制在6~8個(gè)關(guān)鍵詞左右迄汛,電商類網(wǎng)站可以多 少許捍壤。

京東網(wǎng):

<meta name="Keywords" content="網(wǎng)上購物,網(wǎng)上商城,手機(jī),筆記本,電腦,MP3,CD,VCD,DV,相機(jī),數(shù)碼,配件,手表,存儲(chǔ)卡,京東" />

小米網(wǎng):

<meta name="keywords" content="小米,小米6,紅米Note4,小米MIX,小米商城" />

頂部(快捷菜單)所用知識(shí)點(diǎn)

知識(shí)點(diǎn) 說明
通欄的盒子 不用給寬度 默認(rèn)為 100% ?但是加了浮動(dòng)和定位的盒子需要 添加 100%
盒子居中對(duì)齊 margin: auto; 注意必須有寬度的塊級(jí)元素,文字水平居中對(duì)齊是 text-align:center;
行高會(huì)繼承 文字性質(zhì)的鞍爱,比如 顏色鹃觉、文字大小、字體睹逃、行高等會(huì)繼承父級(jí)元素
浮動(dòng)元素盗扇、固定定位,絕對(duì)定位會(huì)模式轉(zhuǎn)換 具有行內(nèi)塊特性沉填,比如一行放多個(gè)疗隶,有高度和寬度,如果沒有指定寬度翼闹,則會(huì)根據(jù)內(nèi)容多少撐開斑鼻。

logo 和搜索 header 區(qū)域所用知識(shí)點(diǎn)

網(wǎng)頁布局穩(wěn)定性

<img src="media/x.png" />

寬度剩余法:

<img src="media/w.png" />

知識(shí)點(diǎn) 說明
浮動(dòng)元素特性 1. 浮動(dòng)可以讓多個(gè)元素同一行顯示 2. 浮動(dòng)的元素是頂部對(duì)齊
logo優(yōu)化 text-indent: -20000px; 隱藏文字, 背景圖片
清除浮動(dòng) 清除浮動(dòng)的目的就是為了解決父親高度為0的問題
鼠標(biāo)樣式 cursor: pointer; 小手 cursor: move; 四角箭頭 cursor: text; 插入光標(biāo) cursor: default; 小白
不允許換行 white-space: nowrap;

nav導(dǎo)航欄所用知識(shí)點(diǎn)

名稱 說明
邊框底側(cè) border-bottom: 2px solid #ccc;
定位重點(diǎn) 絕對(duì)定位不占位置 相對(duì)定位占有位置
標(biāo)簽語義化dl dl也是塊級(jí)元素 dt 是 定義標(biāo)題 dd 是定義描述猎荠,dd是圍繞這dt來描述的坚弱,也就是說,dd算是dt 的解釋說明詳細(xì)分解关摇。
標(biāo)題標(biāo)簽h 盡量少用h1荒叶,可以多用h2和h3等標(biāo)簽

頁面底部所用知識(shí)點(diǎn)

名稱 說明
絕對(duì)定位的盒子居中對(duì)齊 盒子 left 50% 然后通過 margin 負(fù)值自己的寬度一半(固定定位也是如此)

固定定位的盒子靠近版心右側(cè)對(duì)齊

跟絕對(duì)定位的盒子居中對(duì)齊原理差不多。

left 50% 然后 margin-left 版心寬度一半输虱。

<img src="media/guding.png" width="500" />

學(xué)習(xí)目標(biāo):

  • 掌握京東中間部分制作

  • 理解BFC使用

  • 了解優(yōu)雅降級(jí)和漸進(jìn)增強(qiáng)

  • 了解CSS壓縮和驗(yàn)證工具

    typora-copy-images-to: media


京東項(xiàng)目(二)

nav導(dǎo)航欄所用知識(shí)點(diǎn)

名稱 說明
邊框底側(cè) border-bottom: 2px solid #ccc;
定位重點(diǎn) 絕對(duì)定位不占位置 相對(duì)定位占有位置
標(biāo)簽語義化dl dl也是塊級(jí)元素 dt 是 定義標(biāo)題 dd 是定義描述些楣,dd是圍繞這dt來描述的,也就是說,dd算是dt 的解釋說明詳細(xì)分解戈毒。
標(biāo)題標(biāo)簽h 盡量少用h1,可以多用h2和h3等標(biāo)簽

固定定位的盒子靠近版心右側(cè)對(duì)齊

跟絕對(duì)定位的盒子居中對(duì)齊原理差不多横堡。

left 50% 然后 margin-left 版心寬度一半埋市。

<img src="media/guding.png" width="500" />

焦點(diǎn)圖部分所用知識(shí)點(diǎn)

名稱 說明
圓角矩形 border-radius: 左上角 右上角 右下角 左下角。

負(fù)值自己的寬度一半(固定定位也是如此)

背景半透明

1.強(qiáng)烈推薦: background: rgba(r,g,b,alpha);

? r,g,b 是紅綠藍(lán)的顏色命贴, alpha 是透明度的意思道宅,取值范圍是 0~1 之間。

2.了解ie低版本瀏覽器 半透明

filter:Alpha(opacity=50) 胸蛛; // opacity值為0 到 100

但是 此屬性是盒子半透明污茵,不是背景半透明哦,因?yàn)槔锩娴膬?nèi)容也一起半透明了

因此葬项,低版本的 ie6.7瀏覽器泞当,我們不需要透明了,直接采用優(yōu)雅降級(jí)的做法民珍。

background: gary;

background: rgba(0,0,0,.2);

寫上兩句 背景襟士, 低版本ie只執(zhí)行g(shù)ray, 其他瀏覽器執(zhí)行 半透明下面這一句嚷量。

CSS W3C 統(tǒng)一驗(yàn)證工具

CssStats 是一個(gè)在線的 CSS 代碼分析工具

網(wǎng)址是:  http://www.cssstats.com/

如果你想要更全面的陋桂,這個(gè)神奇,你值得擁有:

W3C 統(tǒng)一驗(yàn)證工具: http://validator.w3.org/unicorn/ ☆☆☆☆☆

因?yàn)樗梢詸z測(cè)本地文件哦5堋嗜历!

http://tool.chinaz.com/Tools/CssFormat.aspx css 代碼壓縮

HTML5新標(biāo)簽與特性

兼容性問題 (ie9 以上的版本)

<img src="media/html.jpg" />

文檔類型設(shè)定

  • document
    • HTML: sublime 輸入 html:4s
    • XHTML: sublime 輸入 html:xt
    • HTML5 sublime 輸入 html:5 <!DOCTYPE html>

字符設(shè)定

  • <meta http-equiv="charset" content="utf-8">:HTML與XHTML中建議這樣去寫
  • <meta charset="utf-8">:HTML5的標(biāo)簽中建議這樣去寫

常用新標(biāo)簽

w3c 手冊(cè)中文官網(wǎng) : http://w3school.com.cn/

  • header:定義文檔的頁眉 頭部

  • nav:定義導(dǎo)航鏈接的部分

  • footer:定義文檔或節(jié)的頁腳 底部

  • article:定義文章。

  • section:定義文檔中的節(jié)(section抖所、區(qū)段)

  • aside:定義其所處內(nèi)容之外的內(nèi)容 側(cè)邊

    <header> 語義 :定義頁面的頭部  頁眉</header>
    <nav>  語義 :定義導(dǎo)航欄 </nav> 
    <footer> 語義: 定義 頁面底部 頁腳</footer>
    <article> 語義:  定義文章</article>
    <section> 語義: 定義區(qū)域</section>
    <aside> 語義: 定義其所處內(nèi)容之外的內(nèi)容 側(cè)邊</aside>
    

    ?

  • datalist 標(biāo)簽定義選項(xiàng)列表梨州。請(qǐng)與 input 元素配合使用該元素

    <input type="text" value="請(qǐng)輸入明星" list="star"/>
      <datalist id="star">
          <option value="劉德華">劉德華</option>
          <option value="劉若英">劉若英</option>
          <option value="劉曉慶">劉曉慶</option>
          <option value="戚薇">戚薇</option>
          <option value="戚繼光">戚繼光</option>
      </datalist>
    

    ?

  • fieldset 元素可將表單內(nèi)的相關(guān)元素分組,打包 legend 搭配使用

    <fieldset>
              <legend>用戶登錄</legend>  標(biāo)題
              用戶名: <input type="text"><br /><br />
              密 碼: <input type="password">
    </fieldset>
    

    ?

新增的input type屬性值:

**類型****** **使用示例****** **含義******
**email****** <input type="email"> 輸入郵箱格式
**tel****** <input type="tel"> 輸入手機(jī)號(hào)碼格式
**url****** <input type="url"> 輸入url格式
**number****** <input type="number"> 輸入數(shù)字格式
**search****** <input type="search"> 搜索框(體現(xiàn)語義化)
**range****** <input type="range"> 自由拖動(dòng)滑塊
**time****** <input type="time"> 小時(shí)分鐘
**date****** <input type="date"> 年月日
**datetime****** <input type="datetime"> 時(shí)間
**month****** <input type="month"> 月年
**week****** <input type="week"> 星期 年

常用新屬性

**屬性****** **用法****** **含義******
**placeholder****** <input type="text" placeholder="請(qǐng)輸入用戶名"> 占位符 當(dāng)用戶輸入的時(shí)候 里面的文字消失 刪除所有文字部蛇,自動(dòng)返回
**autofocus****** <input type="text" autofocus> 規(guī)定當(dāng)頁面加載時(shí) input 元素應(yīng)該自動(dòng)獲得焦點(diǎn)
**multiple****** <input type="file" multiple> 多文件上傳
**autocomplete****** <input type="text" autocomplete="off"> 規(guī)定表單是否應(yīng)該啟用自動(dòng)完成功能 有2個(gè)值摊唇,一個(gè)是on 一個(gè)是off on 代表記錄已經(jīng)輸入的值 1.autocomplete 首先需要提交按鈕
2.這個(gè)表單您必須給他名字
**required****** <input type="text" required> 必填項(xiàng) 內(nèi)容不能為空
**accesskey****** <input type="text" accesskey="s"> 規(guī)定激活(使元素獲得焦點(diǎn))元素的快捷鍵 采用 alt + s的形式

綜合案例

<form action="">
  <fieldset>
    <legend>學(xué)生檔案</legend>
    <label for="userName">姓名:</label>
    <input type="text" name="userName" id="userName" placeholder="請(qǐng)輸入用戶名"> <br>
    <label for="userPhone">手機(jī)號(hào)碼:</label>
    <input type="tel" name="userPhone" id="userPhone" pattern="^1\d{10}$"><br>
    <label for="email">郵箱地址:</label>
    <input type="email" required name="email" id="email"><br>
    <label for="collage">所屬學(xué)院:</label>
    <input type="text" name="collage" id="collage" list="cList" placeholder="請(qǐng)選擇"><br>
    <datalist id="cList">
      <option value="前端與移動(dòng)開發(fā)學(xué)院"></option>
      <option value="java學(xué)院"></option>
      <option value="c++學(xué)院"></option>
    </datalist><br>
    <label for="score">入學(xué)成績(jī):</label>
    <input type="number" max="100" min="0" value="0" id="score"><br>
   <form action="">
    <fieldset>
        <legend>學(xué)生檔案思密達(dá)</legend>
        <label>姓名: <input type="text" placeholder="請(qǐng)輸入學(xué)生名字"/></label> <br /><br />
        <label>手機(jī)號(hào): <input type="tel" /></label> <br /><br />
        <label>郵箱: <input type="email" /></label> <br /><br />
        <label>所屬學(xué)院:  <input type="text" placeholder="請(qǐng)選擇學(xué)院" list="xueyuan"/>
        <datalist id="xueyuan">
            <option>java學(xué)院</option>
            <option>前端學(xué)院</option>
            <option>php學(xué)院</option>
            <option>設(shè)計(jì)學(xué)院</option>
        </datalist>

        <br /><br />

        <label>出生日期:   <input type="date" /></label> <br /><br />
        <label>成績(jī):  <input type="number" /></label> <br /><br />
        <label>畢業(yè)時(shí)間:  <input type="date" /></label> <br /><br />
        <input type="submit" />  <input type="reset" />
    </fieldset>
    </form>
    <label for="inTime">入學(xué)日期:</label>
    <input type="date" id="inTime" name="inTime"><br>
    <label for="leaveTime">畢業(yè)日期:</label>
    <input type="date" id="leaveTime" name="leaveTime"><br>
    <input type="submit">
  </fieldset>
</form>

多媒體標(biāo)簽

  • embed:標(biāo)簽定義嵌入的內(nèi)容
  • audio:播放音頻
  • video:播放視頻

多媒體 embed(會(huì)使用)

embed可以用來插入各種多媒體,格式可以是 Midi涯鲁、Wav巷查、AIFF、AU抹腿、MP3等等岛请。url為音頻或視頻文件及其路徑,可以是相對(duì)路徑或絕對(duì)路徑警绩。

因?yàn)榧嫒菪詥栴}崇败,我們這里只講解 插入網(wǎng)絡(luò)視頻, 后面H5會(huì)講解 audio 和video 視頻多媒體。

<embed src="http://player.youku.com/player.php/sid/XMTI4MzM2MDIwOA==/v.swf" allowFullScreen="true" quality="high" width="480" height="400" align="middle" allowScriptAccess="always" type="application/x-shockwave-flash"></embed>

?

<img src="media/embed.png" />

優(yōu)酷后室,土豆缩膝,愛奇藝,騰訊岸霹、樂視等等

  1. 先上傳
  2. 在分享

多媒體 audio

HTML5通過<audio>標(biāo)簽來解決音頻播放的問題疾层。

使用相當(dāng)簡(jiǎn)單,如下圖所示

[圖片上傳失敗...(image-3e292e-1527494961606)]

并且可以通過附加屬性可以更友好控制音頻的播放贡避,如:

autoplay 自動(dòng)播放

controls 是否顯不默認(rèn)播放控件

loop 循環(huán)播放 如果這個(gè)屬性不寫 默認(rèn)播放一次 loop 或者 loop = “l(fā)oop” 表示無限循環(huán)

由于版權(quán)等原因痛黎,不同的瀏覽器可支持播放的格式是不一樣的,如下圖供參考

[圖片上傳失敗...(image-49a501-1527494961606)]

多瀏覽器支持的方案刮吧,如下圖

<source> 標(biāo)簽允許您規(guī)定可替換的視頻/音頻文件供瀏覽器根據(jù)它對(duì)媒體類型或者編解碼器的支持進(jìn)行選擇

[圖片上傳失敗...(image-772458-1527494961606)]

多媒體 video

HTML5通過<audio>標(biāo)簽來解決音頻播放的問題湖饱。

同音頻播放一樣,<video>使用也相當(dāng)簡(jiǎn)單杀捻,如下圖

[圖片上傳失敗...(image-68a993-1527494961606)]

同樣井厌,通過附加屬性可以更友好的控制視頻的播放

autoplay 自動(dòng)播放

controls 是否顯示默認(rèn)播放控件

loop 循環(huán)播放

width 設(shè)置播放窗口寬度

height 設(shè)置播放窗口的高度

由于版權(quán)等原因,不同的瀏覽器可支持播放的格式是不一樣的致讥,如下圖供參考

[圖片上傳失敗...(image-8a5ef1-1527494961606)]

**多瀏覽器支持的方案旗笔,如下圖******

[圖片上傳失敗...(image-1c1c3d-1527494961606)]

CSS3 新增選擇器

結(jié)構(gòu)(位置)偽類選擇器(CSS3)

  • :first-child :選取屬于其父元素的首個(gè)子元素的指定選擇器
  • :last-child :選取屬于其父元素的最后一個(gè)子元素的指定選擇器
  • :nth-child(n) : 匹配屬于其父元素的第 N 個(gè)子元素,不論元素的類型
  • :nth-last-child(n) :選擇器匹配屬于其元素的第 N 個(gè)子元素的每個(gè)元素拄踪,不論元素的類型蝇恶,從最后一個(gè)子元素開始計(jì)數(shù)。
    n 可以是數(shù)字惶桐、關(guān)鍵詞或公式
  • ?
li:first-child { /*  選擇第一個(gè)孩子 */
                color: pink; 
            }
li:last-child {   /* 最后一個(gè)孩子 */
                color: purple;
            }
li:nth-child(4) {   /* 選擇第4個(gè)孩子  n  代表 第幾個(gè)的意思 */ 
                color: skyblue;
            }

屬性選擇器

選取標(biāo)簽帶有某些特殊屬性的選擇器 我們成為屬性選擇器

/* 獲取到 擁有 該屬性的元素 */
div[class^=font] { /*  class^=font 表示 font 開始位置就行了 */
            color: pink;
        }
div[class$=footer] { /*  class$=footer 表示 footer 結(jié)束位置就行了 */
            color: skyblue;
        }
div[class*=tao] { /* class*=tao  *=  表示tao 在任意位置都可以 */
            color: green;
        }
<div class="font12">屬性選擇器</div>
    <div class="font12">屬性選擇器</div>
    <div class="font24">屬性選擇器</div>
    <div class="font24">屬性選擇器</div>
    <div class="font24">屬性選擇器</div>
    <div class="24font">屬性選擇器123</div>
    <div class="sub-footer">屬性選擇器footer</div>
    <div class="jd-footer">屬性選擇器footer</div>
    <div class="news-tao-nav">屬性選擇器</div>
    <div class="news-tao-header">屬性選擇器</div>
    <div class="tao-header">屬性選擇器</div>

偽元素選擇器(CSS3)

  1. E::first-letter文本的第一個(gè)單詞或字(如中文撮弧、日文、韓文等)
  2. E::first-line 文本第一行姚糊;
  3. E::selection 可改變選中文本的樣式贿衍;
p::first-letter {
  font-size: 20px;
  color: hotpink;
}

/* 首行特殊樣式 */
p::first-line {
  color: skyblue;
}

p::selection {
  /* font-size: 50px; */
  color: orange;
}

4、E::before和E::after

在E元素內(nèi)部的開始位置和結(jié)束位創(chuàng)建一個(gè)元素救恨,該元素為行內(nèi)元素贸辈,且必須要結(jié)合content屬性使用。

div::befor {
  content:"開始";
}
div::after {
  content:"結(jié)束";
}

E:after肠槽、E:before 在舊版本里是偽元素擎淤,CSS3的規(guī)范里“:”用來表示偽類,“::”用來表示偽元素秸仙,但是在高版本瀏覽器下E:after嘴拢、E:before會(huì)被自動(dòng)識(shí)別為E::after、E::before寂纪,這樣做的目的是用來做兼容處理席吴。

":" 與 "::" 區(qū)別在于區(qū)分偽類和偽元素

之所以被稱為偽元素赌结,是因?yàn)樗麄儾皇钦嬲捻撁嬖兀琱tml沒有對(duì)應(yīng)的元素孝冒,但是其所有用法和表現(xiàn)行為與真正的頁面元素一樣柬姚,可以對(duì)其使用諸如頁面元素一樣的css樣式,表面上看上去貌似是頁面的某些元素來展現(xiàn)庄涡,實(shí)際上是css樣式展現(xiàn)的行為伤靠,因此被稱為偽元素。是偽元素在html代碼機(jī)構(gòu)中的展現(xiàn)啼染,可以看出無法偽元素的結(jié)構(gòu)無法審查

注意

偽元素:before和:after添加的內(nèi)容默認(rèn)是inline元素**;這個(gè)兩個(gè)偽元素的content屬性焕梅,表示偽元素的內(nèi)容,設(shè)置:before和:after時(shí)必須設(shè)置其content屬性迹鹅,否則偽元素就不起作用。

CSS3盒模型

CSS3中可以通過box-sizing 來指定盒模型贞言,即可指定為content-box斜棚、border-box,這樣我們計(jì)算盒子大小的方式就發(fā)生了改變该窗。

可以分成兩種情況:

1弟蚀、box-sizing: content-box 盒子大小為 width + padding + border content-box:此值為其默認(rèn)值,其讓元素維持W3C的標(biāo)準(zhǔn)Box Mode

2酗失、box-sizing: border-box 盒子大小為 width 就是說 padding 和 border 是包含到width里面的

注:上面的標(biāo)注的width指的是CSS屬性里設(shè)置的width: length义钉,content的值是會(huì)自動(dòng)調(diào)整的。

div:first-child {
            width: 200px;
            height: 200px;
            background-color: pink; 
            box-sizing: content-box;  /*  就是以前的標(biāo)準(zhǔn)盒模型  w3c */
            padding: 10px;
            border: 15px solid red;
            /* 盒子大小為 width + padding + border   content-box:此值為其默認(rèn)值规肴,其讓元素維持W3C的標(biāo)準(zhǔn)Box Mode */
        }
        div:last-child {
            width: 200px;
            height: 200px;
            background-color: purple;
            padding: 10px;
            box-sizing: border-box;   /* padding border  不撐開盒子 */
            border: 15px solid red;
            /* margin: 10px; */
            /* 盒子大小為 width    就是說  padding 和 border 是包含到width里面的 */
}

學(xué)成在線綜合案例

過渡(CSS3)

過渡(transition)是CSS3中具有顛覆性的特征之一捶闸,我們可以在不使用 Flash 動(dòng)畫或 JavaScript 的情況下,當(dāng)元素從一種樣式變換為另一種樣式時(shí)為元素添加效果拖刃。

幀動(dòng)畫:通過一幀一幀的畫面按照固定順序和速度播放删壮。如電影膠片

[圖片上傳失敗...(image-f478b0-1527494961606)]

<img src="media/zhen.gif" />

在CSS3里使用transition可以實(shí)現(xiàn)補(bǔ)間動(dòng)畫(過渡效果),并且當(dāng)前元素只要有“屬性”發(fā)生變化時(shí)即存在兩種狀態(tài)(我們用A和B代指)兑牡,就可以實(shí)現(xiàn)平滑的過渡央碟,為了方便演示采用hover切換兩種狀態(tài),但是并不僅僅局限于hover狀態(tài)來實(shí)現(xiàn)過渡均函。

語法格式:

transition: 要過渡的屬性  花費(fèi)時(shí)間  運(yùn)動(dòng)曲線  何時(shí)開始;
如果有多組屬性變化亿虽,還是用逗號(hào)隔開。
屬性 描述 CSS
transition 簡(jiǎn)寫屬性苞也,用于在一個(gè)屬性中設(shè)置四個(gè)過渡屬性经柴。 3
transition-property 規(guī)定應(yīng)用過渡的 CSS 屬性的名稱。 3
transition-duration 定義過渡效果花費(fèi)的時(shí)間墩朦。默認(rèn)是 0坯认。 3
transition-timing-function 規(guī)定過渡效果的時(shí)間曲線。默認(rèn)是 "ease"。 3
transition-delay 規(guī)定過渡效果何時(shí)開始牛哺。默認(rèn)是 0陋气。 3

如果想要所有的屬性都變化過渡, 寫一個(gè)all 就可以

transition-duration 花費(fèi)時(shí)間 單位是 秒 s 比如 0.5s 這個(gè)s單位必須寫 ms 毫秒

運(yùn)動(dòng)曲線 默認(rèn)是 ease

何時(shí)開始 默認(rèn)是 0s 立馬開始

運(yùn)動(dòng)曲線示意圖:

[圖片上傳失敗...(image-2ba49-1527494961606)]

div {
            width: 200px;
            height: 100px;
            background-color: pink;
            /* transition: 要過渡的屬性  花費(fèi)時(shí)間  運(yùn)動(dòng)曲線  何時(shí)開始; */
            transition: width 0.6s ease 0s, height 0.3s ease-in 1s;
            /* transtion 過渡的意思  這句話寫到div里面而不是 hover里面 */
  
            
}
div:hover {  /* 鼠標(biāo)經(jīng)過盒子引润,我們的寬度變?yōu)?00 */

            width: 600px;
            height: 300px
}

transition: all 0.6s;  /* 所有屬性都變化用all 就可以了  后面?zhèn)z個(gè)屬性可以省略 */

2D變形(CSS3) transform

transform是CSS3中具有顛覆性的特征之一返咱,可以實(shí)現(xiàn)元素的位移、旋轉(zhuǎn)嵌牺、傾斜蒙保、縮放,甚至支持矩陣方式奴曙,配合過渡和即將學(xué)習(xí)的動(dòng)畫知識(shí)别凹,可以取代大量之前只能靠Flash才可以實(shí)現(xiàn)的效果。

變形轉(zhuǎn)換 transform transform 變換 變形的意思 《 transformers 變形金剛》

移動(dòng) translate(x, y)

translate 移動(dòng)平移的意思

[圖片上傳失敗...(image-d751fe-1527494961606)]

translate(50px,50px);

使用translate方法來將文字或圖像在水平方向和垂直方向上分別垂直移動(dòng)50像素洽糟。

可以改變?cè)氐奈恢寐疲瑇、y可為負(fù)值坤溃;

 translate(x,y)水平方向和垂直方向同時(shí)移動(dòng)(也就是X軸和Y軸同時(shí)移動(dòng))
 translateX(x)僅水平方向移動(dòng)(X軸移動(dòng))
 translateY(Y)僅垂直方向移動(dòng)(Y軸移動(dòng))
.box {
  width: 499.9999px;
  height: 400px;
  background: pink;
  position: absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);  /* 走的自己的一半 */
}

讓定位的盒子水平居中

縮放 scale(x, y)

[圖片上傳失敗...(image-8a7409-1527494961606)]

transform:scale(0.8,1);

可以對(duì)元素進(jìn)行水平和垂直方向的縮放拍霜。該語句使用scale方法使該元素在水平方向上縮小了20%,垂直方向上不縮放薪介。

scale(X,Y)使元素水平方向和垂直方向同時(shí)縮放(也就是X軸和Y軸同時(shí)縮放)
scaleX(x)元素僅水平方向縮放(X軸縮放)
scaleY(y)元素僅垂直方向縮放(Y軸縮放)

scale()的取值默認(rèn)的值為1祠饺,當(dāng)值設(shè)置為0.01到0.99之間的任何值,作用使一個(gè)元素縮兄吠裆;而任何大于或等于1.01的值,作用是讓元素放大

旋轉(zhuǎn) rotate(deg)

可以對(duì)元素進(jìn)行旋轉(zhuǎn)烂完,正值為順時(shí)針试疙,負(fù)值為逆時(shí)針;

[圖片上傳失敗...(image-40da17-1527494961606)]

transform:rotate(45deg);

注意單位是 deg 度數(shù)

transform-origin可以調(diào)整元素轉(zhuǎn)換變形的原點(diǎn)

[圖片上傳失敗...(image-b84721-1527494961606)]

 div{transform-origin: left top;transform: rotate(45deg); }  /* 改變?cè)卦c(diǎn)到左上角抠蚣,然后進(jìn)行順時(shí)旋轉(zhuǎn)45度 */    

如果是4個(gè)角祝旷,可以用 left top這些,如果想要精確的位置嘶窄, 可以用 px 像素怀跛。

 div{transform-origin: 10px 10px;transform: rotate(45deg); }  /* 改變?cè)卦c(diǎn)到x 為10  y 為10,然后進(jìn)行順時(shí)旋轉(zhuǎn)45度 */ 

案例旋轉(zhuǎn)楚喬傳

div {
            width: 250px;
            height: 170px;
            border: 1px solid pink;
            margin: 200px auto;
            position: relative;

        }
        div img {
            width: 100%;
            height: 100%;
            position: absolute;
            top: 0;
            left: 0;
            transition: all 0.6s;
            transform-origin: top right;
        
        }
        div:hover img:nth-child(1) {  /* 鼠標(biāo)經(jīng)過div  第一張圖片旋轉(zhuǎn) */
            transform: rotate(60deg);
        }
        div:hover img:nth-child(2) {  
            transform: rotate(120deg);
        }
        div:hover img:nth-child(3) {  
            transform: rotate(180deg);
        }
        div:hover img:nth-child(4) {  
            transform: rotate(240deg);
        }
        div:hover img:nth-child(5) {  
            transform: rotate(300deg);
        }
        div:hover img:nth-child(6) {  
            transform: rotate(360deg);
        }

傾斜 skew(deg, deg)

[圖片上傳失敗...(image-85750-1527494961606)]

transform:skew(30deg,0deg);

該實(shí)例通過skew方法把元素水平方向上傾斜30度柄冲,處置方向保持不變吻谋。

可以使元素按一定的角度進(jìn)行傾斜,可為負(fù)值现横,第二個(gè)參數(shù)不寫默認(rèn)為0漓拾。

3D變形(CSS3) transform

2d x y

3d x y z

左手坐標(biāo)系

伸出左手阁最,讓拇指和食指成“L”形,大拇指向右骇两,食指向上速种,中指指向前方。這樣我們就建立了一個(gè)左手坐標(biāo)系低千,拇指配阵、食指和中指分別代表X、Y示血、Z軸的正方向棋傍。如下圖

[圖片上傳失敗...(image-29c3e-1527494961606)]

CSS3中的3D坐標(biāo)系與上述的3D坐標(biāo)系是有一定區(qū)別的,相當(dāng)于其繞著X軸旋轉(zhuǎn)了180度难审,如下圖

[圖片上傳失敗...(image-c6134c-1527494961606)]

簡(jiǎn)單記住他們的坐標(biāo):

x左邊是負(fù)的瘫拣,右邊是正的

y 上面是負(fù)的, 下面是正的

z 里面是負(fù)的剔宪, 外面是正的

rotateX()

就是沿著 x 立體旋轉(zhuǎn).

[圖片上傳失敗...(image-d72799-1527494961606)]

img {
  transition:all 0.5s ease 0s;
}
img:hove {

  transform:rotateX(180deg);
}

rotateY()

沿著y軸進(jìn)行旋轉(zhuǎn)

[圖片上傳失敗...(image-fb35bd-1527494961606)]

img {
  transition:all 0.5s ease 0s;
}
img:hove {

  transform:rotateX(180deg);
}

rotateZ()?

沿著z軸進(jìn)行旋轉(zhuǎn)

img {
  transition:all .25s ease-in 0s;
}
img:hover {
  /* transform:rotateX(180deg); */
  /* transform:rotateY(180deg); */
  /* transform:rotateZ(180deg); */
  /* transform:rotateX(45deg) rotateY(180deg) rotateZ(90deg) skew(0,10deg); */
}

透視(perspective)

電腦顯示屏是一個(gè)2D平面,圖像之所以具有立體感(3D效果)壹无,其實(shí)只是一種視覺呈現(xiàn)葱绒,通過透視可以實(shí)現(xiàn)此目的。

透視可以將一個(gè)2D平面斗锭,在轉(zhuǎn)換的過程當(dāng)中地淀,呈現(xiàn)3D效果。

  • 透視原理: 近大遠(yuǎn)小 岖是。
  • 瀏覽器透視:把近大遠(yuǎn)小的所有圖像帮毁,透視在屏幕上。
  • perspective:視距豺撑,表示視點(diǎn)距離屏幕的長短烈疚。視點(diǎn),用于模擬透視效果時(shí)人眼的位置

注:并非任何情況下需要透視效果聪轿,根據(jù)開發(fā)需要進(jìn)行設(shè)置爷肝。

perspective 一般作為一個(gè)屬性,設(shè)置給父元素陆错,作用于所有3D轉(zhuǎn)換的子元素

理解透視距離原理:

[圖片上傳失敗...(image-7654c9-1527494961606)]

translateX(x)

僅水平方向移動(dòng)**(X軸移動(dòng))

[圖片上傳失敗...(image-caaf25-1527494961606)]

主要目的實(shí)現(xiàn)移動(dòng)效果

translateY(y)

僅垂直方向移動(dòng)(Y軸移動(dòng))

[圖片上傳失敗...(image-2d772b-1527494961606)]

translateZ(z)

transformZ的直觀表現(xiàn)形式就是大小變化灯抛,實(shí)質(zhì)是XY平面相對(duì)于視點(diǎn)的遠(yuǎn)近變化(說遠(yuǎn)近就一定會(huì)說到離什么參照物遠(yuǎn)或近,在這里參照物就是perspective屬性)音瓷。比如設(shè)置了perspective為200px;那么transformZ的值越接近200对嚼,就是離的越近,看上去也就越大绳慎,超過200就看不到了纵竖,因?yàn)橄喈?dāng)于跑到后腦勺去了漠烧,我相信你正常情況下,是看不到自己的后腦勺的磨确。

translate3d(x,y,z)

[注意]其中沽甥,x和y可以是長度值,也可以是百分比乏奥,百分比是相對(duì)于其本身元素水平方向的寬度和垂直方向的高度和摆舟;z只能設(shè)置長度值

開門案例

body {
}
.door {
  width: 300px;
  height: 300px;
  margin: 100px auto;
  border: 1px solid gray;
  perspective: 1000px;
  background: url('images/dog.gif') no-repeat cover;
  position: relative;
}
.door > div {
  box-sizing: border-box;
  border: 1px solid black;
}
.left {
  float: left;
  width: 50%;
  height: 100%;
  background-color: brown;
  transform-origin: left center;
  transition: 1s;
  position: relative;
}
.left::before {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  top: 50%;
  right: 0px;
  transform: translateY(-10px);
  border: 1px solid whitesmoke;
}
.right {
  width: 50%;
  height: 100%;
  float: left;
  background-color: brown;
  transform-origin: right center;
  transition: 1s;
  position: relative;
}
.right::before {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  top: 50%;
  left: 0px;
  transform: translateY(-10px);
  border: 1px solid whitesmoke;
}
.door:hover .left {
  transform: rotateY(-130deg);
}
.door:hover .right {
  transform: rotateY(130deg);
}

backface-visibility

backface-visibility 屬性定義當(dāng)元素不面向屏幕時(shí)是否可見。

翻轉(zhuǎn)盒子案例

div {
            width: 224px;
            height: 224px;
            margin: 100px auto;
            position: relative;
        }
        div img {
            position: absolute;
            top: 0;
            left: 0;
            transition: all 1s; 
        }
        div img:first-child {
            z-index: 1;
            backface-visibility: hidden; /* 不是正面對(duì)象屏幕邓了,就隱藏 */
        }
        div:hover img {
            transform: rotateY(180deg);
}

動(dòng)畫(CSS3) animation

動(dòng)畫是CSS3中具有顛覆性的特征之一恨诱,可通過設(shè)置多個(gè)節(jié)點(diǎn)來精確控制一個(gè)或一組動(dòng)畫,常用來實(shí)現(xiàn)復(fù)雜的動(dòng)畫效果骗炉。

語法格式:

animation:動(dòng)畫名稱 動(dòng)畫時(shí)間 運(yùn)動(dòng)曲線  何時(shí)開始  播放次數(shù)  是否反方向;

[圖片上傳失敗...(image-104df9-1527494961606)]

關(guān)于幾個(gè)值照宝,除了名字,動(dòng)畫時(shí)間句葵,延時(shí)有嚴(yán)格順序要求其它隨意r

@keyframes 動(dòng)畫名稱 {
  from{ 開始位置 }  0%
  to{  結(jié)束  }  100%
}
animation-iteration-count:infinite;  無限循環(huán)播放
animation-play-state:paused;   暫停動(dòng)畫"

小汽車案例

body {
  background: white;
}
img {
  width: 200px;
}
.animation {
  animation-name: goback;
  animation-duration: 5s;
  animation-timing-function: ease;
  animation-iteration-count: infinite;
}
@keyframes goback {
  0%{}
  49%{
    transform: translateX(1000px);
  }
  55%{
    transform: translateX(1000px) rotateY(180deg);
  }
  95%{
    transform: translateX(0) rotateY(180deg);
  }
  100%{
    transform: translateX(0) rotateY(0deg);
  }
}

伸縮布局(CSS3)

CSS3在布局方面做了非常大的改進(jìn)厕鹃,使得我們對(duì)塊級(jí)元素的布局排列變得十分靈活,適應(yīng)性非常強(qiáng)乍丈,其強(qiáng)大的伸縮性剂碴,在響應(yīng)式開中可以發(fā)揮極大的作用。

主軸:Flex容器的主軸主要用來配置Flex項(xiàng)目轻专,默認(rèn)是水平方向

側(cè)軸:與主軸垂直的軸稱作側(cè)軸忆矛,默認(rèn)是垂直方向的

方向:默認(rèn)主軸從左向右,側(cè)軸默認(rèn)從上到下

主軸和側(cè)軸并不是固定不變的请垛,通過flex-direction可以互換催训。

[圖片上傳失敗...(image-b6a099-1527494961606)]

Flex布局的語法規(guī)范經(jīng)過幾年發(fā)生了很大的變化,也給Flexbox的使用帶來一定的局限性宗收,因?yàn)檎Z法規(guī)范版本眾多漫拭,瀏覽器支持不一致,致使Flexbox布局使用不多

**2混稽、各屬性詳解******

1.flex子項(xiàng)目在主軸的縮放比例嫂侍,不指定flex屬性,則不參與伸縮分配

min-width 最小值 min-width: 280px 最小寬度 不能小于 280

max-width: 1280px 最大寬度 不能大于 1280

2.flex-direction調(diào)整主軸方向(默認(rèn)為水平方向)

flex-direction: column 垂直排列

flex-direction: row 水平排列

http://m.ctrip.com/html5/ 攜程網(wǎng)手機(jī)端地址

3荚坞、justify-content調(diào)整主軸對(duì)齊(水平對(duì)齊)

子盒子如何在父盒子里面水平對(duì)齊

描述 白話文
flex-start 默認(rèn)值挑宠。項(xiàng)目位于容器的開頭。 讓子元素從父容器的開頭開始排序但是盒子順序不變
flex-end 項(xiàng)目位于容器的結(jié)尾颓影。 讓子元素從父容器的后面開始排序但是盒子順序不變
center 項(xiàng)目位于容器的中心各淀。 讓子元素在父容器中間顯示
space-between 項(xiàng)目位于各行之間留有空白的容器內(nèi)。 左右的盒子貼近父盒子诡挂,中間的平均分布空白間距
space-around 項(xiàng)目位于各行之前碎浇、之間临谱、之后都留有空白的容器內(nèi)。 相當(dāng)于給每個(gè)盒子添加了左右margin外邊距

4奴璃、align-items調(diào)整側(cè)軸對(duì)齊(垂直對(duì)齊)

子盒子如何在父盒子里面垂直對(duì)齊(單行)

描述 白話文
stretch 默認(rèn)值悉默。項(xiàng)目被拉伸以適應(yīng)容器。 讓子元素的高度拉伸適用父容器(子元素不給高度的前提下)
center 項(xiàng)目位于容器的中心苟穆。 垂直居中
flex-start 項(xiàng)目位于容器的開頭抄课。 垂直對(duì)齊開始位置 上對(duì)齊
flex-end 項(xiàng)目位于容器的結(jié)尾。 垂直對(duì)齊結(jié)束位置 底對(duì)齊

5雳旅、flex-wrap控制是否換行

當(dāng)我們子盒子內(nèi)容寬度多于父盒子的時(shí)候如何處理

描述
nowrap 默認(rèn)值跟磨。規(guī)定靈活的項(xiàng)目不拆行或不拆列。 不換行攒盈,則 收縮(壓縮) 顯示 強(qiáng)制一行內(nèi)顯示
wrap 規(guī)定靈活的項(xiàng)目在必要的時(shí)候拆行或拆列抵拘。
wrap-reverse 規(guī)定靈活的項(xiàng)目在必要的時(shí)候拆行或拆列,但是以相反的順序型豁。

6僵蛛、flex-flow是flex-direction、flex-wrap的簡(jiǎn)寫形式

flex-flow: flex-direction  flex-wrap;  

白話記: flex-flow: 排列方向 換不換行;

兩個(gè)中間用空格

例如:

display: flex;
/* flex-direction: row;
flex-wrap: wrap;   這兩句話等價(jià)于下面的這句話*/
flex-flow: column wrap;  /* 兩者的綜合 */

7迎变、align-content堆棧(由flex-wrap產(chǎn)生的獨(dú)立行)多行垂直對(duì)齊方式齊

align-content是針對(duì)flex容器里面多軸(多行)的情況,align-items是針對(duì)一行的情況進(jìn)行排列充尉。

必須對(duì)父元素設(shè)置自由盒屬性display:flex;,并且設(shè)置排列方式為橫向排列flex-direction:row;并且設(shè)置換行氏豌,flex-wrap:wrap;這樣這個(gè)屬性的設(shè)置才會(huì)起作用喉酌。

描述 測(cè)試
stretch 默認(rèn)值热凹。項(xiàng)目被拉伸以適應(yīng)容器泵喘。
center 項(xiàng)目位于容器的中心。
flex-start 項(xiàng)目位于容器的開頭般妙。
flex-end 項(xiàng)目位于容器的結(jié)尾纪铺。
space-between 項(xiàng)目位于各行之間留有空白的容器內(nèi)。
space-around 項(xiàng)目位于各行之前碟渺、之間鲜锚、之后都留有空白的容器內(nèi)。

8苫拍、order控制子項(xiàng)目的排列順序芜繁,正序方式排序,從小到大

用css 來控制盒子的前后順序绒极。 用order 就可以

用整數(shù)值來定義排列順序骏令,數(shù)值小的排在前面÷⑻幔可以為負(fù)值榔袋。 默認(rèn)值是 0

order: 1;

此知識(shí)點(diǎn)重在理解周拐,要明確找出主軸、側(cè)軸凰兑、方向妥粟,各屬性對(duì)應(yīng)的屬性值

文字陰影(CSS3)

以后我們可以給我們的文字添加陰影效果了 Shadow 影子

text-shadow:水平位置 垂直位置 模糊距離 陰影顏色;

[圖片上傳失敗...(image-ab1375-1527494961606)]

  1. 前兩項(xiàng)是必須寫的。 后兩項(xiàng)可以選寫吏够。

[圖片上傳失敗...(image-db5b36-1527494961607)]

BFC(塊級(jí)格式化上下文)

BFC(Block formatting context)

直譯為"塊級(jí)格式化上下文"勾给。

元素的顯示模式

我們前面講過 元素的顯示模式 display。

分為 塊級(jí)元素 行內(nèi)元素 行內(nèi)塊元素 稿饰,其實(shí)锦秒,它還有很多其他顯示模式。

<img src="media/dis.png" style="border: 1px dashed #ccc; padding: 5px;" />

那些元素會(huì)具有BFC的條件

不是所有的元素模式都能產(chǎn)生BFC喉镰,w3c 規(guī)范:

display 屬性為 block, list-item, table 的元素旅择,會(huì)產(chǎn)生BFC.

大家有么有發(fā)現(xiàn)這個(gè)三個(gè)都是用來布局最為合理的元素,因?yàn)樗麄兙褪怯脕砜梢暬季帧?/p>

注意其他的侣姆,display屬性生真,比如 line 等等,他們創(chuàng)建的是 IFC 捺宗,我們暫且不研究柱蟀。

這個(gè)BFC 有著具體的布局特性:

<img src="media/box.gif" />

有寬度和高度 , 有 外邊距margin 有內(nèi)邊距padding 有邊框 border蚜厉。

就好比长已,你有了練習(xí)武術(shù)的體格了。 有潛力昼牛,有資質(zhì)术瓮。

<img src="media/gu.jpeg" width="400" />

什么情況下可以讓元素產(chǎn)生BFC

以上盒子具有BFC條件了,就是說有資質(zhì)了贰健,但是怎樣觸發(fā)才會(huì)產(chǎn)生BFC胞四,從而創(chuàng)造這個(gè)封閉的環(huán)境呢?

在好比伶椿,你光有資質(zhì)還不行辜伟,你需要一定額外效果才能出發(fā)的武學(xué)潛力,要么你掉到懸崖下面脊另,撿到了一本九陰真經(jīng)导狡,要么你學(xué)習(xí)葵花寶典,欲練此功必先....

<img src="media/kuihua.png" />
同樣偎痛,要給這些元素添加如下屬性就可以觸發(fā)BFC旱捧。

-float屬性不為none

-position為absolute或fixed

-display為inline-block, table-cell, table-caption, flex, inline-flex

-overflow不為visible。

BFC元素所具有的特性

BFC布局規(guī)則特性:

1.在BFC中看彼,盒子從頂端開始垂直地一個(gè)接一個(gè)地排列.

2.盒子垂直方向的距離由margin決定廊佩。屬于同一個(gè)BFC的兩個(gè)相鄰盒子的margin會(huì)發(fā)生重疊

3.在BFC中囚聚,每一個(gè)盒子的左外邊緣(margin-left)會(huì)觸碰到容器的左邊緣(border-left)(對(duì)于從右到左的格式來說,則觸碰到右邊緣)标锄。

  1. BFC的區(qū)域不會(huì)與浮動(dòng)盒子產(chǎn)生交集顽铸,而是緊貼浮動(dòng)邊緣。
  2. 計(jì)算BFC的高度時(shí)料皇,自然也會(huì)檢測(cè)浮動(dòng)或者定位的盒子高度谓松。

它是一個(gè)獨(dú)立的渲染區(qū)域,只有Block-level box參與践剂, 它規(guī)定了內(nèi)部的Block-level Box如何布局鬼譬,并且與這個(gè)區(qū)域外部毫不相干。

白話文: 孩子在家里愿意怎么折騰都行逊脯,但是出了家門口优质,你就的乖乖的,不能影響外面的任何人军洼。

<img src="media/xiong.jpeg" width="400" />

BFC的主要用途

BFC能用來做什么巩螃?

(1) 清除元素內(nèi)部浮動(dòng)

只要把父元素設(shè)為BFC就可以清理子元素的浮動(dòng)了,最常見的用法就是在父元素上設(shè)置overflow: hidden樣式匕争,對(duì)于IE6加上zoom:1就可以了避乏。

主要用到

計(jì)算BFC的高度時(shí),自然也會(huì)檢測(cè)浮動(dòng)或者定位的盒子高度甘桑。

<img src="media/fu.jpg" />
(2) 解決外邊距合并問題

外邊距合并的問題拍皮。

主要用到

盒子垂直方向的距離由margin決定。屬于同一個(gè)BFC的兩個(gè)相鄰盒子的margin會(huì)發(fā)生重疊

屬于同一個(gè)BFC的兩個(gè)相鄰盒子的margin會(huì)發(fā)生重疊跑杭,那么我們創(chuàng)建不屬于同一個(gè)BFC铆帽,就不會(huì)發(fā)生margin重疊了。

<img src="media/ma.png" />

(3) 制作右側(cè)自適應(yīng)的盒子問題

主要用到

普通流體元素BFC后艘蹋,為了和浮動(dòng)元素不產(chǎn)生任何交集锄贼,順著浮動(dòng)邊緣形成自己的封閉上下文

<img src="media/you.png" />

BFC 總結(jié)

BFC就是頁面上的一個(gè)隔離的獨(dú)立容器票灰,容器里面的子元素不會(huì)影響到外面的元素女阀。反之也如此。包括浮動(dòng)屑迂,和外邊距合并等等浸策,因此,有了這個(gè)特性惹盼,我們布局的時(shí)候就不會(huì)出現(xiàn)意外情況了庸汗。

優(yōu)雅降級(jí)和漸進(jìn)增強(qiáng)

什么是漸進(jìn)增強(qiáng)(progressive enhancement)、優(yōu)雅降級(jí)(graceful degradation)呢手报?

漸進(jìn)增強(qiáng) progressive enhancement:

針對(duì)低版本瀏覽器進(jìn)行構(gòu)建頁面蚯舱,保證最基本的功能改化,然后再針對(duì)高級(jí)瀏覽器進(jìn)行效果、交互等改進(jìn)和追加功能達(dá)到更好的用戶體驗(yàn)枉昏。

類似 爬山陈肛,由低出往高處爬

<img src="media/pa.png" width="400" />

<b>優(yōu)雅降級(jí) graceful degradation:</b>

一開始就構(gòu)建完整的功能,然后再針對(duì)低版本瀏覽器進(jìn)行兼容。

類似蹦極,由高處往低處下落

<img src="media/xia.jpg" />

區(qū)別:漸進(jìn)增強(qiáng)是向上兼容嚎于,優(yōu)雅降級(jí)是向下兼容顺饮。

個(gè)人建議: 現(xiàn)在互聯(lián)網(wǎng)發(fā)展很快, 連微軟公司都拋棄了ie瀏覽器蚕捉,轉(zhuǎn)而支持 edge這樣的高版本瀏覽器,我們很多情況下沒有必要再時(shí)刻想著低版本瀏覽器了,而是一開始就構(gòu)建完整的效果啃匿,根據(jù)實(shí)際情況,修補(bǔ)低版本瀏覽器問題蛆楞。

瀏覽器前綴

瀏覽器前綴 瀏覽器
-webkit- Google Chrome, Safari, Android Browser
-moz- Firefox
-o- Opera
-ms- Internet Explorer, Edge
-khtml- Konqueror

后面我們會(huì)有 常用的解決H5和C3 的兼容解決文件立宜, 我們這里暫且不涉及。

背景漸變

在線性漸變過程中臊岸,顏色沿著一條直線過渡:從左側(cè)到右側(cè)橙数、從右側(cè)到左側(cè)、從頂部到底部帅戒、從底部到頂部或著沿任何任意軸灯帮。如果你曾使用過制作圖件,比如說Photoshop逻住,你對(duì)線性漸變并不會(huì)陌生钟哥。

兼容性問題很嚴(yán)重,我們這里之講解線性漸變

語法格式:

background:-webkit-linear-gradient(漸變的起始位置瞎访, 起始顏色腻贰, 結(jié)束顏色);
background:-webkit-linear-gradient(漸變的起始位置扒秸, 顏色 位置播演, 顏色位置....);

背景縮放(CSS3)

通過background-size設(shè)置背景圖片的尺寸伴奥,就像我們?cè)O(shè)置img的尺寸一樣写烤,在移動(dòng)Web開發(fā)中做屏幕適配應(yīng)用非常廣泛。

其參數(shù)設(shè)置如下:

a) 可以設(shè)置長度單位(px)或百分比(設(shè)置百分比時(shí)拾徙,參照盒子的寬高)

b) 設(shè)置為cover時(shí)洲炊,會(huì)自動(dòng)調(diào)整縮放比例,保證圖片始終填充滿背景區(qū)域,如有溢出部分則會(huì)被隱藏暂衡。我們平時(shí)用的cover 最多

c) 設(shè)置為contain會(huì)自動(dòng)調(diào)整縮放比例询微,保證圖片始終完整顯示在背景區(qū)域。

background-image: url('images/gyt.jpg');
            background-size: 300px 100px;
            /* background-size: contain; */
            /* background-size: cover; */

多背景(CSS3)

以逗號(hào)分隔可以設(shè)置多背景狂巢,可用于自適應(yīng)布局 做法就是 用逗號(hào)隔開就好了拓提。

  • 一個(gè)元素可以設(shè)置多重背景圖像。
  • 每組屬性間使用逗號(hào)分隔隧膘。
  • 如果設(shè)置的多重背景圖之間存在著交集(即存在著重疊關(guān)系)代态,前面的背景圖會(huì)覆蓋在后面的背景圖之上。
  • 為了避免背景色將圖像蓋住疹吃,背景色通常都定義在最后一組上蹦疑,
background:url(test1.jpg) no-repeat scroll 10px 20px/50px 60px  ,
       url(test1.jpg) no-repeat scroll 10px 20px/70px 90px ,
       url(test1.jpg) no-repeat scroll 10px 20px/110px 130px c #aaa;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市萨驶,隨后出現(xiàn)的幾起案子歉摧,更是在濱河造成了極大的恐慌,老刑警劉巖腔呜,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件叁温,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡核畴,警方通過查閱死者的電腦和手機(jī)膝但,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來谤草,“玉大人跟束,你說我怎么就攤上這事〕蠛ⅲ” “怎么了冀宴?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長温学。 經(jīng)常有香客問我略贮,道長,這世上最難降的妖魔是什么仗岖? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任逃延,我火速辦了婚禮,結(jié)果婚禮上箩帚,老公的妹妹穿的比我還像新娘真友。我一直安慰自己黄痪,他們只是感情好紧帕,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般是嗜。 火紅的嫁衣襯著肌膚如雪愈案。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天鹅搪,我揣著相機(jī)與錄音站绪,去河邊找鬼。 笑死丽柿,一個(gè)胖子當(dāng)著我的面吹牛恢准,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播甫题,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼馁筐,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了坠非?” 一聲冷哼從身側(cè)響起敏沉,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎炎码,沒想到半個(gè)月后盟迟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡潦闲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年攒菠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片歉闰。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡要尔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出新娜,到底是詐尸還是另有隱情赵辕,我是刑警寧澤,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布概龄,位于F島的核電站还惠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏私杜。R本人自食惡果不足惜蚕键,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望衰粹。 院中可真熱鬧锣光,春花似錦、人聲如沸铝耻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至频丘,卻和暖如春办成,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背搂漠。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來泰國打工迂卢, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人桐汤。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓而克,卻偏偏與公主長得像,于是被迫代替她去往敵國和親怔毛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拍摇,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,728評(píng)論 1 92
  • 1.CSS基本概念 1.1 CSS的定義 CSS(Cascading Style Sheets)層疊樣式表馆截,主要用...
    寥寥十一閱讀 1,805評(píng)論 0 6
  • 轉(zhuǎn)載請(qǐng)聲明 原文鏈接地址 關(guān)注公眾號(hào)獲取更多資訊 第一部分 HTML 第一章 職業(yè)規(guī)劃和前景 職業(yè)方向規(guī)劃定位...
    程序員poetry閱讀 16,514評(píng)論 32 459
  • 概述 在網(wǎng)易云課堂學(xué)習(xí)李南江老師的《從零玩轉(zhuǎn)HTML5前端+跨平臺(tái)開發(fā)》時(shí)充活,所整理的筆記。筆記內(nèi)容為根據(jù)個(gè)人需求所...
    墨荀閱讀 2,331評(píng)論 0 7
  • 牢牢記得 要對(duì)客戶坦誠 要對(duì)信任的人坦誠 不要有小聰明和顧忌 信任的尺度一定要把握好 話可以有保留蜡娶,但絕不要欺騙 ...
    奮斗中的詹姆斯閱讀 740評(píng)論 0 1