编程学习前端知识采集我爱编程

CSS知识点整理

2016-12-04  本文已影响370人  OnePi

写在前面:这是一篇学习CSS的笔记。重点在于罗列CSS的知识点。

CSS

㈠ CSS入门

  1. 什么是CSS?

    CSS 指层叠样式表 (Cascading Style Sheets)

  2. 作用:
    定义如何显示 HTML 元素,修改和美化网页!

  3. CSS的书写形式:内联样式、内部样式表、外链样式表

    样式表的优先级:

    一般,所有的样式会根据下面的规则层叠于一个新的虚拟样式表中,其中数字 4 拥有最高的优先权。

    • 1.浏览器缺省设置
    • 2.外链样式表
    • 3.内部样式表(位于 <head> 标签内部)
    • 4.内联样式(在 HTML 元素内部)

    因此,内联样式(在 HTML 元素内部)拥有最高的优先权。

4.1 外部加载的形式(最常用)
      //新建css文件:style.css
    <link rel="stylesheet" type="text/css" href="style.css" />

4.2 头部形式(写在HTML头部区域) 
    <style type="text/css">
        //CSS样式语法
        p{color: blue; text-align: center;}
        h1{color: #999999; font-size: 12px}
    </style>

4.3 内联形式(写在HTML标签中) 
     style="color: blue; text-align: center;"

e.g.
<!DOCTYPE html>
<html>
<head>
    <title></title>

    <link rel="stylesheet" type="text/css" href="style.css" /> //第一种:外部文件加载

    <style type="text/css">   //第二种:写在头部文件
        //CSS样式语法
        p{color: blue; text-align: center;}
        h1{color: #999999; font-size: 12px}
    </style>
</head>
<body>
    <p>头部CSS样式</p>

    <p style="color: blue; text-align: center;">内联CSS样式</p>  //第三种:内联方式 style属性

    <h1>我是标题</h1>

</body>
</html>

㈡ CSS语法

CSS的语法结构:
选择器{属性:值; 属性:值; 属性:值; …}

CSS 基础语法

1. CSS选择器

常用的9个选择器!

1. 通配选择器

   <style type="text/css">
        *{color: red;}
   </style>


2. 标签选择器
//直接用标签名
   <style type="text/css">
        h1{width: 200px; height: 300px;border: 1px solid red;text-align: center;}
   </style>


3. id选择器
类似于类选择,但具有唯一性!
   <style type="text/css">
        //先给标签起一个名字:id="tag_01"
        #tag_01{color: red;border: 1px solid red;width: 100px;height: 200px;}
   </style>

</head> 
<body> 
   <p id="tag_01"></p>
</body> 


4. 类选择器(最常用)
<head> 
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
   <title>制作我的第一个网页</title> 

   <style type="text/css">
     //先给标签起一个名字:class =“tag01”
        .tag01{color: red;border: 1px solid red;width: 100px;height: 200px;}
        .tag02{list-style-type: none;}
      
     //结合标签选择器
        li.tag01 {color:red;}
   </style>

</head> 
<body> 
   <p class="tag01"></p>  //先给标签起一个名字:class =“tag01”
   <ul>
    <li class="tag01 tag02"></li>
    <li class="tag01 tag02"></li>
   </ul>
</body> 

注意:tag命名规则:必须以字母开头,字母数字下划线组成!



5. 属性选择器

   <style type="text/css">
    <!--属性-->
        [title]{border: 1px solid red;width: 200px;height: 20px;}
    <!--指定标签的属性-->
         img[title][id]{color: cyan;}
    <!--指定限定条件的标签的属性-->
         img[title][id="tag_01"]{color: cyan;}           
   </style>

</head> 
<body> 
    <img src="" title="image01" id="tag_01" />
    <img src="" title="image02" class="tag01" />
    <p>我是段落</p>
</body> 


<= === ===== ======= ==========>

6. 后代选择器<也很常用>

   <style type="text/css">
        <!--嵌套标签呈现后代关系-->
        table tr th a{text-decoration: none;color: red;font-size: 5cm;} 
        table a{text-decoration: none;color: red;font-size: 5cm;} //也可以跳跃代数
   </style>

</head> 
<body> 
    <table>
        <tr> <!--嵌套标签呈现后代关系-->
            <th></th>
                <a href="">删除下划线</a>
            <td></td>
        </tr>
    </table>
</body> 


7. 子代选择器

   <style type="text/css">
        tr > td{color: red;background-color: yellow;}
   </style>

</head> 
<body> 
    <table>
        <tr> 
            <td>子代选择器</td>
        </tr>
    </table>
</body> 

注意:只能两代。


8. 相邻兄弟选择器

   <style type="text/css">
       td + td{color: red;}   
   <!--限制范围-->
       .tag01 + .tag02{color: green;}
   </style>

</head> 
<body> 
    <table>
        <tr>
            <td>我是TD1</td> 
            <td>我是TD2</td> <!--被修改的相邻兄弟-->
            <td>我是TD5</td> <!--被修改的相邻兄弟-->
        </tr>
        <tr>
            <td>我是TD3</td>
            <td>我是TD4</td>
            <td>我是TD6</td> <!--被修改的相邻兄弟-->
        </tr>
        <tr>
            <td class="tag01">我是TD3</td>
            <td class="tag02">我是TD4</td> <!--被修改的相邻兄弟-->
            <td>我是TD6</td> 
        </tr>
    </table>
</body> 


9. 群组选择器

   <style type="text/css">
        //用逗号隔开
        li,td,.tag01,#tag_01{color: red;font-size: 12px;}
   </style>

CSS中的伪类

伪类的语法: selector : pseudo-class {property: value}
CSS 类与伪类搭配使用: selector.class : pseudo-class {property: value}

//超链接<a></a>的伪类
a:link{}    /* 没有访问链接的表现样式*/
a:visited{} /* 已经访问链接的表现样式*/
a:hover{}   /* 鼠标悬停链接时的表现的样式*/
a:active{}  /* 鼠标点击链接时的表现的样式*/

注意:必须按顺序写!
<head> 
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
   <title>CSS中的伪类</title> 

   <style type="text/css">
        a:link{color: red;} /* 点击之前表现的样式*/
        a:visited{color: #999999;} /* 点击之后表现的样式*/
        a:hover{color: green; text-decoration: none;} /* 鼠标悬停的表现的样式*/
        a:active{color: yellow;} /* 鼠标点击时的表现的样式*/
   </style>
</head> 
<body> 
    <a href="http://www.163.com">进入网页首页</a>
</body> 
</html>

2. CSS常用属性

详细属性:参考链接:http://wenku.baidu.com/view/f51f5d3710661ed9ad51f336.html

⑴ 样式属性

//CSS描述长度的单位:
cm 厘米
mm 毫米
em 当前字体m字母的宽度(代指一个字母的宽度)
ex 当前字体x字母的宽度(代指一个字母的宽度)

in 英寸,1in = 2.54cm 
pt 点,1pt = 1/72in
pc 皮卡,1pc = 12pt
px 像素

百分比(%)  相对值


//CSS中颜色表示方法:
英文单词:red blue ...
十六进制:#999 #FFF  #rrgggbb
RGB格式:rgb(x,y,z) 范围0~255之间整数
         rgb(x%,y%,z%)  范围0~100之间的整数




//字体设置
*{
font-family: "Arial","宋体","黑体","楷体"; //浏览器会依次查找字体是否安装
font-size: 30pt; //5种表示方式:长度值:30pt;相对默认的百分比:200%;绝对大小:large;相对上一元素:larger;增大值:+5pt
font-weight: normal; //值是100~900之间整百数:normal(400):正常;blod(700):粗体;border:比上一级增加100;lighter:比上一级减少100
font-style: italic; //italic斜体;oblique:倾斜; normal正常
font-variant: normal; //normal正常;small-caps:小写字母都变成小型的大写字母
}


//文本设置
*{
    text-decoration: underline,blink; //(underline:下划线;overline:上划线;line-through:删除线;blink:闪烁;none:无);
    text-align: left,center; //水平对齐:(left | right | center | justify(两边对齐))
    vertical-align: middle; //垂直对齐:(baseline | sub | super | top | text-top | middle | bottom | text-bottom | 百分比)
    text-indent: 20pt;  //首行缩进:(20pt | 100%)
    text-transform: uppercase; //文本转换:(none | capitalize:首字母大写 | uppercase 字母大写 | lowercase 字母小写;
}


//文字布局:字间距&行间距
*{
    letter-spacing: normal; //字符间距:15px
    word-spacing: 15px; //字间距
    line-height: 20pt;  //行高&行间距:20pt | 120% | 2.0
}


//前景色
*{
    color: blue; //前景色:(red | #0000FF | rgb(0,0,255) | rgb(0,0,100%) )
}


//背景色
*{
    background-color: red; //背景色:(red | #0000FF | rgb(0,0,255) | rgb(0,0,100%) )
    background-image: url(images/abc.jpg); 
    background-attachment: scroll; //图像的滚动方式:(scroll:滚动 | fixed:固定);
    background-repeat: repeat; //设置图片重复方式(repeat | no-repeat | repeat-x | repeat-y)
    background-position: left center; //设置图片摆放位置

    background: red url(images/abc.png) repeat-y; //一次设置,必须按照顺序
}
  
  

//列表属性
*{
    list-style-type: disc; //(none | disc 实心黑点 | circle 空心圆点 | square 黑方块 | decimal 十进制123 | lower-roman 小写罗马数字 | upper-roman 大写罗马 | lower-alpha 小写字母 | upper-alpha 大写字母)
    list-style-image: url(); //设置图片为项目符号
    list-style-position: inside; //设置项目符号的位置(outside | inside)

    //一次性设置
    list-style: url() disc outside; //不限顺序,image优先于type
}

⑵ 盒子模型

盒子模型:

盒子模型 盒子模型
//边框
*{
    border-color: red yellow blue green; //可以接受1~4个值:(1个值:四个边框同色,2个值:上下 左右;3个值:上 左右 下;4个值:上 右 下 左);
    border-top-color:red;
    border-right-color:red;
    border-bottom-color: red;
    border-left-color:red;

    border-width: 1pt thin 100%; //宽度:可以接受1~4个长度值,还可以接受3个关键词(thin | medium | thick)
    border-top-width: thick;
    border-right-width: 20pt;
    border-bottom-width: 100%;
    border-left-width: medium;

    border-style: none; //边框样式:(none: 无边框 | dotted:小点 | dashed 虚线 | solid 实线 | double 双线 | groove 四进线 | ridge 凸线 | inset 元素内凹 | outset 元素外凹)
    border-top-style: solid;
    border-right-style: dashed;
    border-bottom-style: double;
    border-left-style:none;


    //缩略设置方式:顺序不限;
    border: solid 15px red;
    border-top: 5pt red dashed;
    border-left: dashed red red;
    border-bottom: inset green;
    border-left: dashed;
}


//外边距margin
*{
    margin: 1pt auto 200% auto;//接受1~4长度值和百分数 和 auto 
    margin-top: auto;
    margin-right: 20pt;
    margin-bottom: 20%;
    margin-right: auto auto;
}


//内边距padding
*{
    padding: 3pt; ////接受1~4长度值和百分数
    padding-top: 200%;
    padding-right: 3pt 4pt;
    padding-bottom: 3pt 3pt 5pt;
    padding-left:3pt 3pt 5pt 6pt;
}

⑶ 定位和浮动

内联元素与块级元素

//内联元素与块级元素

区别:块级元素独占一行;可以设置行高,内外边距等;
     内联元素只显示在一行!只能设置左右,不能设置宽高和上下内外边距!

块级元素:
<body></body>
<div></div>
<h1></h1>...<h6></h6>
<ol></ol>
<ul></ul>
<li></li>
<p></p>
<table></table>
<tr></tr>
<td></td>


内联元素:
<a href=""></a>
<i></i>
<u></u>
<b></b>
<span></span>  //文本标签
<font></font>

相对定位与绝对定位

1. 相对定位

相对于自己原来的位置发生改变,并且保留原有的位置空间。

   <style type="text/css">
        .div01{border: 1px solid red;width: 200px;height: 100px;}
        .div02{border: 3px dashed cyan;width: 200px;height: 100px;
            position: relative; /*相对定位*/
            top: -30px;
            left: 50px;}
   </style>



2. 绝对定位

相对于拥有position属性的父级元素的位置发生改变(如果父级元素没有position属性,就会查找父级的父级,直到body),并释放原有的位置空间!

   <style type="text/css">
        .div01{border: 1px solid red;width: 200px;height: 100px;}
        .div02{border: 3px dashed cyan;width: 200px;height: 100px;
            position: absolute; /*绝对定位*/
            top: 30px;
            left: 50px;}
        .div03{border: 1px solid green;width: 200px;height: 100px;}
   </style>



普通流定位:默认定位:
   块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
   行内框在一行中水平布置,可以使用水平内边距、边框和外边距调整它们的间距

CSS 定位属性
position    设置定位方式
top     定义了定位元素上外边距边界与其包含块上边界之间的偏移。
right   定义了定位元素右外边距边界与其包含块右边界之间的偏移。
bottom  定义了定位元素下外边距边界与其包含块下边界之间的偏移。
left    定义了定位元素左外边距边界与其包含块左边界之间的偏移。

overflow  设置当元素的内容溢出其区域时发生的事情。
z-index   设置元素的堆叠顺序。


//定位
*{
    position: relative; //设置定位方式:(static 常规 | relative 相对定位 | absolute 绝对定位)

    //元素上下左右的位置
    top: 10%;
    right: 2pt;
    bottom: 200%;
    left: 45pt;

    //元素所占空间
    width: 20%;
    height: 30pt;
}


//z-index(Z轴位置)
*{
    z-index: -1; //大于-1的自然数:-1最底层 值越大越靠近浏览者
}


//溢出
*{
    overflow: scroll; //内容大于元素指定空间产生溢出:(visible 溢出可见 | hidden 溢出隐藏 | scroll 滚动显示 | auto 自动判断)
}

浮动

浮动效果:使竖列的盒子可以横向排版。
         浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。

属性:float

//浮动
*{
    float: left; //元素浮动到页面的左边缘或右边缘:(left | right | none)
    clear: both; //元素旁边是否允许其他元素浮动:(left | right | both | none)
}





浮动的负效果:导致父级元素无法撑开。

清除负效果:(三种方法)

1.添加空盒子:

   <style type="text/css">
        .box{border: 1px solid red;}
        .box01{border: 3px dashed cyan;width: 150px;height: 100px;float: left;}
        .box02{border: 2px solid blue;width: 200px;height: 100px;float: left;}
        .clear{clear:both;} <!--空盒子类-->
   </style>

</head> 
<body> 
    <div class="box">
        <div class="box01"> 我是二个盒子!</div>
        <div class="box02"> 我是三个盒子!</div>
        <div class="clear"></div>  <!--添加空盒子:在被浮动元素的后面(同级元素)添加一个空盒子,并且定义一个clear类-->
    </div>
</body> 

优点:便捷 代码量少
缺点:增加很多空盒子


2..clear{display: block;overflow: hidden;}

   <style type="text/css">
        .box{border: 1px solid red;}
        .box01{border: 3px dashed cyan;width: 150px;height: 100px;float: left;}
        .box02{border: 2px solid blue;width: 200px;height: 100px;float: left;}
        .clear{display: block;overflow: hidden;}
   </style>

</head> 
<body> 
    <div class="box clear"> <!--定义一个clear类,赋给浮动元素的父级元素-->
        <div class="box01"> 我是二个盒子!</div>
        <div class="box02"> 我是三个盒子!</div>
    </div>
</body> 


3. 最流行 最常用 兼容所有浏览器
缺点:代码量多

   <style type="text/css">
        .box{border: 1px solid red;}
        .box01{border: 3px dashed cyan;width: 150px;height: 100px;float: left;}
        .box02{border: 2px solid blue;width: 200px;height: 100px;float: left;}
        .clear.after{display: block;clear: both;content: "." visibility: hidden;height: 0}
        .clear{zoom:"1";}
   </style>

</head> 
<body> 
    <div class="box clear"> <!--定义一个clear类,赋给浮动元素的父级元素-->
        <div class="box01"> 我是二个盒子!</div>
        <div class="box02"> 我是三个盒子!</div>
    </div>
</body> 

⑷ 其他

//鼠标的属性
*{
    cursor: auto; //设置鼠标形状:(auto | hand 手型 | text 文本I型 | ....)
}

上一篇下一篇

猜你喜欢

热点阅读