前端入門CSS學習
行內樣式表:由於一旦改動地方過大,寫的程式碼就要變多,只適合臨時測試程式碼塊用。
內嵌樣式表只適合當前的文件檔案
匯入樣式表可能用於比較大型的網站。
選擇器:
(一)基本選擇器:
缺點:
會把所有對應的標籤都套上樣式,不存在某個對應的樣式不設定。
使用: ,類選擇器可以在多處地方使用
line-height 行間距屬性 text-indent 縮排屬性
id選擇器更多的用來當作一個標籤地址,保證唯一,通過id能找到對應的標籤物件,下面給出id標籤的定義:
font-weight:normal 去掉加粗,變正常 至於顏色的屬性值,可以使用Photoshop(簡稱PS)拾取工具進行獲取獲得。
通用選擇器:(*所有)給所有的標籤加樣式 語法:*{屬性:屬性值; }
text-decoration:underline 屬性的作用是: 文字修飾:下劃線
複合選擇器:
注意:這些選擇器沒有限定,可以是各種型別的選擇器。
後代選擇器,是一種樹形資料結構。有樹形資料結構的思想,就非常好辦:
後代選擇器:
語法:
選擇器1 選擇器2 選擇器3{屬性:屬性值;}
這裡也沒有限定選擇器的型別,同多元素選擇器。注意:選擇器1和選擇器2之間用空格隔開,多個選擇器的情況以此類推。
表示選擇器1裡面的選擇器2,選擇器2裡面選擇器3,以此類推。
子元素選擇器:
給html標籤的子標籤加樣式 格式:選擇器>選擇器{ 屬性:屬性值; } 只涉及父子節點,祖孫節點不算在內。所以子元素選擇器指向比後代選擇器更為明確。
要注意瀏覽器相容性:在IE6中,只支援後代選擇器,不支援子選擇器,而在IE7和FF中既支援後代選擇器,又支援子選擇器
這些元素選擇器是按照樹的結構來進行操作的,只要符合語法,子代,後代,多元素選擇器可以混合在一起使用。
CSS 偽類用於向某些選擇器新增特殊的效果。
text-decoration:none (去掉下劃線)
文字常見的幾種css樣式屬性:
背景屬性:
對position的講解:
圖片的起始位置是以瀏覽器左上角座標(0,0)處開始的,所以這個屬性的格式是,background-position: x y;沒錯就是一個座標系。意味著圖片的左上角頂點在座標(x,y)處開始伸展開來直到右下角也就是全部顯示完成。
對於簡寫:
background:xxx xxxx 等除了position屬性的x,y值要按照順序寫,其餘都可以不按順序寫。
ps:attachment的預設值是scroll;
美化無序列表前面的黑圓點
表格:
並不是只有表格才可以加邊框:
順序是上右下左
注意:設定了margin:auto屬性,會在當前盒子或者環境自動居中。
有個這樣子的情況:
賦值一個400X300的容器,裡面放入一段文字(這段文字剛好超出了容器底部一點),這時候設定了padding-bottom:xx,那麼整個容器的高也會改變,變化後的值等於原來的高加上padding-bottom的值
內邊距都可以這樣簡寫:
如果說一個盒子的外殼是邊框,內容與邊框的距離是內邊距,盒子之間的距離是外邊距,或者說是邊框以外的距離。
外邊距:
也是上右下左的順序;
簡寫:
有這樣一個情況:
一個盒子在頂部有個屬性: margin-bottom:50px 第二個盒子設定了margin-top:40px
那麼它們之間的外邊距不是兩者之和,是取一個二者之間最大的值。比如上面就取的50px
引入一個文件流的概念:
正常情況下,是按照從上到下排列的,當有佈局網頁需求時,按照需要將橫向排列布局。ps:div預設的正是縱向的塊級元素
所以大體上網站的結構就是縱向 與 橫向的div塊
儘量使用這種結構,基本上不設定右右右的結構,因為按照文件流的順序,全部都設定在右邊看起來會有些怪異。
想讓若干個盒子都橫排,就都要設定浮動。
浮動會將元素從文件流中刪除,他的空間會被其它元素補上,並且設定了浮動以後,無論本身是什麼元素都會變成塊狀。
在設定了浮動的盒子裡面可以正常設定縱向排列
佈局的經驗:通過盒子搭成的基本網頁結構,對於同一個盒子(父類)裡面的多個盒子排列一般是通過設定浮動(物件是個列表)使其成為塊級。
字型加粗:font-weight:bold normal(字型正常)font-style:normal(文字風格恢復正常)
清除格式:
清除所有html標籤格式,如果後期使用再重新寫。這裡的格式是指一些標籤比如列表有自帶的padding等。
語法:
*{margin:0px;padding:0px} 相容寫法:Body,你要清楚的標籤名xx,xx,xxx,xxx{margin:0px;padding:0px}
以傳智雲課堂來示例:
新手應該規劃清楚佈局結構,再動手。佈局清楚就很好寫。
若像img標籤那樣自頻寬高的行內元素,可以設定寬高,不受規則影響,比較特殊。
所以行內元素轉換為塊級步驟(以導航欄為例子):css設定display:block,然後再設定浮動橫向排列即可。
ps:css的16進位制顏色寫在html中會轉成10進位制。
選擇器權重:
可見:寫的越精確權重越高,優先順序越高,瀏覽器顯示的樣式就是優先順序高的物件。
一般網頁不設定高,因為直接由內容撐起容器。
清除浮動的影響:
css的浮動是float屬性,該屬性沒有繼承性,預設值為none,
常見的網頁浮動:
這種結構不受浮動的影響,因為大盒子之間符合正常的文件流。
下面來看這種受影響比較大的:
這種結構如果上面兩個盒子都設定浮動,那麼第三個盒子會頂上去,因為浮動不佔空間,那麼清除浮動意思就是清除浮動對該元素的影響讓它保持獨佔一行。所以設定清除浮動clear:both即可。
定位座標預設為左上。
固定定位是不佔空間的,層級高的意思就是它能覆蓋掉下面的元素(體現在顏色上)。
相對定位是佔空間的,層級也高於普通元素。
相對定位通常搭配絕對定位
通常我們使用position:absolute;position:relative進行絕對定位佈局,通過CSS進行定義定位,DIV佈局HTML,注意什麼地方使用position:relative,什麼地方使用position:absolute進行定位,同時不要忘記使用left、right、top、bottom的配合定位具體位置。絕對定位如果父級不使用position:relative,而直接使用position:absolute絕對定位,這個時候將會以body標籤為父級,使用position:absolute定義物件無論位於DIV多少層結構,都將會被拖出以<body>為父級(參考級)進行絕對定位。絕對定位非常好用,但切記不要濫用,什麼地方都用,這樣有時會懶得計算距離上、下、左、右間距,同時可能會造成CSS程式碼臃腫,更加經驗適當使用,用於該使用地方。
比如,a b c ,a是爺爺,b是父親,c是孩子,a和b都設定相對定位,c也設定的話是參考b不參考a。當然b就會去參考a。
html5=html5+css3+js IE9以上才支援html5
html5是向下相容的。也就是html,xhtml也都能支援。
html5新增加的標籤:<header>網頁文件的一個區域---網頁的頭部
<nav>代表網頁的導航---連結的哪行文字
<section>代表網頁的一個塊---div相似
<article>網頁中的文章內容
<aside>網頁文件的側邊欄
<footer>代表網頁的頁尾----版權
換成html5。
input框新增屬性:
當輸入內容為空時,不讓提交
獲取焦點的意思:滑鼠點選框內出現個閃閃的游標
失去焦點:滑鼠離開,並且框內失去閃閃的游標。
自動獲取焦點的屬性:
css3新增了屬性選擇器:
偽類:
偽元素做搜尋框:
如圖:
ps:在css裡面只有圖片才可以設定尺寸,背景圖片是不可以的,但是CSS3增加了設定背景圖片的功能。