01-css的引入方式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="./index.css"> <!-- 内接方式 --> <style type="text/css"> h3{ color: yellow; font-size: 14px; } </style> <!-- <style type="text/css"> @import url(./index.css); </style> --> </head> <body> <!-- 优先级: 行内的优先级 它的优先级最大 --> <p style="color: red;">我是一个文字内容</p> <h3>我是h3标题</h3> <h4>我是h4标题</h4> </body> </html>
在HTML中引入css方式总共有三种:
- 行内样式
- 内接样式
- 外接样式
3.1 链接式
3.1 导入式
css介绍
现在的互联网前端分三层:
- HTML:超文本标记语言。从语义的角度描述页面结构。
- CSS:层叠样式表。从审美的角度负责页面样式。
- JS:JavaScript 。从交互的角度描述页面行为
CSS:Cascading Style Sheet,层叠样式表。CSS的作用就是给HTML页面标签添加各种样式,定义网页的显示效果。简单一句话:CSS将网页内容和显示样式进行分离,提高了显示功能。
css的最新版本是css3,我们目前学习的是css2.1
接下来我们要讲一下为什么要使用CSS。
HTML的缺陷:
- 不能够适应多种设备
- 要求浏览器必须智能化足够庞大
- 数据和显示没有分开
- 功能不够强大
CSS 优点:
- 使数据和显示分开
- 降低网络流量
- 使整个网站视觉效果一致
- 使开发效率提高了(耦合性降低,一个人负责写html,一个人负责写css)
比如说,有一个样式需要在一百个页面上显示,如果是html来实现,那要写一百遍,现在有了css,只要写一遍。现在,html只提供数据和一些控件,完全交给css提供各种各样的样式。
行内样式
1 <div> 2 <p style="color: green">我是一个段落</p> 3 </div>
内接样式
<style type="text/css"> /*写我们的css代码*/ span{ color: yellow; } </style>
外接样式-链接式
<link rel="stylesheet" href="./index.css">
外接样式-导入式
<style type="text/css"> @import url('./index.css'); </style>
02-css的选择器
css的选择器:1.基本选择器 2.高级选择器
基本选择器包含:
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
id命名规范 要以字母 可以有数字 下划线 - 大小写严格区分 aa和AA是两个不一样的属性值
1 #box{ 2 background:green; 3 } 4 5 #s1{ 6 color: red; 7 } 8 9 #s2{ 10 font-size: 30px; 11 }
3.类选择器
3.1 所谓类 就是class . class与id非常相似 任何的标签都可以加类但是类是可以重复,属于归类的概念。
3.2 同一个标签中可以携带多个类,用空格隔开
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> /*选中body中相关标签*/ /*#box{ color: red; }*/ .box{ color: red; } .active{ font-size: 30px; } .ttt{ background-color: green; text-decoration: underline; } .lv{ color: green; } .bg{ font-size: 30px } .u{ text-decoration: underline; } .lv:hover{ color: red; font-size: 32px; } .box:hover{ color: yellow; } div{ color: red; } .ppp{ color: purple; } </style> </head> <body> <!-- --> <!-- <p class="box active ttt" id="box" >猜猜我的颜色</p> --> <!-- <div class="box"> alex </div> --> <!-- 段落1:绿色 30px 段落2:绿色 下划线 段落3: 30px 下划线 --> <p class="lv bg">段落1</p> <p class="lv u">段落2</p> <p class="bg u">段落3</p> <div id="a"> <div id="b"> <div> <div> <div> <div> <div class="ppp"> 哈哈哈哈 </div> </div> </div> </div> </div> </div> </div> </body> </html>
类的使用,能够决定前端工程师的css水平到底有多牛逼?
答案:一定要有”公共类“的概念
1 .lv{ 2 color: green; 3 4 } 5 .big{ 6 font-size: 40px; 7 } 8 .line{ 9 text-decoration: underline; 10 }
1 <!-- 公共类 共有的属性 --> 2 <div> 3 <p class="lv big">段落1</p> 4 <p class="lv line">段落2</p> 5 <p class="line big">段落3</p> 6 </div>
总结:
- 不要去试图用一个类将我们的页面写完。这个标签要携带多个类,共同设置样式
- 每个类要尽可能的小,有公共的概念,能够让更多的标签使用
玩好了类 就等于玩好了css中的1/2
到底使用id还是用class?
答案:尽可能的用class。除非一些特殊情况可以用id
原因:id一般是用在js的。也就是说 js是通过id来获取到标签
03-高级选择器
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> /**/ /**{ padding: 0; margin: 0; }*/ html,body,div,p,ul,li,ol,dl,span,a{ padding: 0; margin: 0; } ul{ list-style: none; } /*重置样式*/ #box,.wrap2{ 200px; height: 200px; background-color: red; } /*h3,p,a,span{ font-size: 14px; color: #999 }*/ p{ font-size: 20px; color: red; } /*交集选择器*/ p.active{ background-color: rgb(248,115,0); } /*属性选择器*/ input[name='user']{ font-size: 20px; } input[type='password']{ font-size: 20px; } </style> </head> <body> <div id="box" class="wrap"></div> <div class="wrap2"></div> <h3>哈哈哈</h3> <p >哈哈哈1</p> <p class="active">哈哈哈2</p> <p >哈哈哈3</p> <a href="#">哈哈哈</a> <span>哈哈哈</span> <ul> <li>111</li> </ul> <input type="text" name="user" id="" class=""> <input type="password"> <!-- js --> <script type="text/javascript"> /* 1.找东西 */ var oDiv = document.getElementById('box'); // 2.事件 oDiv.onclick = function() { oDiv.style.backgroundColor = 'green'; } </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> /*后代选择器的用法*/ /*.box .list{ color: red; } .box a{ color: yellow; } /*.box .list a img 绝对选中img标签*/ /*.box img{ 200px; }*/ /*子代选择器*/ div > p{ color: yellow; background-color: red; } </style> </head> <body> <!-- <ul class="box"> <li class="list"> <a href="#"> <img src="../day45/timg.jpg" alt="adadad"> </a> </li> <li> 李四 </li> <li>王二麻</li> </ul> --> <div> <p>哈哈哈</p> <ul> <li> <p>嘿嘿嘿</p> </li> </ul> </div> </body> </html>
高级选择器分为:后代选择器、子代选择器、并集选择器、交集选择器
后代选择器
使用空格表示后代选择器。顾名思义,父元素的后代(包括儿子,孙子,重孙子)
1 .container p{ 2 color: red; 3 } 4 .container .item p{ 5 color: yellow; 6 }
子代选择器
使用>表示子代选择器。比如div>p,仅仅表示的是当前div元素选中的子代(不包含孙子....)元素p。
1 .container>p{ 2 color: yellowgreen; 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
}
/*使用此并集选择器选中页面中所有的标签,页面布局的时候会使用*/
交集选择器
使用.表示交集选择器。第一个标签必须是标签选择器,第二个标签必须是类选择器 语法:div.active
比如有一个<h4 class='active'></h4>这样的标签。
那么
1 h4{ 2 100px; 3 font-size: 14px; 4 } 5 .active{ 6 color: red; 7 text-decoration: underline; 8 } 9 /* 交集选择器 */ 10 h4.active{ 11 background: #00BFFF; 12 }
它表示两者选中之后元素共有的特性。