摘要:浮動元素會生成一個塊級框,而不論它本身是何種元素。關于浮動的兩個特點浮動的框可以向左或向右移動,直到它的外邊緣碰到包含框或另一個浮動框的邊框為止。由于浮動框不在文檔的普通流中,所以文檔的普通流中的塊框表現得就像浮動框不存在一樣。
CSS(cascading style sheet,層疊樣式表)定義如何顯示HTML元素。
當瀏覽器讀到一個樣式表,它會按照這個樣式表來對文檔進行格式化(渲染)。
每個CSS樣式由兩個部分組成:選擇器 + 聲明(屬性、屬性值) 每個聲明之后加;分號結束!
/* 注釋內容 */
<p style="color: pink">這個一個p標簽 內聯樣式是字體顏色粉色p>
<head> <meta charset="UTF-8"> <style> h1 {color: pink} style> <title>test練習title> head> <body> <h1 id="p1">海燕h1> body> html>
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="01樣式.css"> link 即為引入外部樣式
<title>test練習title>
head>
1、元素(標簽)選擇器:適用于批量的(統一,默認)的樣式 p {color: sandybrown} 2、ID 選擇器:給特定標簽設置特定樣式 #p1 {background-color: burlywood} (井號后跟 需渲染內容的 ID 號) 3、類 選擇器:給某一些標簽設置相同的樣式 .c1 {color: antiquewhite;font-size: 18px} .p1 { font-size: 29px} (在HTML標簽中有一個class屬性,c1 和 p1 對應名稱的class) 4、通用選擇器 * {font-size: 14px} /*適用所有元素*/
ps:
樣式類名不要用數字開頭(有的瀏覽器不認)。
標簽中的class屬性如果有多個,要用空格分隔。
1、后代選擇器 (p內部的a標簽設置字體顏色 p a { color: red; } 2、兒子選擇器 (選擇所有父級是元素的元素:div標簽內子標簽是p標簽的生效(只找兒子輩)) div>p { font-family: "Arial Black","arial-black",cursive; } 3、毗鄰選擇器 (選擇所有緊挨著
之后的標簽:找的是
標簽(條件:同級的上面有個
)) div+p { margin: 5px; } 4、弟弟選擇器 (#p1(id=p1的)后面所有的兄弟p標簽) #p1~p { color: gold }
3、屬性選擇器
1、用于選取帶有指定屬性的元素。 p[title] { color: red; } 2、用于選取帶有指定屬性和值的元素。 p[title="123"] { color: green; }
對應下面2個HTML生效咕咕咕
略略略
/*找到所有title屬性以hello開頭的元素*/ [title^="hello"] { color: red; } /*找到所有title屬性以hello結尾的元素*/ [title$="hello"] { color: yellow; } /*找到所有title屬性中包含(字符串包含)hello的元素*/ [title*="hello"] { color: red; } /*找到所有title屬性(有多個值或值以空格分割)中有一個值為hello的元素:*/ [title~="hello"] { color: green;不怎么常用的屬性選擇器4、分組和嵌套
/*1、分組(當多個元素的樣式相同的時候,我們沒有必要重復地為每個元素都設置樣式, 可以通過在多個選擇器之間使用逗號分隔的分組選擇器來統一設置元素樣式)*/ div, (一定要加逗號(不然就變成后代了)) p{ color: sandybrown; } /*2、嵌套(多種選擇器可以混合起來使用(空格,>,+,~),比如:.c1類內部所有p標簽設置字體顏色為紅色。)*/ .c1 p { color: red; }5、偽類選擇器
/* 未訪問的鏈接 */ a:link { color: #FF0000 } /* 已訪問的鏈接 */ a:visited { color: #00FF00 } /* 鼠標移動到鏈接上 */ a:hover { color: #FF00FF } /* 選定的鏈接 */ a:active { color: #0000FF } /*input輸入框獲取焦點時樣式*/ input:focus { outline: none; background-color: #eee; }6、偽元素選擇器
1、first-letter: 常用的給首字母設置特殊樣式: p:first-letter{ font-size: 48px; color: red; } 2、before:在每個p元素之前插入內容 p:before{ content: "*"; color: red; } 3、 after:在每個p元素之后插入內容 p:after{ content: "[?]"; color: blue; }before和after多用于清除浮動
四、選擇器的優先級
1、CSS繼承
繼承是CSS的一個主要特征,它是依賴于祖先-后代的關系的。繼承是一種機制,它允許樣式不僅可以應用于某個特定的元素,還可以應用 于它的后代。例如一個body定義了的字體顏色值也會應用到段落的文本中。
body { color: red; } 此時頁面上所有標簽都會繼承body的字體顏色。然而CSS繼承性的權重是非常低的,是比普通元素的權重還要低的0。 我們只要給對應的標簽設置字體顏色就可覆蓋掉它繼承的樣式。此外,繼承是CSS重要的一部分,我們甚至不用去考慮它為什么能夠這樣,但CSS繼承也是有限制的。有一些屬性不能被繼承,如:border, margin, padding, background等。
具體的選擇器權重計算方式如下圖:
除此之外還可以通過添加 !important方式來強制讓樣式生效,但并不推薦使用。因為如果過多的使用!important會使樣式文件混亂不易維護。
萬不得已可以使用!important
2、樣式文件優先級(重要)
1. 越靠近標簽的優先級越高(就近原則)
2. 權重的計算
1. 內聯樣式 1000
2. ID選擇器 100
3. 類選擇器 10
4.元素選擇器 1
五、CSS字體和文字屬性相關
1、通用的屬性:寬和高(width(寬度) 和 height(高度))
width 屬性 可以為元素設置寬度。
height 屬性可以為元素設置高度。
塊級標簽才能設置寬度,內聯標簽的寬度由內容決定。
2、文字字體
font-family可以把多個字體名稱作為一個“回退”系統來保存。如果瀏覽器不支持第一個字體,則會嘗試下一個。瀏覽器會使用它可識別的第一個值。
* { font-family: "Microsoft Yahei", "微軟雅黑", "Arial", sans-serif }3、字體大小和粗細
@字體大小設置p { font-size: 14px; 如果設置成 inherit 表示繼承父元素的字體大小值。 }@字體粗細設置p { font-weight: normal; 默認值,標準粗細 font-weight: bold; 粗體 font-weight: bolder; 更粗 font-weight: lighter;更細 font-weight: 100-900;設置具體粗細,400等同于normal,700等同于bold font-weight: inherit;繼承父元素字體的粗細值 }
4、文本顏色
.c1 { color: aqua; }顏色屬性被用來設置文字的顏色。
顏色是通過CSS最經常的指定:
- 十六進制值 - 如: #FF0000
- 一個RGB值 - 如: RGB(255,0,0)
- 顏色的名稱 - 如: red
還有rgba(255,0,0,0.3),第四個值為alpha, 指定了色彩的透明度/不透明度,它的范圍為0.0到1.0之間。
5、文字對齊
text-align 屬性規定元素中的文本的水平對齊方式。
p {text-align: center;}6、文字裝飾
text-decoration 屬性用來給文字添加特殊效果。
常用的為去掉a標簽默認的下劃線:
a { text-decoration: none; }常用的為去掉ul標簽前面的圓點:
ul { list-style-type: none; }首行縮進:
p { text-indent: 28px; } 首行縮進28像素六、CSS背景和邊框屬性
1、背景屬性
1.背景顏色 background-color: red; 背景圖片 background-image: url("頭像.jpg") ; 2. 背景重復 repeat(默認):背景圖片平鋪排滿整個網頁 repeat-x: 背景圖片只在水平方向上平鋪 repeat-y: 背景圖片只在垂直方向上平鋪 no-repeat: 背景圖片不平鋪 background-repeat: no-repeat; 3.背景位置 background-position: right top; background-position: 200px 200px;
可簡寫為:
background: url("頭像.jpg") no-repeat center top ;
使用背景圖片的一個常見案例就是很多網站會把很多小圖標放在一張圖片上,然后根據位置去顯示圖片。減少頻繁的圖片請求。
DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>滾動背景圖示例title> <style> * { margin: 0; } .box { width: 100%; height: 500px; background: url("頭像.jpg") no-repeat center center; background-attachment: fixed; } .c1 { height: 500px; background-color: tomato; } .c2 { height: 500px; background-color: steelblue; } style> head> <body> <div class="c1">div> <div class="box">div> <div class="c2">div> body> html>
鼠標滾動,背景不變2、邊框屬性
1、邊框屬性有(border - width、border-style、bordercolor)
通常簡寫成:
.c2 { border: aqua solid 3px; }2、邊框的樣式:
3、多帶帶為某一個邊框設置樣式:
#i1 { border-top-style:dotted; border-top-color: red; border-right-style:solid; border-bottom-style:dotted; border-left-style:none; }4、圓角邊框效果
將border-radius設置為長或高的一半即可得到一個圓形
border-radius: 50%;
3、display 屬性
用于塊級元素和行內元素轉換(控制元素顯示效果)
display:"none"與visibility:hidden的區別:不常用!
visibility:hidden: 可以隱藏某個元素,但隱藏的元素仍需占用與未隱藏之前一樣的空間。也就是說,該元素雖然被隱藏了,但仍然會影響布局。
display:none: 可以隱藏某個元素,且隱藏的元素不會占用任何空間。也就是說,該元素不但被隱藏了,而且該元素原本占用的空間也會從頁面布局中消失
七、CSS盒子模型
- margin: 用于控制元素與元素之間的距離;margin的最基本用途就是控制元素周圍空間的間隔,從視覺角度上達到相互隔開的目的。
- padding: 用于控制內容與邊框之間的距離;
- Border(邊框): 圍繞在內邊距和內容外的邊框。
- Content(內容): 盒子的內容,顯示文本和圖像。
1、margin 外邊距
.c1 { margin-top:5px; 頂部 margin-right:10px;右邊 margin-bottom:15px;底部 margin-left:20px; 左邊 }可簡寫為:
.c1 { margin: 5px 10px 15px 20px; } 順序:上>右>下>左最常居中使用!!!
.c1 { margin: 0 auto;}2、padding 內填充
.c1 { padding-top: 5px; padding-right: 10px; padding-bottom: 15px; padding-left: 20px; } 簡寫和順序 與 margin 一致!!!補充padding的常用簡寫方式:
- 提供一個,用于四邊;
- 提供兩個,第一個用于上-下,第二個用于左-右;
- 如果提供三個,第一個用于上,第二個用于左-右,第三個用于下;
- 提供四個參數值,將按上-右-下-左的順序作用于四邊;
八、浮動與清除浮動、處理溢出
1、浮動(float)
在 CSS 中,任何元素都可以浮動。
浮動元素會生成一個塊級框,而不論它本身是何種元素。
關于浮動的兩個特點:
- 浮動的框可以向左或向右移動,直到它的外邊緣碰到包含框或另一個浮動框的邊框為止。
- 由于浮動框不在文檔的普通流中,所以文檔的普通流中的塊框表現得就像浮動框不存在一樣。
浮動頁面布局示例
布局 left:向左浮動
right:向右浮動
none:默認值,不浮動
2、清除浮動(clear)
clear屬性規定元素的哪一側不允許其他浮動元素
ps:clear屬性只會對自身起作用,而不會影響其他元素。
浮動有一個副作用:父標簽塌陷
清除主要有三種方式:
- 固定高度
- 偽元素清除法
- overflow:hidden
/*偽元素清除浮動(最常用)*/ #clearfix:after { content: ""; clear: left; display: block; }3、溢出(overflow)
- overflow(水平和垂直均設置)
- overflow-x(設置水平方向)
- overflow-y(設置垂直方向)
頭像示例
頭像示例 九、定位(position)
- static -----> 默認
- relative -----> 相對定位(相對于原來的位置)
- absolute-----> 絕對定位(相對于最近的一個被定位過的的祖宗標簽)
- fixed -----> 固定在某個位置(返回頂部按鈕)
left right top bottom
定位示例
定位練習 c1c2c3c4返回頂部ps:脫離文檔流的3種方式:
1、 float 浮動
2、absolute 絕對定位
3、fixed 固定
十、元素透明度與層疊順序
1、opacity (元素透明度)
取 0---1 之間的值 ;
和rgba()的區別:
1:opacity 改變元素以及子元素的透明度2:rgba()只改變背景顏色的透明度
2、z-index(層疊順序設置)
1、數值越大,越靠近你
2、只能作用于定位過的元素
DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>自定義模態框title> <style> .cover { background-color: rgba(0,0,0,0.65); position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 998; } .modal { background-color: white; position: fixed; width: 600px; height: 400px; left: 50%; top: 50%; margin: -200px 0 0 -300px; z-index: 1000; } style> head> <body> <div class="cover">div> <div class="modal">div> body> html>
模態框示例
3、頂部導航欄練習
DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <meta http-equiv="x-ua-compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>導航欄示例title> <style> /*清除瀏覽器默認外邊距和內填充*/ * { margin: 0; padding: 0; } a { text-decoration: none; /*去除a標簽默認的下劃線*/ } .nav { background-color: black; height: 40px; width: 100%; position: fixed; top: 0; } ul { list-style-type: none; /*刪除列表默認的圓點樣式*/ margin: 0; /*刪除列表默認的外邊距*/ padding: 0; /*刪除列表默認的內填充*/ display: inline-block; } /*li元素向左浮動*/ li { float: left; } li > a { display: block; /*讓鏈接顯示為塊級標簽*/ padding: 0 15px; /*設置左右各15像素的填充*/ color: #b0b0b0; /*設置字體顏色*/ line-height: 40px; /*設置行高*/ } /*鼠標移上去顏色變白*/ li > a:hover { color: #fff; display: block; background-color: #ff6700; } #u-right { float: right; } li > a:active { color: deeppink; } /*清除浮動 解決父級塌陷問題*/ .clearfix:after {
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/1580.html
相關文章
[譯]148個資源讓你成為CSS專家
摘要:層疊樣式表二修訂版這是對作出的官方說明。速查表兩份表來自一份關于基礎特性,一份關于布局。核心第一篇一份來自的基礎參考指南簡寫速查表簡寫形式參考書使用層疊樣式表基礎指南,包含使用的好處介紹個方法快速寫成高質量的寫出高效的一些提示。 迄今為止,我已經收集了100多個精通CSS的資源,它們能讓你更好地掌握CSS技巧,使你的布局設計脫穎而出。 CSS3 資源 20個學習CSS3的有用資源 C...
簡單易懂的CSS Modules
摘要:結果是選手獲勝,名為的元素,最終的值為。而合理的命名約定,的確是組織代碼的有效策略。它們會再由轉換為適當的組合。雖然本文為了嚴謹,結果寫了相當長的篇幅,但希望你讀過之后,還能覺得是簡單易懂的。 不要誤會,CSS Modules可不是在說css模塊化這個好像在某些地方見過的詞,它其實是特指一種近期才出現的技術手段。 什么技術手段呢?請待后文說明。 層疊樣式表 我們知道,css的全名叫做層...
CSS Modules實踐
摘要:能最大化地結合現有生態預處理器后處理器等和模塊化能力,幾乎零學習成本。編碼相關的所有樣式上例中打印的結果是注意到是按照自動生成的名。實踐手動引用渲染結果使用可以實現使用屬性自動加載模塊。 文章同步于Github Pines-Cheng/blog 隨著前端這幾年的風生水起,CSS作為前端的三劍客之一,各種技術方案也是層出不窮。從CSS prepocessor(SASS、LESS、Styl...
【譯】編寫更好的CSS必備的40個工具
摘要:一個叫的人用純重繪并模擬了種不同的移動設備包括可以給你的網站添加不相關的獨立組件的一個庫。每一個組件都是針對移動設備定制的,并且它有很多你在傳統的框架中看不到的功能。如果你用開發移動優先的網站,并想要網站正常運行在低版本的上,可以考慮。 眾所周知,CSS是非常棒的,它使網站看起來很漂亮,可以為網站添加動畫,并讓呈現和內容分離。去了解CSS的一切是非常難做到的,它只會變得更加困難,因為我...
SegmentFault 技術周刊 Vol.38 - 神奇的 CSS
摘要:層疊即表示允許以多種方式來描述樣式,一個元素可以被渲染呈現出多種樣式。可以讓屬性的變化過程持續一段時間,而不是立即生效。比如,將元素的顏色從白色改為黑色,通常這個改變是立即生效的,使用后,將按一個曲線速率變化。 showImg(https://segmentfault.com/img/bVZwyL?w=900&h=385); CSS 的全稱是 Cascading Style Sheet...
CSS Modules詳解及React中實踐
摘要:上例中打印的結果是對中的名都做了處理,使用對象來保存原和混淆后的對應關系。結合實踐在處直接使用中名即可。如因為只會轉變類選擇器,所以這里的屬性選擇器不需要添加。 showImg(http://gtms01.alicdn.com/tps/i1/TB15w0HLpXXXXbdaXXXjhvsIVXX-600-364.png); CSS 是前端領域中進化最慢的一塊。由于 ES2015/201...
發表評論
0條評論
番茄西紅柿
男|高級講師
TA的文章
閱讀更多
tensor
閱讀 713·2023-04-25 19:43
Windows 下安裝 XGBoost
閱讀 3910·2021-11-30 14:52
Hadoop 2.6.0 啟動問題 lib/native/libhadoop.so which mi
閱讀 3784·2021-11-30 14:52
VmShell:黑五美國VPS,免費先開通測試,滿意后付款!支持tiktok美區
閱讀 3852·2021-11-29 11:00
百度智能云:云產品特惠福利,1核2G輕量應用服務器僅48元/年
閱讀 3783·2021-11-29 11:00
Linux系統和寶塔面板如何啟用禁ping功能?
閱讀 3869·2021-11-29 11:00
301重定向怎么做?301重定向設置方法有幾種
閱讀 3557·2021-11-29 11:00
wordpress網站重定向次數過多的解決方法
閱讀 6105·2021-11-29 11:00