python全棧開發 * css 選擇器 浮動 * 180808
css 選擇器
一.基本選擇器
1.標簽選擇器
標簽選擇器可以選中所有的標簽元素,比如div,ul,li ,p等等,不管標簽藏的多深,都能選中,選中的是所有的,而不是某一個,所以說 "共性" 而不是 ”特性“
body{ color:gray; font-size: 12px; } /*標簽選擇器*/ p{ color: red; font-size: 20px; } span{ color: yellow; }
2.id選擇器
同一個頁面中id不能重復。
任何的標簽都可以設置id
id命名規範 要以字母 可以有數字 下劃線 - 大小寫嚴格區分 aa和AA是兩個不一樣的屬性值
#box{ background:green; } #s1{ color: red; } #s2{ font-size: 30px; }
3.類選擇器
所謂類 就是class . class與id非常相似 任何的標簽都可以加類但是類是可以重復,屬於歸類的概念。
同一個標簽中可以攜帶多個類,用空格隔開
.lv{ color: green; } .big{ font-size: 40px; } .line{ text-decoration: underline; }
<!-- 公共類 共有的屬性 --> <div> <p class="lv big">段落1</p> <p class="lv line">段落2</p> <p class="line big">段落3</p> </div>
4.通配選擇器
*{ } 包含head body
總結:
- 不要去試圖用一個類將我們的頁面寫完。這個標簽要攜帶多個類,共同設置樣式
- 每個類要盡可能的小,有公共的概念,能夠讓更多的標簽使用
面試
到底使用id還是用class?
答案:盡可能的用class。除非一些特殊情況可以用id
原因:id一般是用在js的。也就是說 js是通過id來獲取到標簽
二.高級選擇器
1.後代選擇器
使用空格表示後代選擇器。顧名思義,父元素的後代(包括兒子,孫子,重孫子)
1 .container p{ 2 color: red; 3 } 4 .container .item p{ 5 color: yellow; 6 }
2.子代選擇器
使用>表示子代選擇器。比如div>p,僅僅表示的是當前div元素選中的子代(不包含孫子....)元素p。
1 .container>p{ 2 color: yellowgreen; 3 }
3.並集選擇器
多個選擇器之間使用逗號隔開。表示選中的頁面中的多個標簽。一些共性的元素,可以使用並集選擇器
1 /*並集選擇器*/ 2 h3,a{ 3 color: #008000; 4 text-decoration: none; 5 6 }
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td {
margin: 0;
padding: 0
}
/*使用此並集選擇器選中頁面中所有的標簽,頁面布局的時候會使用*/
4.交集選擇器
使用.表示交集選擇器。第一個標簽必須是標簽選擇器,第二個標簽必須是類選擇器 語法:div.active
1 h4{ 2 width: 100px; 3 font-size: 14px; 4 } 5 .active{ 6 color: red; 7 text-decoration: underline; 8 } 9 /* 交集選擇器 */ 10 h4.active{ 11 background: #00BFFF; 12 }
它表示兩者選中之後元素共有的特性。
三.屬性選擇器 (一般用於表單控件)
根據標簽中的屬性,選中當前標簽
1.[for]
2.[for="username"]{ color: yellow} 找到for屬性的等於username的元素 字體顏色設為黃色
3.[for^="user"] { color: #008000;} 以user開頭
4.[for$=‘vvip‘]{color : red} 以VVIP結尾
5.[for*="vip"] { color : #00BFFF} 包含vip 元素的標簽
6.指定單詞的屬性
lable[for~=‘user1‘] {color : red}
input[type="text"] {background : red}
示例:
/*根據屬性查找*/ /*[for]{ color: red; }*/ /*找到for屬性的等於username的元素 字體顏色設為紅色*/ /*[for=‘username‘]{ color: yellow; }*/ /*以....開頭 ^*/ /*[for^=‘user‘]{ color: #008000; }*/ /*以....結尾 $*/ /*[for$=‘vvip‘]{ color: red; }*/ /*包含某元素的標簽*/ /*[for*="vip"]{ color: #00BFFF; }*/ /**/ /*指定單詞的屬性*/ label[for~=‘user1‘]{ color: red; } input[type=‘text‘]{ background: red; }
四.偽類選擇器
偽類選擇器一般會用在超鏈接a標簽中,使用a標簽的偽類選擇器,我們一定要遵循"愛恨準則" LoVe HAte
1.沒有被訪問的a 標簽的樣式 a : link { color : #666}
2.訪問過後的a標簽的樣式 a : visited {color : yellow}
3.鼠標懸停時a標簽的式樣 a :hover {color : green}
4.鼠標摁住的時候a標簽的樣式 a : active{ color : yellowgreen
1 /*沒有被訪問的a標簽的樣式*/ 2 .box ul li.item1 a:link{ 3 4 color: #666; 5 } 6 /*訪問過後的a標簽的樣式*/ 7 .box ul li.item2 a:visited{ 8 9 color: yellow; 10 } 11 /*鼠標懸停時a標簽的樣式*/ 12 .box ul li.item3 a:hover{ 13 14 color: green; 15 } 16 /*鼠標摁住的時候a標簽的樣式*/ 17 .box ul li.item4 a:active{ 18 19 color: yellowgreen; 20 }
5.介紹一種css3的選擇器nth-child()
(1)標簽 : first-child{ font-size:20px; color:red} 選第一個元素
(2標簽 : last-child{ font-size:20px; color:red} 選最後一個
(3標簽 :nth-child(3){ font-size:20px; color:red} 選中當前指定的元素 數值從1開始
(4)標簽 :nth-child(n){font-size:20px; color:red} n表示選中所有,從0開始,0表示沒有選中
(5) 標簽:nth-child(2n) 偶數
(6) 標簽 nth-child(2n-1) 奇數
隔幾換色 隔行換色
隔4換色 就是5n+1,隔3換色就是4n+1
復制代碼 /*選中第一個元素*/ div ul li:first-child{ font-size: 20px; color: red; } /*選中最後一個元素*/ div ul li:last-child{ font-size: 20px; color: yellow; } /*選中當前指定的元素 數值從1開始*/ div ul li:nth-child(3){ font-size: 30px; color: purple; } /*n表示選中所有,這裏面必須是n, 從0開始的 0的時候表示沒有選中*/ div ul li:nth-child(n){ font-size: 40px; color: red; } /*偶數*/ div ul li:nth-child(2n){ font-size: 50px; color: gold; } /*奇數*/ div ul li:nth-child(2n-1){ font-size: 50px; color: yellow; } /*隔幾換色 隔行換色 隔4換色 就是5n+1,隔3換色就是4n+1 */ div ul li:nth-child(5n+1){ font-size: 50px; color: red; }
五.偽元素選擇器
1. 設置首字母的樣式
p:first-letter{ color: red; font-size: 30px; }
2.在....之前 添加內容 使用此偽元素選擇器一定要結合content屬性
p:before{ content:‘alex‘; }
3. 在...之後 添加內容 布局 有關 (清除浮動)
p:after{ content:‘&‘; color: red; font-size: 40px; }
補充:
重置樣式:*{padding:0; margin : 0}
去點 : 標簽{list-style : none}
display相關設置
inline行內顯示
inline-block行內塊
block 塊
none 隱藏(不顯示占用位置)
visible-hidden(隱藏占用位置) height : 0
python全棧開發 * css 選擇器 浮動 * 180808