目錄css
設置字體屬性:html
body{font-family:"Microsoft Yahei"} body{font-family:"Microsoft Yahei","宋體","黑體"} #備選字體能夠有無數個,那麼瀏覽器在去解析這個代碼的時候,是從左往右解析的,若是沒有微軟雅黑,再去找宋體,最後黑體。
字體大小:前端
字體顏色:css3
字體樣式font-styleweb
網站中的字體分爲了普通字體和斜體字體,咱們可使用font-style屬性來設置對應的字體樣式。瀏覽器
normal正常,italic斜體,oblique斜體服務器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> p{ font-style:italic; } </style> </head> <body> <p>你好</p> </body> </html>
字體粗細網絡
font-weight佈局
屬性值 | 描述 |
---|---|
normal | 普通的字體粗細,默認 |
bold | 加粗的字體粗細 |
lighter | 比普通字體更細的字體 |
bolder | 比bold更粗的字體 |
100~900 | 400表示normal |
文本屬性:性能
text-decoration
屬性值 | 描述 |
---|---|
none | 無文本的修飾 |
underline | 文本下劃線 |
overline | 文本上劃線 |
line-through | 穿過文本的線, |
文本縮進
行間距
line-height:數值px/em
縱紋字間距/字母間距
文本對齊
text-align
屬性值 | 描述 |
---|---|
left | 文本左對齊,默認 |
right | 文本右對齊 |
center | 中心對齊 |
px單位的名稱爲像素,它是一個固定大小的單元,像素的計算是針對(電腦/手機)屏幕的,一個像素(1px)就是(電腦/手機)屏幕上的一個點,即屏幕分辨率的最小分割。
它是相對於當前對象內文本的字體尺寸;若是沒有人爲設置當前對象內文本的字體尺寸,那麼它相對的是瀏覽器默認的字體尺寸
rem只相對於根目錄,即HTML元素。因此只要在html標籤上設置字體大小,文檔中的字體大小都會以此爲參照標準,通常用於自適應佈局。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ padding:0; margin:0; } html{ font-size:20px } .box{ font-size:12px; width:20rem; height:20rem; background-color: red; } </style> </head> <body> <div class="box"></div> </body> </html>
經常使用塊元素由:
p,h1-h6,div,ul,ol,tr,li,form
經常使用內聯元素由:
a,span,em,i,strong,u,
常見的內聯塊元素
input img
標籤類別 | 特色 |
---|---|
塊狀元素 | 1.獨自佔據整一行 2.能夠設置寬高 |
內聯元素 | 1.全部的內聯元素在一行內顯示 2.不能夠設置寬高 |
行內塊元素 | 1.在一行內顯示 2.能夠設置寬高 |
padding有四個方向,分別描述四個方向的padding。
padding-top:10px; padding-right:3px; padding-bottom:50px; padding-left:70px;
綜合屬性,多個屬性用空格隔開。
/*上 右 下 左 四個方向*/ padding: 20px 30px 40px 50px ; /*上 左右 下*/ padding: 20px 30px 40px; /* 上下 左右*/ padding: 20px 30px; /*上下左右*/ padding: 20px;
盒子模型的邊框,在樣式表中稱爲border。咱們知道呢,咱們用的手機,都會有手機殼。手機殼的樣式、顏色、薄厚程度等都是這個殼的形態。一樣呢,盒模型的邊框也有三要素:粗細 線性樣式 顏色。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>border的使用</title> <style type="text/css"> .box{ width: 200px; height: 200px; /*1像素實線且紅色的邊框*/ border: 1px solid red; } </style> </head> <body> <div class="box"></div> </body> </html>
border-width:3px; border-style:solid; border-color:red; /*上面三句代碼至關於一句代碼:border:3px solid red;*/ /*一樣,也能夠分別設置邊框四個方向的粗細 線性樣式 顏色,跟padding的四個方向同樣。*/ /*上下5px 左右10px*/ border-width:5px 10px; /*上:實現 右:點狀 下:雙線 左:虛線*/ border-style: solid dotted double dashed; /*上:紅色 左右:綠色 下:黃色*/ border-color: red green yellow;
border-top-width: 10px; border-top-color: red; border-top-style: solid; border-right-width: 10px; border-right-color: red; border-right-style: solid; border-bottom-width: 10px; border-bottom-color: red; border-bottom-style: solid; border-left-width: 10px; border-left-color: red; border-left-style:solid; 至關於border:10px solid red;
清除默認邊框:border:none;或者border:0; outline:none;
在盒子模型中稱爲外邊距,樣式表中叫margin。表示盒子到另外一個盒子的距離。既然是二者之間的距離,那麼就會產生水平之間的距離和垂直之間的距離。一樣狀況下,外邊距也有四個方向,跟padding相似。
水平方向的外邊距
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>水平方向外邊距</title> <style type="text/css"> span:nth-child(1){ background-color: green; margin-right: 20px; } span:nth-child(2){ background-color: red; margin-left: 30px; } </style> </head> <body> <span class="box_l">左盒子</span><span class="box_r">右盒子</span> </body> </html> #nth-child(1),獲取span子類,參數爲第1個。
垂直方向外邊距
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ width: 200px; height: 200px; } #box1{ background-color: red; margin-bottom: 30px; } #box2{ background-color: black; margin-top: 100px } #box3{ background-color: yellowgreen; } #box3 p{ background-color: goldenrod; margin-top: 30px; } </style> </head> <body> <!-- margin 在垂直方向上會出現外邊距合併現象,塌陷。以設置的最大的magrin距離爲基準--> <div id="box1"></div> <div id="box2"></div>
注意:盒模型的外邊距水平方向上不會出現問題,在垂直方向上會出現「**外邊距合併**」的現象。
什麼是外邊距合併呢?在有些文獻中說這種現象叫塌陷問題。只有在垂直方向上,當兩個同級的盒子,在垂直方向上設置了margin以後,那麼以較大者爲準。
在網頁排版中,外邊距合併的問題也會時常出現,咱們如何避免出現這種問題呢?
很簡單,咱們若是想讓上下的兩個盒子中間有間距,只須要設置一個盒子的一個方向便可。不必去碰觸外邊距塌陷的問題,還得找解決問題的方法,得不償失。
浮動是網頁佈局中很是重要的一個屬性。那麼浮動
這個屬性一開始設計的初衷是爲了網頁的文字環繞效果
。
文字環繞現象
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>水平方向外邊距</title> <style type="text/css"> html{ font-size:24px; } img{ width:20rem; } #sep{ float: left; } p{ border:1px solid red; text-indent:2rem; font-size:1rem; } </style> </head> <body> <div id="sep"> <img src="https://i1.mifile.cn/a4/xmad_15590487108559_JOpcA.jpg" alt="加載失敗" title="王源"> </div> <p> 我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我 我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我 我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我 我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我 我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我 我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我 我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我 我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我 我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我 我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我 我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我 我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我 我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我 我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我去我 </p> </body> </html>
屬性值 | 描述 |
---|---|
none | 表示不浮動,全部以前講解的HTML標籤默認不浮動 |
left | 左浮動 |
right | 右浮動 |
inherit | 繼承父元素的浮動屬性 |
<meta charset="UTF-8"/> <title>浮動屬性用法</title> <style type="text/css"> .left{ width: 200px; height: 200px; background-color: red; color: #fff; /*左浮動*/ float:left; } .right{ width: 200px; height: 200px; background-color: green; color: #fff; /*右浮動*/ float:right; } </style> <div class="left">左邊的盒子</div> <div class="right">右邊的盒子</div>
咱們以前說浮動的設計初衷是爲了作」文字環繞效果「。那麼咱們就來看一下若是對盒子設置了浮動,會產生什麼現象? 1浮動的元素脫離了標準文檔流,即脫標 2浮動的元素互相貼靠 3浮動的元素會產生」字圍「效果 4浮動元素有收縮效果
浮動以後效果展現:
高度塌陷
。若是網頁中出現了這種問題,會致使咱們整個網頁的佈局紊亂。咱們必定要去解決這種父盒子高度塌陷的問題。那麼如何解決浮動給網頁帶來的問題?
咱們知道浮動具備破壞性,它能使父盒子高度塌陷、致使頁面紊亂。那麼在css佈局中對於浮動的解決方案有四種:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ padding: 0; margin: 0; } .father{ width: 800px; margin: 100px auto; border: 1px solid #000; } .child1{ width: 200px; height: 400px; background-color: red; float: left; } .child2{ width: 300px; height: 200px; background-color: green; float: right; } .clear{ clear: both; } </style> </head> <body> <!--內牆法:給最後一個浮動元素的 後面添加一個空的塊級標籤,而且設 置該標籤的屬性爲clear:both;--> <div class="father"> <div class="child1">A盒子</div> <div class="child2">B盒子</div> <div class="clear"></div> </div>
僞元素選擇器很簡單。就像僞類同樣,讓僞元素添加了選擇器,但不是描述特殊的狀態,他們容許您爲元素的某些部分設置樣式。在這裏只介紹一個。
語法:
p::after{ /*p::after{}必定要有content。表示在p元素內部的最後面的添加內容*/ content:'...' }
示例:
... .clearfix::after{ content:''; display: block; clear: both; /*visibility: hidden;*/ /*height: 0;*/ } </style> </head> <body> <div class="father clearfix"> <div class="child1">盒子A</div> <div class="child2">盒子B</div> </div>
屬性值 | 描述 |
---|---|
visible | 默認值。內容不會被修剪,會呈如今元素框以外 |
hidden | 內容會被修剪,而且其他內容不可見 |
scroll | 內容會被修剪,瀏覽器會顯示滾動條以便查看其他內容 |
auto | 由瀏覽器定奪,若是內容被修剪,就會顯示滾動條 |
inherit | 規定從父元素繼承overflow屬性的值 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body{ overflow: hidden; } .box{ width: 300px; height: 300px; border: 1px solid #000; overflow: hidden; } </style> </head> <body> <div class="box"> 此處有一篇1萬字文章 </div> </body> </html> #注意:此處內容會被修建,而且其他內容不可見
塊級格式化上下文
。BFC只是一個規則。它對浮動定位都很重要。浮動定位和清除浮動只會應用於同一個BFC的元素。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ padding: 0; margin: 0; } .father{ width: 800px; margin: 100px auto; border: 1px solid #000; /*一旦設置一個Box盒子 除了overflow:visible; 它會造成一個BFC,BFC它有佈局規則: 它會讓內部浮動元素計算高度*/ overflow: hidden; } .child1{ width: 200px; height: 400px; background-color: red; float: left; } .child2{ width: 300px; height: 200px; background-color: green; /*float: right;*/ /*overflow: hidden;*/ float: left; } </style> </head> <body> <div class="father "> <div class="child1">A盒子</div> <div class="child2">B盒子</div> </div> </body> </html>
瞭解BFC
(1)B: BOX即盒子,頁面的基本構成元素。分爲 inline 、 block 和 inline-block三種類型的BOX
(2)FC: Formatting Context是W3C的規範中的一種概念。它是頁面中的一塊渲染區域,而且有一套渲染規則,它決定了其子元素將如何定位,以及和其餘元素的關係和相互做用。
(3)常見的 Formatting Context 有 Block fomatting context (簡稱BFC)和 Inline formatting context (簡稱IFC)
1.內部的Box會在垂直方向,一個接一個地放置。 2.Box垂直方向的距離由margin決定。屬於同一個BFC的兩個相鄰Box的margin會發生重疊 3.每一個元素的margin box的左邊, 與包含塊border box的左邊相接觸(對於從左往右的格式化,不然相反)。即便存在浮動也是如此。 4.BFC的區域不會與float 元素重疊。 5.BFC就是頁面上的一個隔離的獨立容器,容器裏面的子元素不會影響到外面的元素。反之也如此。 6.計算BFC的高度時,浮動元素也參與計算
1.根元素 2.float屬性不爲none 3.position爲absolute或fixed 4.display爲inline-block 5.overflow不爲visible
display屬性設置元素如何顯示
值 | 描述 |
---|---|
none | 此元素不會被顯示 |
block | 此元素將顯示爲塊級元素,此元素先後會帶有換行 |
inline | 默認,此元素會被顯示爲內聯元素,元素先後沒有換行 |
inline-block | 行內塊,將元素顯示爲行內塊元素,設置屬性後,其餘的行內塊級元素會排在同一行。 |
table-cell | 此元素會做爲一個表格單元格顯示 |
屬性值 | 描述 |
---|---|
static | 默認。靜態定位, 指定元素使用正常的佈局行爲,即元素在文檔常規流中當前的佈局位置。此時 top , right , bottom , left 和 z-index 屬性無效。 |
relative | 相對定位。 元素先放置在未添加定位時的位置,在不改變頁面佈局的前提下調整元素位置(所以會在此元素未添加定位時所在位置留下空白) |
absolute | 絕對定位。不爲元素預留空間,經過指定元素相對於最近的非 static 定位祖先元素的偏移,來肯定元素位置。絕對定位的元素能夠設置外邊距(margins),且不會與其餘邊距合併 |
fixed | 固定定位。 不爲元素預留空間,而是經過指定元素相對於屏幕視口(viewport)的位置來指定元素位置。元素的位置在屏幕滾動時不會改變 |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>靜態定位</title> <style type="text/css"> .positioned{ position: static; background-color: red; } </style> </head> <body> <p class="positioned">我是靜態定位的元素</p> </body> </html>
top,left,right,bottom
對元素進行偏移以後,明顯定位的元素的層級高於沒有定位的元素(用top,left,right,bottom層級低)。<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .box{ width: 400px; height: 500px; background-color:red; position: relative; } div .c1{ width: 200px; height: 200px; background-color:blue; position: absolute; top: 20px; left: 20px; } div .c2{ width: 100px; height: 100px; background-color:greenyellow; position: absolute; top: 20px; left: 20px; } </style> </head> <body> <div class="box"> <div class="c1">子1</div> <div class="c2">子2</div> </div> </body> </html>
子絕父相
,比較的是父元素的z-index值,哪一個父元素的z-index值越大,表示子元素的層級越高。屬性值 | 屬性值 | 描述 |
---|---|---|
background-color | d單側顏色法,RGB,十六進制 | s設置元素的背景顏色 |
background-image | url("wy.png") | 給一個元素設置一個或多個背景圖像 |
background-position | top,left,center,百分比,px | 爲每個背景圖片設置初始位置 |
background-repreat | repeat-x | repeat-y |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .bg{ width: 400px; height: 400px; border:1px solid blue; background-image:url("wy.jpg") } </style> </head> <body> <div class="bg"></div> </body> </html>
background-repeat背景圖像
數值值 | 描述 |
---|---|
repeat | 默認值。表示背景圖水平和垂直方向都平鋪 |
no-repeat | 表示背景圖水平和處置方向都不平鋪 |
repeat-x | 表示背景圖只有水平方向上平鋪 |
repeat-y | 表示背景圖只有垂直方向上平鋪 |
.bg{ width: 1000px; height: 1000px; border:1px solid blue; background-image:url("sj6.jpg"); background-repeat:repeat-x;/*沿着軸方向平鋪*/ }
bacground-position背景圖定位
語法:
background-position:x y; background-position:position position
取值
關鍵字取值: top ,right,bottom,left,center 長度值取值: px,em 百分比: 50%
示例
background-position:0 0; /*左上角顯示*/
background-position:top right; /*背景圖像在右上角*/
background-position:top center; /*背景圖像上方居中顯示*/
background-position:center center;/*背景圖像居中顯示*/
background-position:50px 100px;
background-position:-20px -30px;
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .bor-radius{ width: 400px; height: 400px; border-radius:20px; background-color: red; } </style> </head> <body> <div class="bor-radius"></div> </body> </html>
顯示效果以下:
單角設置:
border-top-left-radius
border-top-right-radius
border-bottom-right-radius
border-bottom-left-radius
示例:
border-bottom-left-radius:
border-radius效果實現一個無邊框圓
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .cicle{ width: 200px; height: 200px; background-color: red; border-radius:50%; } </style> </head> <body> <div class="cicle"></div> </body> </html>
製做一半的圓
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .cicle{ width: 200px; height: 100px; background-color: red; border-top-left-radius: 100px; border-top-right-radius: 100px; } </style> </head> <body> <div class="cicle"></div> </body> </html>
經過box-shadow屬性設置元素的陰影
語法:
box-shadow: h-shadow v-shadow blur color inset;
值 | 描述 |
---|---|
h-shadow | 必需。水平陰影的位置。容許負值 |
v-shadow | 必需。垂直陰影的位置。容許負值。 |
blur | 可選。模糊距離。 |
color | 可選。陰影的顏色。 |
inset | 可選。將外部陰影 (outset) 改成內部陰影。 |
.bg{ width: 400px; height: 400px; border:1px solid blue; background-image:url("sj6.jpg"); background-repeat:no-repeat; background-position:50px 100px; box-shadow:5px 5px 20px red; }
css命名規範:
項目目錄規範:
肯定錯誤位置
是否重設了默認的樣式?
經過line-hinght + text-align
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> p{ width: 200px; height: 200px; background-color: #666; color:red; line-height: 200px; text-align:center; } </style> </head> <body> <p> 帥氣的阿凱哥 </p> </body> </html>
經過給父元素設置display:table-cell,而且設置vertical-align:middle
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> span{ width: 200px; height: 200px; background-color: #666; color:red; text-align:center; display: table-cell; vertical-align:middle; } </style> </head> <body> <span> <span>你好啊</span> </span> </body> </html>
第一種:position+margin
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .father{ width: 200px; height: 200px; background-color: red; position: relative; } .child{ position: absolute; width: 100px; height: 100px; background-color: blue; margin:auto; top:0; left:0; bottom:0; right:0; } </style> </head> <body> <div class="father"> <div class="child">居中盒子</div> </div> </body> </html>
第二種:display:table-cell
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> .father{ width: 200px; height: 200px; background-color: red; display:table-cell; vertical-align:middle; text-align:center; } .child{ width: 100px; height: 100px; background-color: green; display:inline-block; vertical-align:middle; } </style> </head> <body> <div class="father"> <div class="child">居中盒子</div> </div> </body> </html>
第三種:position
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style type="text/css"> .father{ width: 200px; height: 200px; background-color: red; position: relative; } .child{ width: 100px; height: 100px; background-color: green; position: absolute; left: 50%; top: 50%; margin-left: -50px; } </style> </head> <body> <div class="father"> <div class="child">我是個居中的盒子</div> </div> </body> </html>