初识及入门
css概念
- Cascading Style Sheet 层叠级联样式表,用来控制网页的样式,美化网页
- html:做网页的布局(结构)—结构层
- css:控制显示的样式(美观)—行为层
- js:控制网页的行为(与用户交互)—交互层
CSS在网页中的应用
在网页中,主要有以下应用:字体、颜色、边距、高度、宽度、背景图片、网页定位、网页浮动
CSS的发展史
CSS1.0
CSS2.0:DIV(块)+CSS,HTML与CSS结构分离的思想,网页变得简单,SEO
CSS2.1:浮动、定位
CSS3.0:圆角、阴影、动画....浏览器兼容性
CSS的优势
- 内容和表现分离
- 网页结构表现统一,可以实现复用
- 样式十分丰富
- 建议使用独立于HTML的css文件
- 利用SEO,容易被搜索引擎收录
css基本语法
语法: 选择器{声明}
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!--规范,<style>可以编写css的代码,每一个声明,使用分号结尾 语法: 选择器{ 声明1; 声明2; 声明3 } --> <style> h1{ color: red; } </style> </head> <body> <h1>一级标题</h1> </body> </html>
3种引入的方式
行内样式
行内样式:在标签元素中,编写一个style属性,编写样式皆可
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <!--行内样式:在标签元素中,编写一个style属性,编写样式皆可--> <h1 style="color: red">一级标题</h1> </body> </html>内部样式
在head中的style标签中,编写样式即可
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!-- 内部样式 --> <style> h1{ color: green; } </style> </head> <body> <h1 >一级标题</h1> </body> </html>外部样式
在head中,通过link标签指向css文件,使样式生效
css规律
就近原则!!!
当同一个标签存在多个样式时,哪个离这个标签近就用哪个,图示优先级为:行内样式>外部样式>内部样式
拓展:外部样式的两种写法
- 链接式:
html
View Code<!-- 外部样式 --> <link rel="stylesheet" href="style.css">
- 导入式:
CSS2.1
View Code<!-- 外部样式 --> <style> @import url("style.css"); </style>首页link和import语法结构不同,前者<link>是html标签,只能放入html源代码中使用,后者可看作为css样式,作用是引入css样式功能。import在html使用时候需要<style type="text/css">标签,同时可以直接“@import url(CSS文件路径地址);”放如css文件或css代码里引入其它css文件。
本质上两者使用选择区别不大,但为了软件中编辑布局网页html代码,一般使用link较多,也推荐使用link
css的选择器(重点!!!)
作用:选择页面上的某一个或者某一类元素
基本选择器
- 标签:会选择页面上所有的这个标签
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /*标签选择器,会选择页面上所有的这个标签*/ h1{ color: #f69e80; } p{ color: #53f69d; } </style> </head> <body> <h1>学Java</h1> <p>记笔记</p> </body> </html>
- id:格式 #id名称{} ;全局唯一
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /* id选择器 格式:#id名称{} */ #q{ color: #f69e80; } #w{ color: #f69e80; } #e{ color: #f69e80; } </style> </head> <body> <h1 id="q">标题1</h1> <h1 id="w">标题2</h1> <h1 id="e">标题3</h1> </body> </html
- class:格式.class名称{} ;选择所有class属性一致的标签,跨标签;好处:可以多个标签归到一个class里面,实现复用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /*class选择器格式:.class名称{} 好处,可以多个标签归类,是同一个class,可以复用 */ .q{ color: #53f69d; } .w{ color: #f69e80; } </style> </head> <body> <h1 class="q">标题1</h1> <h1 class="w">标题2</h1> <h1 class="q">标题3</h1> </body> </html>思考:当同一个标签同时存在class、id、标签会执行哪一个?
答案:id>class>标签
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> /* id选择器 格式:#id名称{} */ #q{ color: #f69e80; } .yanse{ color: #53f69d; } h1{ color: red; } </style> </head> <body> <h1 id="q" class="yanse">标题1</h1> </body> </html>高级选择器
- 层次选择器
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 7 <style> 8 /*后代选择器*/ 9 /* 10 body p{ 11 background: red; 12 } 13 */ 14 /*子代选择器*/ 15 /* 16 body>p{ 17 background: #3cbda6; 18 }*/ 19 20 /*相邻弟弟选择器:只有一个,相邻(向下)*/ 21 /* 22 .active + p{ 23 background: #53f69d; 24 } 25 */ 26 27 /*通用兄弟选择器:当前选中元素的向下所有兄弟元素*/ 28 .active ~ p{ 29 background: #53f69d; 30 } 31 </style> 32 </head> 33 <body> 34 35 <p>p1</p> 36 <p class="active">p0</p> 37 <p>p2</p> 38 <p>p3</p> 39 <ul> 40 <li> 41 <p>p4</p> 42 </li> 43 <li> 44 <p>p5</p> 45 </li> 46 <li> 47 <p>p6</p> 48 </li> 49 </ul> 50 </body> 51 </html>
- 后代选择器(空格):某个元素的后面;逻辑关系类型~祖爷爷-->爷爷-->爸爸-->you;逻辑关系里面p标签包括p标签的子标签、子子标签均生效
View Code/*后代选择器*/ body p{ background: red; }- 子选择器(>):只有一代~只有儿子;只有子选择器p标签生效,p标签里面的子标签、子子标签不生效
View Code/*子代选择器*/ body>p{ background: #3cbda6; }- 相邻弟弟选择器(+):同辈;示例代码active相邻的下面的p标签生效,相邻只管向下的,不管向上的,上面的p标签不生效
View Code/*相邻弟弟选择器:只有一个,相邻(向下)*/ .active + p{ background: #53f69d; }- 通用兄弟选择器(~):当前选中元素的向下的所有同级兄弟元素生效
View Code/*通用兄弟选择器:当前选中元素的向下所有兄弟元素*/ .active ~ p{ background: #53f69d; }- 结构伪类选择器
1 /*ul的第一个子元素*/ 2 ul li:first-child{ 3 background: #53f69d; 4 } 5 /*ul的最后一个子元素*/ 6 ul li:last-child{ 7 background: #f69e80; 8 } 9 /*选择p1 :定位到父元素,选择当前第一个元素 10 选择当前p元素的父级元素,选中父级元素中的第一个,并且是当前元素才生效!按照顺序去取 11 */ 12 p:nth-child(2){ 13 background: aliceblue; 14 } 15 /*选中父元素下的p元素的第二个,按照类型去取*/ 16 p:nth-of-type(2){ 17 background: aqua; 18 }
- 属性选择器(重点!!!)
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 7 <style> 8 /*格式:标签名[属性值=属性值(支持正则匹配)] 9 注意:= 绝对等于 *=包含这个元素 ^=以什么开头 $=以什么结尾 10 */ 11 12 /*1.存在id属性的元素*/ 13 li[id]{ 14 background: green; 15 } 16 /*2.等于具体属性值的元素*/ 17 li[id="first"]{ 18 background: yellow; 19 } 20 /*3.包含属性值的元素*/ 21 li[class*="links"]{ 22 background: black; 23 } 24 25 /*4.属性值使用正则匹配,例如href元素以http开头的元素*/ 26 li[href^=http]{ 27 background: red; 28 } 29 /*5.属性值使用正则匹配,例如href元素以pdf结尾的元素*/ 30 li[href$=pdf]{ 31 background: blue; 32 } 33 34 35 </style> 36 </head> 37 <body> 38 39 <ul> 40 <li id="first" >li1</li> 41 <li class="none links">li2</li> 42 <li id="second">li3</li> 43 <li class="links active">li4</li> 44 <li id="third">li5</li> 45 <li href="http://www.baidu.com">li6</li> 46 <li href="http://www.blibli.com">li7</li> 47 <li href="http://pdf">li8</li> 48 <li href="http://www.pdf">li9</li> 49 </ul> 50 </body> 51 </html>
美化网页
为什么要美化网页
- 有效的传递页面信息
- 美化网页,页面漂亮,才能吸引用户
- 凸显页面的主题
- 提高用户的体验
span标签:重点要突出的字,使用span套起来;行业默认的规则
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> #title{ font-size: 50px; } </style> </head> <body> 学习<span id="title">Java</span> </body> </html>
字体
- font-family:字体样式
- font-size:字体大小
- font-weight:字体粗细
- color:颜色
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 7 <style> 8 body{ 9 font-family: 楷体; 10 color: #a13d30; 11 } 12 h1{ 13 font-size: 50px; 14 } 15 .p1{ 16 font-weight: bolder; 17 } 18 </style> 19 </head> 20 <body> 21 <h1>出师表</h1> 22 <p class="p1">先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。</p> 23 <p>宫中府中,俱为一体,陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不宜偏私,使内外异法也。</p> 24 <p>侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下。愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。</p> 25 <p>将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能,是以众议举宠为督。愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。</p> 26 <p>亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。</p> 27 <p>臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。</p> 28 <p>先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明,故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。</p> 29 <p>愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言。深追先帝遗诏,臣不胜受恩感激。</p> 30 <p>今当远离,临表涕零,不知所言。</p> 31 </body> 32 </html>
排版网页
- text-align:位置排版
- text-indent:首行缩进
- line-height:行高,行高和块的高度一致,就可以上下居中
- text-decoration:上中下划线
- vertical-align:middle文本图片水平对齐
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> body{ font-family: 楷体; color: #a13d30; } h1{ font-size: 50px; } .p1{ font-weight: bolder; } </style> <style> h1{ text-align: center; } p{ text-indent: 2em; line-height: 2; text-decoration: underline; } </style> </head> <body> <h1>出师表</h1> <p class="p1">先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。诚宜开张圣听,以光先帝遗德,恢弘志士之气,不宜妄自菲薄,引喻失义,以塞忠谏之路也。</p> <p>宫中府中,俱为一体,陟罚臧否,不宜异同。若有作奸犯科及为忠善者,宜付有司论其刑赏,以昭陛下平明之理,不宜偏私,使内外异法也。</p> <p>侍中、侍郎郭攸之、费祎、董允等,此皆良实,志虑忠纯,是以先帝简拔以遗陛下。愚以为宫中之事,事无大小,悉以咨之,然后施行,必能裨补阙漏,有所广益。</p> <p>将军向宠,性行淑均,晓畅军事,试用于昔日,先帝称之曰能,是以众议举宠为督。愚以为营中之事,悉以咨之,必能使行阵和睦,优劣得所。</p> <p>亲贤臣,远小人,此先汉所以兴隆也;亲小人,远贤臣,此后汉所以倾颓也。先帝在时,每与臣论此事,未尝不叹息痛恨于桓、灵也。侍中、尚书、长史、参军,此悉贞良死节之臣,愿陛下亲之信之,则汉室之隆,可计日而待也。</p> <p>臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。</p> <p>先帝知臣谨慎,故临崩寄臣以大事也。受命以来,夙夜忧叹,恐托付不效,以伤先帝之明,故五月渡泸,深入不毛。今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。此臣所以报先帝而忠陛下之职分也。至于斟酌损益,进尽忠言,则攸之、祎、允之任也。</p> <p>愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言。深追先帝遗诏,臣不胜受恩感激。</p> <p>今当远离,临表涕零,不知所言。</p> </body> </html>
超链接伪类
hover
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <style> 7 /*默认颜色*/ 8 a{ 9 color: black; 10 } 11 12 /*鼠标悬停的状态*/ 13 a:hover{ 14 color: green; 15 font-size: 50px; 16 } 17 </style> 18 </head> 19 <body> 20 <a href="http://www.baidu.com">百度</a> 21 </body> 22 </html>
列表样式
list-style:
- none:去掉圆点
- circle:空心圆
- decimal:数字
- square:正方形
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 7 <style> 8 .p1{ 9 list-style: none; 10 } 11 .p2{ 12 list-style: circle; 13 } 14 .p3{ 15 list-style: decimal; 16 } 17 .p4{ 18 list-style: square; 19 } 20 </style> 21 </head> 22 <body> 23 24 <ul> 25 <li class="p1">li1</li> 26 <li class="p2">li2</li> 27 <li class="p3">li3</li> 28 <li class="p4">li4</li> 29 </ul> 30 </body> 31 </html>
背景样式
背景颜色
background,前面的例子都有,测试人员了解上述的就够了
背景图片
background-repeat:作用相当于windows设置壁纸时寻找的契合度一样
- 默认全部平铺
- repeat-x:水平平铺
- repeat-y:竖向平铺
- no-repeat:不平铺
- ......
渐变背景参考网址:http://www.grabient.com
盒子模型
所有HTML元素可以看作盒子,在CSS中,"box model"这一术语是用来设计和布局时使用。
CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。
盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。
下面的图片说明了盒子模型(Box Model):
不同部分的说明:
- Margin(外边距) - 清除边框外的区域,外边距是透明的。
- Border(边框) - 围绕在内边距和内容外的边框。
- Padding(内边距) - 清除内容周围的区域,内边距是透明的。
- Content(内容) - 盒子的内容,显示文本和图像。
边框border
border表示盒子的边界,它可以设置成可见的,样式多样的。最基本的,border像margin和padding一样可以分别对每一条边进行设置,也可以使用简写属性border进行设置。
当border属性的色值不明确指定时,如
border: 1px solid,边框颜色与当前元素的字体颜色color相同。
- border-top:上边界
- border-bottom:下边界
- border-left:左边界
- border-right:右边界
/*使用简写属性,同时设置四条边界,四条边界的宽度、样式和颜色都是一样的*/ border: 2px solid green; /*下面的样式与上面的样式等价*/ border-top: 2px solid green; border-bottom: 2px solid green; border-left: 2px solid green; border-right: 2px solid green;
内边框padding
padding表示盒子的内边距(填充)。与外边距不同,padding不是只能完全透明的,可以设置背景颜色和图片。与margin类似,padding包含了上下左右四条边,可以单独设置每一条边的边距。
- padding-top:上部填充
- padding-bottom:下部填充
- padding-left:左部填充
- padding-right:右部填充
外边框margin
margin,盒子的外边框,他是完全透明的,开发者只可以设置它的边距。margin包含了上下左右四条边,开发者可以单独设置每一条边的边距。
margin-top:上边距margin-buttom:下边距margin-left:左边距margin-right:右边距/*margin属性后只跟一个值,同时设置四条边的边距相等*/ margin: 10px; /*下面样式与上面的样式等价*/ margin-top: 10px; margin-right: 10px; margin-bottom: 10px; margin-left: 10px;
备注:该篇笔记后续还会补充,盒子还不全;还有浮动、定位两个大模块未补充