CSS基础(一)

一、CSS介绍:
互联网前端分三层:
HTML:超文本标记语言。从语义的角度描述页面结构;
CSS:层叠样式表。从审美的角度负责页面的样式;
JS:JavaScript。从交互的角度描述页面行为;
HTML的缺陷:
- 不能适应多种设备
- 要求浏览器必须智能化足够大
- 数据与显示没有分开
- 功能不够强大
CSS优点:
- 使数据和显示分开
- 降低网络流量
- 使整个网站视觉效果一致
- 使开发效率提高(耦合性降低,html和css能够分开写)
引入方式:
1. 行内样式:
<!--行内样式-->
<div>
    <p style="color: red;">这是 一个行内样式</p>
</div>
2. 内接样式:
<style type="text/css">
    <!--内接样式css代码-->
    span{
        color: yellow;
    }
</style>
3. 外接样式-链接式:
<!--外接样式-链接式-->
<link rel="stylesheet" href="./index.css">
4. 外接样式-导入式:
<style type="text/css">
    @import url('./index.css');
</style>
二、CSS基本选择器
1. 标签选择器
标签选择器选中的是所有的标签元素,如:div、ul、p等,不管标签藏得有多深都能选中,并且是所有,而非某一个,所以说是“共性”不是特性。
body{
    color:gray;
    font-size: 12px;
}
/*标签选择器*/
p{
    color: red;
font-size: 20px;
}
span{
    color: yellow;
}
2. id选择器
同一个页面中id不能重复,并且任何的标签都可以设置id;
id命名规范为:要以字母开头,可以有数字,下划线区分大小写。
/*id选择器*/
#box{
    background:green;
}           
#s1{
    color: red;
}
#s2{
    font-size: 30px;
}
3. 类选择器
即class:同id相似,但是相同的类名不是唯一的,可以重复多次出现,属于归类的概念。同一个标签可以携带多个类名,之间用空格分割;
类的使用能够决定css水平的高低,“公共类”也是一个重要的概念。
.lv{
     color: green;
 }
 .big{
     font-size: 40px;
 }
 .line{
    text-decoration: underline;
 }
<body>
<!-- 公共类    共有的属性 -->
 <div>
     <p class="lv big">段落1</p>
     <p class="lv line">段落2</p>
     <p class="line big">段落3</p>
 </div>
</body>
总结:
- 不要试图用一个类将我们的页面写完。这个标签要携带多个类,共同设置样式
- 每个类要尽可能的小。有公共概念,能够不让更多的标签使用
- id和class的选择:
尽可能的用class。除非一些特殊情况可以使用id,因为id一般是用在js上的。通常js通过id来获取到标签。
三、高级选择器
1. 后代选择器
使用空格表示后代选择器。父元素的后代包括:儿子、孙子等
.container p{
    color: red;        
}
.container .item p{
    color: yellow;
}
2. 子代选择器
使用 > 表示子代选择器。例如:div>p,仅仅表示的是当前div元素选中的子代(不包括孙代)元素p
.container>p{
     color: yellowgreen;
}
3. 并集选择器:
多个选择器之间使用逗号隔开。表示选中的页面中的多个标签,一些共性的元素可以使用并集选择器
 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
/*比如有一个<h4 class='active'></h4>这样的标签*/
h4{
    width: 100px;
    font-size: 14px;
}
.active{
    color: red;
    text-decoration: underline;
}
/* 交集选择器 */
h4.active{
    background: #00BFFF;
}
5. 属性选择器:
根据标签中的属性选中当前的标签
/*根据属性查找*/
[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;
}
6. 伪类选择器:
CSS为一些特殊效果准备了特定的工具,我们称之为“伪类”。伪类选择器一般会用在超链接a标签中。使用a标签的伪类选择器我们需要遵循 ——
“爱恨准则”:
a:link,定义正常链接的样式;
a:visited,定义已访问过链接的样式;
a:hover,定义鼠标悬浮在链接上时的样式;
a:active,定义鼠标点击链接时的样式。
/*没有被访问的a标签的样式*/
.box ul li.item1 a:link{
    
    color: #666;
}
/*访问过后的a标签的样式*/
.box ul li.item2 a:visited{
    
    color: yellow;
}
/*鼠标悬停时a标签的样式*/
.box ul li.item3 a:hover{
    
    color: green;
}
/*鼠标摁住的时候a标签的样式*/
.box ul li.item4 a:active{
    
    color: yellowgreen;
}
7. nth-child():
为css3中的选择器
/*选中第一个元素*/
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;
}
8. 伪元素选择器:
存在于代码中,但是不存在与内存中
/*设置第一个首字母的样式*/
p:first-letter{
    color: red;
    font-size: 30px;
}
/* 在....之前添加内容  这个属性使用不是很频繁 了解  使用此伪元素选择器一定要结合content属性*/
p:before{
    content:'alex';
}
/*在....之后添加内容,使用非常频繁 通常与咱们后面要讲到布局 有很大的关联(清除浮动)*/
p:after{
    content:'&';
    color: red;
    font-size: 40px;
}
/*清除浮动*/
.clearfix:after{
    content: '.';
    clear: both;
    display: block;
    visibility: hidden;
    height: 0;
}
posted @ 2018-09-25 19:05  久末丶  阅读(153)  评论(0编辑  收藏  举报