WEB前端--Day3(css)
一、上堂回顧
1.網頁開發的知識 組成:結構,表現,行為 實現:html,css,javascript 2.html簡介 超文字標記語言 規範:標籤組成 操作思想:封裝 3.html中常用的標籤 font:設定字型,size color p:設定段落 h:標題,注意:數字 越大,字號越小 hr:水平線 br:換行 特殊字元: < > img: src width height alt title 相對路徑:../ 塊標籤:pre div span 列表標籤:有序【ol】 無序【ul】 li 表格標籤:table tr td【th】 合併單元格:colspan rowspan a:超連結標籤,href target 定位資源:#top #id 音視訊標籤:audio video :controls loop autoplay 表單標籤:form input select textarea 屬性:type:text,password,file,radio,checkbox,button,submit,reset value: name id class checked selected 頭標籤:head link
css
1.概念 層疊樣式表 意義:為了將結構和表現分離,為了程式碼的維護性和可讀性 2.css的選擇器 3.css和html的結合方式 內嵌樣式和連結樣式 行內樣式和匯入樣式:瞭解
二、css的屬性
1.字型屬性
font-family:字型型別,比如宋體,黑體等
font-style:字型樣式【是否傾斜】
normal:正常
italic:義大利體
oblique:斜體
font-weight:設定字型的粗細,取值範圍為100~900,數值越大,字型越粗
normal:正常
bold:粗體
bolder:
lighter
font-size:字型大小,一般情況下,使用px為單位,預設大小為16px
程式碼演示:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style> p{ /*注意:可以同時設定多種字型,瀏覽器在訪問者的計算機中查詢宋體, * 如果查詢到,則直接顯示,如果查詢不到,則去查詢後面的字型 * 如果列出來的字型在訪問者的計算中都不存在,則顯示預設字型 * */ font-family: 宋體,微軟雅黑,Arial; font-style: oblique; /* * italic:只是一種字型風格,義大利體,對每個字元得到結構做了一些微小的改動,來反映外觀的變化 * oblique:將正常文字傾斜一定的角度,一般給英文設定傾斜 */ /*font-weight: 900;*/ font-weight: lighter; /*font-size: 30px;*/ font-size: 2em; /* * px:表示畫素,與解析度有關,表達字型大小,縮放的時候不建議使用 * em:自動適應尺寸,方便字型的放大或者縮小,用於段落縮排 * 1em = 16px */ } </style> </head> <body> <p>字型屬性</p> </body> </html>
2.文字屬性
text-decoration:設定文字的裝飾效果
none:正常
underline:下劃線
line-through:給文字新增刪除線
overline:新增頂線
blink:閃爍,僅部分瀏覽器支援
text-indent:段落縮排,中文中常用2em【常用】
text-align:對齊方式【常用】
left:局左對齊
right
center:居中對齊【常用】
justify:兩端對齊
letter-spacing:字元之間的間距
word-spacing:單詞之間的間距
text-transform:變化,側重於大小寫轉換
none:正常顯示
capitalize:單詞首字母大寫
uppercase:將小寫轉化為大寫
lowercase:將大寫轉化為小寫
direction:文字方向
ltr:文字方向為從左到右,預設方向
rtl:文字方向為從右到左
程式碼演示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> p{ /*注意:可以同時給一段文字設定多個裝飾效果,使用空格隔開*/ /*text-decoration: underline overline line-through;*/ /*注意:後出現的屬性會覆蓋先出現的屬性*/ text-decoration: underline; text-indent: 2em; /*text-align: center;*/ /*使用px作為單位*/ /*字元*/ letter-spacing: 10px; /*單詞,通過空格區分單詞*/ word-spacing: 20px; text-transform: uppercase; direction: rtl; } </style> </head> <body> <p>文字屬性css html</p> </body> </html>
3.盒子屬性
在進行頁面佈局之前,將資料封裝到一塊一塊的區域中,常用div
說明:所有的html的標籤都能使用盒子屬性
3.1邊框屬性
border:邊框,統一設定指定標籤的所有的邊框,引數:邊框寬度 邊框樣式 邊框顏色
border-top: 上
border-bottom:下
border-left:左
border-right:右
border-width:邊框的寬度,單位使用px
border-style:邊框的樣式
dotted:點畫線
dashed:虛線
solid:實線
double:雙線
border-color:邊框顏色
border-radius:邊框削圓角【注意:一般使用百分比表示,百分比越大,表示圓角越大】【常用】
50%:將正方形削圓角,取值為50%的時候,表示得到一個圓
總結:
border-width,border-color,border-style分別給出1個,2個,3個或者4個屬性值的時候,分別代表的含義
1個:上下左右
2個:前者代表上下,後者代表的是左右
3個:前者代表上,中間代表左右,後者代表的下
4個:分別代表上右下左
程式碼演示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> div{ width: 200px; height: 100px; /*統一設定 引數可以不按照特定的順序*/ /*border: 2px dashed blue;*/ } #div2{ /*個別設定:只設置指定的邊框*/ border-right: 2px solid red; } #div3{ /*統一設定*/ border-width: 3px; border-color: purple; border-style: dotted; } #div4{ border-width: 2px; border-color: red green cyan purple; border-style: solid; } </style> </head> <body> <div>AAAAAA</div> <div id="div2">BBBBB</div> <div id="div3">CCCCC</div> <div id="div4">DDDDDD</div> </body> </html>
3.2內邊距
padding;內邊距,引數為距離,單位為px
padding-left
padding-right
padding-top
padding-bottom
說明:可以統一設定指定標籤的上下左右的內邊距,也可以單獨設定
程式碼演示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> div{ width: 200px; height: 100px; /*統一設定 引數可以不按照特定的順序*/ border: 2px dashed blue; } #div2{ /*統一設定內邊距*/ /*注意:設定了內邊距,相當於將該標籤的寬和高改變*/ padding: 30px; } #div3{ /*單獨設定*/ padding-left: 30px; padding-bottom: 30px; } </style> </head> <body> <div>AAAAAA</div> <div id="div2">BBBBB</div> <div id="div3">CCCCC</div> </body> </html>
3.3外邊距
margin:外邊距,引數為距離,單位為px
margin-left
margin-right
margin-top
margin-bottom
說明:可以統一設定指定標籤的上下左右的外邊距,也可以單獨設定
程式碼演示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> div{ width: 200px; height: 100px; /*統一設定 引數可以不按照特定的順序*/ border: 2px dashed blue; } #div2{ /*統一設定外邊距*/ /*注意:外邊距的參照物:頁面,相鄰的其他標籤*/ margin: 30px; } #div3{ /*單獨設定*/ margin-top: 50px; } </style> </head> <body> <div>AAAAAA</div> <div id="div2">BBBBB</div> <div id="div3">CCCCC</div> </body> </html>
3.4其他寫法
程式碼演示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> img{ width: 400px; height: 400px; /*border-radius: 50%;*/ border-left-color: purple; border-left-width: 2px; border-left-style: solid; border-right-style: dotted; } </style> </head> <body> <img src="img/pic20.jpg" /> </body> </html>
4.尺寸屬性
width:寬度
height:高度
line-height:行高
注意:當文字內容只有一行的時候,將行高設定為和height相等,【line-height = height】,就可以實現文字在垂直方向上居中顯示
text-align:center,在水平方向上居中顯示
程式碼演示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> .box{ width: 200px; height: 100px; border: 1px black solid; /*設定文字真正意義上的居中顯示:水平方向和垂直方向*/ line-height: 100px; text-align: center; } </style> </head> <body> <div class="box"> 尺寸屬性this is a text </div> </body> </html>
5.背景屬性
background;背景【顏色或者圖片】
background-color:背景顏色
background-image:背景圖片
background-repeat:背景樣式平鋪樣式
repeat:沿著水平和垂直方向平鋪,預設值
no-repeat;不平鋪
repeat-x:沿著水平方向平鋪
repeat-y:沿著垂直方向平鋪
background-position:背景影象的位置
left right top bottom center
background-attachment;設定背景圖片是否隨著網頁內容一起滾動
scroll:會隨著滾動,預設值
fixed:固定,不隨著滾動
程式碼演示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> body{ width: 100%; height: 5000px; /*背景顏色*/ /*注意:給任何的標籤都可以設定背景顏色*/ /*background-color: red;*/ /*背景圖片 * 圖片尺寸 = 背景的大小,整體放下 * 圖片尺寸 < 背景的大小,預設平鋪 * 圖片尺寸 > 背景的大,只顯示背景的大小 * */ /*background-image: url(img/pic20.jpg);*/ /*是否允許平鋪*/ /*background-repeat: no-repeat;*/ /*設定背景圖的位置 *水平方向:left center right * 垂直方向:top center bottom * 數值可以自定義 * */ /*引數:左右 上下,類似於座標系中的點*/ /*background-position: 50% 50px;*/ /*設定背景圖是否隨著網頁內容滾動*/ /*background-attachment: fixed;*/ /*設定顏色的漸變 * background:linear-gradient() */ /*從左到右的線性漸變*/ /*background:linear-gradient(to right,red,blue);*/ /*從上到下的線性漸變*/ /*background:linear-gradient(red,blue);*/ /*從左上角到右下角的線性漸變*/ background:linear-gradient(to right bottom,red,blue); } </style> </head> <body> </body> </html>
6.和列表相關的屬性
list-style:設定列表的專案符號和位置
list-style-image:設定列表的專案符號
list-style-position:設定專案符號的位置
inside:裡面
outside:外面
7.浮動屬性
div是塊級元素,特點:在頁面中獨佔一行【會自動換行】,當一個html頁面中有多個div的時候,預設從上往下依次排列,這種排列方式被稱為流
元素浮動之前,被稱為元素處於標準流中,是豎向排列的,浮動之後,可以將元素的排列方式改為橫向排列
float:實現標籤的浮動
none:預設值,不浮動
left:向左浮動
right:向右浮動
clear: 清除浮動,取值一般為left或者right,表示將原來的浮動清除掉,避免影響後面標籤的位置
程式碼演示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> #div1{ width: 300px; height: 300px; background-color: red; float: right; } #div2{ width: 200px; height: 200px; background-color: blue; float: right; } #div3{ width: 400px; height:400px; background-color: orange; float: right; } </style> </head> <body> <div id="div1">111</div> <div id="div2">222</div> <div id="div3">333</div> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> li{ float: left; } </style> </head> <body> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> </ul> </body> </html>
8.顯示屬性
display:標籤的顯示狀態
none:隱藏,特點:不會佔據空間,常用來進行頁面的重繪或者重排
block:塊級標籤
特點:總是以一個塊的形式表現出來,可以獨佔一行
可以設定寬高以及內外邊距,如果不設定,預設寬度和父標籤相等
高度會隨著文字內容的變化而變化【自適應】
例如:div p li hn
inline:行內標籤
特點:不會自動換行,寬高隨著內容自適應,設定寬高和內外邊距無效
設定這個值,就可以將一個塊級標籤轉換為行內標籤,那麼該標籤將不能設定寬高和內外邊距
例如:span a
inline-block:行內塊級標籤
特點:不但具有block的特點:可以設定寬高和內外邊距
也具有inline的特點:不換行
使用場景:導航的實現【浮動,目的是將豎向排列轉換為橫向排列】
程式碼演示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> *{ padding: 0px; margin: 0px; list-style: none; } ul li{ float: left; } a{ /*將a標籤從行內標籤轉換為塊級標籤:就可以設定寬高和內外邊距*/ display: block; width: 30px; height: 30px; background-color: orange; text-decoration: none; text-align: center; line-height: 30px; } </style> </head> <body> <ul> <li><a href="">1</a></li> <li><a href="">2</a></li> <li><a href="">3</a></li> <li><a href="">4</a></li> <li><a href="">5</a></li> </ul> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> ul,li,a,*{ padding: 0; margin: 0; list-style: none; text-decoration: none; } li{ display: inline-block; border: 1px solid red; /*float: left;*/ } </style> </head> <body> <ul> <li><a href="">1</a></li><li><a href="">2</a></li><li><a href="">3</a></li><li><a href="">4</a></li><li><a href="">5</a></li> </ul> </body> </html> <!-- 問題:將所有標籤的內外邊距設定為了0,但是最終顯示li之間有間距,間距從哪來? 原因:實際上,這是inline造成的,這些間距是空白符,在瀏覽器中,空白符不會被忽略的【換行造成的空白符】 -->
9.定位屬性
9.1絕對定位
position
absolute:絕對定位,將物件從文件流中拖出
參照物:父標籤或者先輩標籤【如果該標籤的父標籤設定了有效的定位,就以父標籤作為參照物,如果沒有設定有效定位,則查詢所有的先輩標籤】
注意:可以使用left,top,right和bottom屬性設定標籤的位置
程式碼演示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> /*absolute:參照物是父標籤*/ body{ height: 9999px; background-color:red; } .pos1{ position: absolute; left: 100px; top: 150px; } </style> </head> <body> <h2 class="pos1">標題yi</h2> </body> </html>
9.2相對定位
relative:相對定位,不會脫離文件流
參照物:該標籤自身原來的位置
注意:可以使用left,top,right和bottom屬性設定標籤的位置
程式碼演示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> /*relative:參照自身原來的位置*/ .pos1{ position: relative; left: -20px; } .pos2{ position: relative; left: 20px; } </style> </head> <body> <h2>標題</h2> <h2 class="pos1">標題yi</h2> <h2 class="pos2">標題er</h2> </body> </html>
9.3固定定位
fixed:固定定位,脫離文件流
參照物:窗體
使用場景:應用在廣告中
注意:有效的定位可以設定距離參照物上下左右的位置,如果在參照物的內部,這些屬性值是正數,一旦出界就是負數
程式碼演示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> body{ height: 9999px; background-color:red; } .one{ position: fixed; left: 15px; top: 50px; } .two{ position: fixed; right: 30px; top: 50px; } </style> </head> <body> <p class="one"> hello </p> <p class="two"> 文字 </p> </body> </html>
9.4z-index的使用
程式碼演示:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> .x{ position: absolute; left: 0px; top: 0px; /*設定了圖片的絕對定位之後,則img會覆蓋h*/ z-index: 1; /* * 使用前提:該標籤設定了定位屬性 * z-index的作用:值決定標籤顯示的位置【標籤層疊的時候】 * 此屬性的值越大,則表示優先順序越高,則被顯示在最上層 * z-index預設的值為0,將z-index設定為-1.表示該標籤擁有更低的優先順序 */ } </style> </head> <body> <h1>標題</h1> <img class="x" src="img/pic20.jpg" /> </body> </html>
10.綜合練習-百度首頁
baidu.css
*{ /*去除預設的內外邊距*/ padding: 0; margin: 0; } /*設定上面*/ #head{ /*向右浮動*/ float: right; margin-top:10px; } /*設定上面的超連結*/ .headlink{ color: black; font-size: 12px; margin: 10px; } /*更多產品*/ .more{ background-color: blue; color: white; text-decoration: none; margin-right: 10px; font-size: 14px; text-align: center; /*line-height: ;*/ } /*中間*/ #middle{ /*清除浮動*/ clear: right; text-align: center; /*中間的div以body為參照物*/ position: absolute; top: 80px; /*設定寬度*/ width: 100%; } /*輸入框的樣式*/ #key{ width: 30%; height: 30px; } /*按鈕*/ #btn{ width: 70px; height: 30px; background-color: blue; color: white; } /*底部*/ #footer{ position: absolute; bottom: 10px; width: 100%; height: 150px; text-align: center; } /*底部超連結*/ #footlink{ margin: 20px; } #footlink a{ color: gray; font-size: 12px; }
baiduhome.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <!--引入css檔案--> <link href="css/baidu.css" type="text/css" rel="stylesheet" /> </head> <body> <!--上面--> <div id="head"> <a class="headlink" href="#">新聞</a> <a class="headlink" href="#">好123</a> <a class="headlink" href="#">地圖</a> <a class="headlink" href="#">地圖</a> <a class="headlink" href="#">地圖</a> <a class="headlink" href="#">地圖</a> <a class="headlink" href="#">地圖</a> <a class="headlink" href="#">地圖</a> <a class="more" href="#">更多產品</a> </div> <!--中間--> <div id="middle"> <img src="https://www.baidu.com/img/bd_logo1.png" /> <div id="sub"> <form action="#" method="get"> <input type="text" name="kw" id="key" /> <button id="btn">百度一下</button> </form> </div> </div> <!--下面--> <div id="footer"> <div> <img src="img/二維碼.png" /> <p>手機百度</p> </div> <div id="footlink"> <a href="#">地圖</a> <a href="#">地圖</a> <a href="#">地圖</a> <a href="#">地圖</a> <br /> <a href="#">地圖</a> <a href="#">地圖</a> <a href="#">地圖</a> </div> </div> </body> </html>