前端二:CSS
CSS:
一:介绍:学名层叠样式表(Cading Style Sheets)是一种用来表现HTML或者XML等文件的样式的计算机语言。让HTML和XML看起来更加美观。
语法:<style>标签内定义css样式。内容是{key:value}形式。
css位置:
为了提高样式的重用。css样式一般推荐在html <head>标签的位置以及单独文件引用(head里的<link>标签)。
<head>标签内只能是当前html文件引用,而文件引用可以被多个文件引用该样式。
不推荐在标签内进行定义样式。
引用优先级:
标签内部一定样式 > <head>标签内部引用 >单个文件引用。
code:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <link rel="stylesheet" href="s1.css"/> 5 <meta charset="UTF-8"> 6 <title>test</title> 7 <style> 8 div{ 9 background-color: blue; 10 /*color: red;*/ 11 } 12 </style> 13 </head> 14 15 <body> 16 <div style="background-color: aqua;color: darkmagenta">哈哈</div> 17 <div>嘿嘿</div> 18 <div>嘿嘿</div> 19 <div>嘿嘿</div> 20 </body> 21 </html>
css 文件:
1 div{ 2 background-color: burlywood; 3 color: deeppink; 4 }
效果:
二:Css选择器:
class属性值可以重复。
1)标签选择器,不常用。缺点:对所有匹配的标签都应用该样式。
语法:
1 <style> 2 标签名字{ 3 样式:xx; 4 } 5 <style/>
code:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 <style> 7 div{ 8 background-color: aqua; 9 } 10 </style> 11 </head> 12 <body> 13 <div>COME</div> 14 <div>BACK</div> 15 <div>OK</div> 16 </body> 17 </html>
效果:
2)id选择器:通过id属性值进行匹配。不常用。缺点:因为id值得唯一性,导致只能应用在匹配的一个标签内。
语法:
1 <style> 2 #id值{ 3 样式:xx; 4 } 5 <style/>
code:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 <style> 7 #li{ 8 color: blue; 9 } 10 </style> 11 </head> 12 <body> 13 <div id="li">COME</div> 14 <div>BACK</div> 15 <div>OK</div> 16 </body> 17 </html>
效果:
3)class选择器: 根据class属性值进行匹配样式。这个比较常用。
语法:
1 <style> 2 .class属性值{ 3 样式:xx; 4 } 5 <style/>
code:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 <style> 7 .li{ 8 color: deeppink; 9 } 10 </style> 11 </head> 12 <body> 13 <div id="li">COME</div> 14 <div class="li">BACK</div> 15 <div class="li">OK</div> 16 </body> 17 </html>
效果:
4)层级选择器:注意用空格来表示层级。比较常用。
场景:当一个标签内嵌套标签。对内层标签的进行样式定义的时候。
语法:
1 <style> 2 标签名 标签名 标签名{ 3 样式: 值; 4 } 5 </style>
code:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 <style> 7 div div span{/*也可以写成这样div div .a*/ 8 color: darkmagenta; 9 } 10 </style> 11 </head> 12 <body> 13 <div> 14 <div> 15 <span class="a">OK</span> 16 <a class="b">FUCK</a> 17 </div> 18 </div> 19 </body> 20 </html>
5)组合选择器。当多个标签要要应用同一个样式的时候可以使用组合选择器。比较常用。
语法:通过逗号来表示多个class。
1 <style> 2 .class值,.clas值{ 3 样式: 值; 4 } 5 </style>
code:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 <style> 7 .a,.b{ 8 color: darkmagenta; 9 } 10 </style> 11 </head> 12 <body> 13 <div class="a">aa</div> 14 <div class="b">bbb</div> 15 </body> 16 </html>
效果:
三:样式
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 <style> 7 .c1{ 8 background-color: deeppink;/*背景色*/ 9 color: blue;/*字体颜色*/ 10 font-family: "楷体";/*字体设置*/ 11 font-size: 35px;/*字体大小*/ 12 width: 500px;/*宽度*/ 13 } 14 </style> 15 </head> 16 <body> 17 <div class="c1">欢迎来到美德商城</div> 18 <div style="width: 500px;background-color: darkseagreen"> 19 <div style="width: 20%;background-color: chartreuse">欢迎</div> 20 <div style="width: 40%;background-color: cornsilk">再见</div> 21 </div> 22 </body> 23 </html
效果:
注意:html有宽度,可以是100%也是20%等。chid <div>可以占有parent <div>的宽度比。因为内容多少高度就多少,是由内容来确定。所以没有高度的百分比(height).
背景颜色可以是由具体的英文和rgb18进制来代替 也可以用rgb(三个数字参数)来表示。
code:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 </head> 7 <body> 8 <div style="background-color: #EEEE00">cccc</div> 9 </body> 10 </html>
效果:
1)background_img 北京图片。需要规定长度和宽度,默认是图片是铺满整个屏幕。
code:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>background</title> 6 <style> 7 .c1{ 8 background-image: url("2.jpg"); 9 width: 300px; 10 height: 300px; 11 12 } 13 </style> 14 </head> 15 <body> 16 <div class="c1"></div> 17 </body> 18 </html>
效果:
background_postion确定图片位置:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>background</title> 6 <style> 7 .c1{ 8 background-image: url("2.jpg"); 9 width: 70px; 10 height: 70px; 11 background-repeat: no-repeat;/*图片不重复*/ 12 background-position: -157px -85px;/*图片位置*/ 13 } 14 </style> 15 </head> 16 <body> 17 <div class="c1"></div> 18 </body> 19 </html>
效果:
通过移动图片的位置来呈现图片的那个部位。而不是移动页面。默认显示的图片左上部分。
简单写法:
code:
1 <style> 2 .c1{ 3 background:url("2.jpg") -140px -64px no-repeat; 4 width: 90px; 5 height: 90px; 6 7 } 8 </style>
2)边框(border):
code:
1 <style> 2 .c1{ 3 border: 1px solid red; 4 } 5 </style> 6 </head> 7 <body> 8 <span class="c1">username</span> 9 </body>
效果:
可以只加左边、右边、上边、下边:border-left border-right border-top border-bottem
3)display:非常重要!!!display:none 隐藏标题栏。
code:
1 <style> 2 .c1{ 3 border: 1px solid red; 4 /*display: none;*/ 5 } 6 .c2{ 7 border: 1px solid red; 8 } 9 </style> 10 </head> 11 <body> 12 <span class="c1">username</span> 13 <span class="c2">pasword</span> 14 </body>
code:
1 <style> 2 .c1{ 3 border: 1px solid red; 4 display: none; 5 } 6 .c2{ 7 border: 1px solid red; 8 } 9 </style> 10 </head> 11 <body> 12 <span class="c1">username</span> 13 <span class="c2">pasword</span> 14 </body>
display:none 隐藏标签,并把标签占有位置去掉。
display:block:让内联标签可以像块级标签一样占一行。
code:
1 <style> 2 .c1{ 3 border: 1px solid red; 4 display: inline; 5 } 6 .c2{ 7 border: 1px solid red; 8 display: block; 9 } 10 </style> 11 </head> 12 <body> 13 <div class="c1">块级</div> 14 <span class="c2">内联</span> 15 </body
效果:
display:
code:
1 <style> 2 .c2{ 3 border: 1px solid red; 4 display: inline-block;/*让内联标签也具有块级标签的作用 高度和宽度*/ 5 width: 70px; 6 height: 70px; 7 } 8 </style> 9 </head> 10 <body> 11 <span class="c2">内联</span>
效果:
默认内联标签不具有宽度和高度。
最常用的用途:1:弹窗(默认是隐藏-display:none 显示的是去掉。)2:菜单显示二级菜单。
4)伪造超链接、等待等。
code:
1 <style> 2 .c1{ 3 cursor: pointer; 4 color: blue; 5 } 6 .c2{ 7 cursor: help; 8 color: blue; 9 } 10 .c3{ 11 cursor: move; 12 color: blue; 13 } 14 .c4{ 15 cursor: crosshair; 16 color: blue; 17 } 18 .c5{ 19 cursor: wait; 20 color: blue; 21 } 22 </style> 23 </head> 24 <body> 25 <span class="c1">伪造超链接</span> 26 <span class="c2">ddd</span> 27 <span class="c3">ddd</span> 28 <span class="c4">ddd</span> 29 <span class="c5">ddd</span> 30 </body>
5)内边距和外边距:
区别:内外边距的概念是相对于标签是否增长得区别.
应用:京东登录:
margin 外边距:本身标签不增长。而是标签部分移动。默认是
code:
1 <style> 2 .c1{ 3 border: 1px solid red; 4 width: 700px; 5 height: 700px; 6 background-color: beige; 7 } 8 9 .c2{ 10 background-color: #EEEE00; 11 margin-top: 20px; 12 margin-left: 20px; 13 margin-right: 20px; 14 } 15 </style> 16 </head> 17 18 <body> 19 <div class="c1"> 20 <div class="c2"> username: <input type="text"/> </div> 21 </div>
效果:
和上面、左面、右面各有边距。实际上用margin的时候就自动个上下左右进行边距。
code:
1 <style> 2 .c1{ 3 border: 1px solid red; 4 width: 700px; 5 height: 700px; 6 background-color: beige; 7 } 8 9 .c2{ 10 background-color: #EEEE00; 11 margin: 30px; 12 } 13 </style> 14 </head> 15 16 <body> 17 <div class="c1"> 18 <div class="c2"> username: <input type="text"/> </div> 19 </div>
效果:
padding 内边距:嵌套标签边长,同样也有左边距、右边距、上、下:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>OK</title> 6 <style> 7 .c1{ 8 background-color: darkseagreen; 9 border: 1px solid red; 10 width: 390px; 11 height: 370px; 12 } 13 .c2{ 14 padding-left: 30px; 15 padding-right: 20px; 16 padding-top: 10px; 17 background-color: aquamarine; 18 } 19 </style> 20 </head> 21 22 <body> 23 <div class="c1"> 24 <div class="c2">username:<input type="text"/> </div> 25 </div> 26 </body> 27 </html>
效果:
同样也有padding直接包含上下左右做内边距。
6)float漂浮:
表示子标签漂浮。如果子标签的超过100%将不会漂浮成功。
code:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 <style> 7 .c1{ 8 background-color: #EEEE00; 9 float: left; 10 width: 20%; 11 12 } 13 .c2{ 14 background-color: beige; 15 /*height: 100px;*/ /*同样父div定义高度的时候就不会出现子div飘出去*/ 16 width: 100px; 17 border: 1px solid black; 18 } 19 .c3{ 20 background-color: darkorchid; 21 width: 50%; 22 float: left; 23 } 24 </style> 25 </head> 26 <body> 27 <div class="c2"> 28 <div class="c1">OK</div> 29 <div class="c3">KO</div> 30 <div style="clear: both;"></div> <!-- 表示当父div没定义高度的是保证子div漂的时候不出父div的框--> 31 </div> 32 33 </body> 34 </html>
效果:
7)postion:位置。
1、fixed:固定到窗口的位置,页面滚动 也不变化位置。
2、absolute:可以固定到一个位置,但是页面滚动,他的位置也变化。
3、relative:和absolute一起使用。可以固定到父标签的框内的相对位置,而不是窗口的相对位置。
code:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 <style> 7 .c1{ 8 background-color: darkkhaki; 9 height: 2000px; 10 } 11 .c2{ 12 background-color: chartreuse; 13 position: fixed; 14 bottom: 0;/*表示右下角固定*/ 15 right: 0; 16 } 17 </style> 18 </head> 19 <body> 20 <div class="c1"> 21 <div class="c2">返回顶部</div> 22 </div> 23 </body> 24 </html>
效果:
absolute:
code:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 <style> 7 .c1{ 8 background-color: darkkhaki; 9 height: 2000px; 10 } 11 .c2{ 12 background-color: chartreuse; 13 position: absolute; 14 bottom: 0; 15 right: 0; 16 } 17 </style> 18 </head> 19 <body> 20 <div class="c1"> 21 <div class="c2">返回顶部</div> 22 </div> 23 </body> 24 </html>
随着网页的滚动而移动。
relative:
code:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 <style> 7 .c1{ 8 border: 1px solid red; 9 height: 200px; 10 width: 100px; 11 position: relative; 12 } 13 .c3{ 14 position: absolute; 15 color: red; 16 bottom: 0; 17 right: 0; 18 } 19 </style> 20 </head> 21 <body> 22 <div class="c1"> 23 <div class="c3">111</div> 24 </div> 25 </body> 26 </html>
效果:
注意:absolute和relative:一起使用,无论他们之间套了多少层标签,都是从内往外找。直到匹配。
code:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>test</title> 6 <style> 7 .c1{ 8 border: 1px solid red; 9 height: 200px; 10 width: 100px; 11 position: relative; 12 } 13 .c3{ 14 position: absolute; 15 color: red; 16 bottom: 0; 17 right: 0; 18 } 19 .c2{ 20 background-color: #EEEE00; 21 width: 100%; 22 height: 100px; 23 } 24 </style> 25 </head> 26 <body> 27 <div class="c1"> 28 <div class="c2"> 29 <div class="c3">111</div> 30 </div> 31 </div> 32 </body>
效果: