一 CSS介绍

  层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(超文本标记语言)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

  CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,CSS也称为级联样式表。

二 CSS语法

1.CSS实例与注释

  1.1 注释乃代码之母

  1. /*单行注释*/
  2.  
  3. /*
  4. 这是多行注释
  5. 这是多行注释
  6. */

  1.2 CSS实例

  选择器 {属性:属性值;属性:属性值;属性:属性值;}

  1. /*举个例子,比如将html中div标签的字体样式都设置为红色、24像素大小且加粗*/
  2. div {
  3. color: red;
  4. font-size: 24px;
  5. font-weight: bold;
  6. }

  1.3 引入CSS的三种方式

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>引入CSS的三种方式</title>
  6. <!--第一种:直接style里写css代码,不推荐使用该方式-->
  7. <style>
  8. div {
  9. color: red;
  10. }
  11. </style>
  12. <!--第二种:link标签引入css样式,推荐使用该方式-->
  13. <link rel="stylesheet" href="mycss.css">
  14. </head>
  15. <body>
  16. <!--第三种:直接在标签内写style属性-->
  17. <div style="color:red;">this is test</div>
  18. </body>
  19. </html>

2. CSS选择器

  要修改样式,就需要先找到要被修改的对象,这就需要用到选择器。

  选择器优先级:

  行内样式 > id选择器 > 类选择器 > 标签选择器

  2.1 基本选择器

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>基本选择器</title>
  6. <!--
  7. 基本选择器有四种:标签选择器、id选择器、类选择器及通用选择器
  8. -->
  9. <style>
  10. /*一:标签选择器*/
  11. div {
  12. color: red;
  13. }
  14.  
  15. /*二:id选择器,#开头表示id*/
  16. #d1 {
  17. color: red;
  18. }
  19.  
  20. /*三:类选择器,.开头表示类*/
  21. .c2 {
  22. color: red;
  23. }
  24.  
  25. /*四:通用选择器,对所有标签的样式起效,一般不会用*/
  26. * {
  27. color: red;
  28. }
  29. </style>
  30. </head>
  31. <body>
  32. <div id="d1" class="c1">div1</div>
  33. <div id="d2" class="c2">div2</div>
  34. <div id="d3" class="c3">div3</div>
  35. <div id="d4" class="c4">div4</div>
  36. <p id="d5" class="c5">p1</p>
  37. </body>
  38. </html>

四种基本选择器

  2.2 组合选择器

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>组合选择器</title>
  6. <style>
  7. /*组合选择器分为四种:后代选择器、儿子选择器、毗邻选择器、弟弟选择器*/
  8. /*后代选择器*/
  9. div span {
  10. color:red;
  11. }
  12.  
  13. /*儿子选择器*/
  14. div>span {
  15. color:red;
  16. }
  17.  
  18. /*毗邻选择器*/
  19. div+span {
  20. color:red;
  21. }
  22.  
  23. /*弟弟选择器*/
  24. div~span {
  25. color:red;
  26. }
  27. </style>
  28. </head>
  29. <body>
  30. <span>我是div上面的第一个span</span>
  31. <div>
  32. <span>我是div里面的第一个span</span>
  33. <p>我是div里面的第一个p
  34. <span>
  35. 我是p里面的span
  36. </span>
  37. </p>
  38. <span>我是div里面的第二个span</span>
  39. </div>
  40. <span>我是div下的第一个span</span>
  41. <span>我是div下的第二个span</span>
  42. </body>
  43. </html>

四种组合选择器

  2.3 属性选择器

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>属性选择器</title>
  6. <style>
  7. /*样式对所有属性为xxx的元素生效*/
  8. [xxx] {
  9. color:red;
  10. }
  11.  
  12. /*样式对所有属性为xxx且值为''的元素生效*/
  13. [xxx=''] {
  14. color:red;
  15. }
  16.  
  17. /*样式对所有属性为xxx且值为以2开头的元素生效*/
  18. [xxx^=''] {
  19. color:red;
  20. }
  21.  
  22. /*样式对所有属性为xxx且值为以2结尾的元素生效*/
  23. [xxx$=''] {
  24. color:red;
  25. }
  26.  
  27. /*样式对所有属性为xxx且值包含2的元素生效*/
  28. [xxx*=''] {
  29. color:red;
  30. }
  31.  
  32. /*样式对所有属性为xxx且值为'',并且标签为div的元素生效,这里其实是多条件选择器,标签为div并且具有属性xxx值为'',各条件的关系为and*/
  33. div[xxx=''] {
  34. color:red;
  35. }
  36. </style>
  37. </head>
  38. <body>
  39. <!--HTML所有标签都支持自定义属性,这里定义了一个属性为xxx-->
  40. <div xxx="">div1</div>
  41. <div xxx="">div2</div>
  42. <div xxx="">div3</div>
  43. <p xxx="">p1</p>
  44. </body>
  45. </html>
  46.  
  47. 属性选择器

属性选择器

  2.4 伪类选择器

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>伪类选择器</title>
  6. <style>
  7. /*a标签自带下划线,用decoration去掉会好看点*/
  8. a {
  9. text-decoration: none;
  10. }
  11. /*未访问的链接颜色设置为红色*/
  12. a:link {
  13. color: red;
  14. }
  15. /*鼠标移动到链接上时的链接的颜色设置为黄色*/
  16. a:hover {
  17. color: yellow;
  18. }
  19. /*标点击链接时链接的颜色设置为蓝色*/
  20. a:active {
  21. color: blue;
  22. }
  23. /*已访问的链接颜色设置为绿色*/
  24. a:visited {
  25. color: green;
  26. }
  27. /*input输入框获取焦点时的颜色设置为红色*/
  28. input:focus {
  29. background-color:red;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <a href="https://www.baidu.com">这是百度</a>
  35. <a href="https://www.sogo.com">这是搜狗</a>
  36. <a href="https://www.cnblogs.com/linhaifeng">博客园</a>
  37. <a href="https://hao.360.com/?a1004">点我</a>
  38. <input type="text">
  39. </body>
  40. </html>

伪类选择器

  2.5 伪元素选择器

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>伪元素选择器</title>
  6. <style>
  7. /*伪元素可以用于清除浮动带来的影响*/
  8. /*修改p标签中内容的第一个元素的样式*/
  9. p:first-letter {
  10. color:red;
  11. font-size: 24px;
  12. }
  13. /*在p标签内容前加16px大小'*'*/
  14. p:before {
  15. content: '*';
  16. font-size: 16px;
  17. }
  18. /*在p标签内容后面加24px大小的红色'?'*/
  19. p:after {
  20. content: '?';
  21. color:red;
  22. font-size: 24px;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <p>23333333</p>
  28. <p>23333333</p>
  29. <p>23333333</p>
  30. <p>23333333</p>
  31. </body>
  32. </html>

伪元素选择器

  2.6 分组与嵌套

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>分组与嵌套</title>
  6. <style>
  7. /*让div、span、p标签元素读使用同一样式*/
  8. div,p,span {
  9. color: red;
  10. }
  11. /*也可以组合选择器与基本选择器混用*/
  12. div p,span {
  13. color: red;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <div>div0</div>
  19. <p>p0</p>
  20. <span>s0</span>
  21. </body>
  22. </html>

分组与嵌套

  这里提一下CSS的继承,继承是CSS的一个主要特征,它是依赖于祖先-后代的关系的。继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于它的后代。例如一个body定义了的字体颜色值也会应用到段落的文本中。

  1. body {
  2. color: red;
  3. }

  此时页面上所有标签都会继承body的字体颜色。然而CSS继承性的权重是非常低的,是比普通元素的权重还要低的0。

  我们只要给对应的标签设置字体颜色就可覆盖掉它继承的样式。

  1. p {
  2. color: green;
  3. }

  此外,继承是CSS重要的一部分,我们甚至不用去考虑它为什么能够这样,但CSS继承也是有限制的。有一些属性不能被继承,如:border, margin, padding, background等。

3.CSS文本属性、颜色

  CSS可以给为元素设置高度(height)和宽度(width),当然是针对块级标签而言,内联标签(行内标签)的大小由内容来决定。

  3.1 文字字体

  font-family可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个。浏览器会使用它可识别的第一个值。

  1. body {
  2. font-family: "Microsoft Yahei", "微软雅黑", "Arial", sans-serif
  3. }

  3.2 文字大小

  1. /*如果设置成inherit表示继承父元素的字体大小值。*/
  2. p {
  3. font-size: 14px;
  4. }

  3.3 字重(粗细)

  font-weight用来设置字体的字重(粗细)。

  3.4 文本颜色

  颜色属性被用来设置文字的颜色。

  颜色是通过CSS最经常的指定:

  • 十六进制值 - 如: FF0000
  • 一个RGB值 - 如: RGB(255,0,0)
  • 颜色的名称 - 如:  red

还有rgba(255,0,0,0.3),第四个值为alpha, 指定了色彩的透明度/不透明度,它的范围为0.0到1.0之间(0.0为全透明,1.0为正常)。

  3.5 文字对齐

  text-align 属性规定元素中的文本的水平对齐方式。

  

  3.6 文字装饰

  text-decoration 属性用来给文字添加特殊效果。常配合a标签使用来去除a标签默认的下划线。

  

  3.7 首行缩进

  1. /*首行缩进32像素*/
  2. p {
  3. text-indent: 32px;
  4. }

4. 背景属性

  1. /*背景颜色*/
  2.   background-color: red;
  3. /*背景图片*/
  4.   background-image: url('1.jpg');
  5.  /*
  6. 背景重复
  7. repeat(默认):背景图片平铺排满整个网页
  8. repeat-x:背景图片只在水平方向上平铺
  9. repeat-y:背景图片只在垂直方向上平铺
  10. no-repeat:背景图片不平铺
  11. */
  12. background-repeat: no-repeat;
  13. /*背景位置*/
  14. background-position: left top;
  15. /*background-position: 200px 200px;*/

  支持简写:

  1. background:#336699 url('1.png') no-repeat left top;

  使用背景图片的一个常见案例就是很多网站会把很多小图标放在一张图片上,然后根据位置去显示图片。减少频繁的图片请求。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>滚动背景图示例</title>
  8. <style>
  9. * {
  10. margin: 0;
  11. }
  12. .box {
  13. width: 100%;
  14. height: 500px;
  15. background: url("http://gss0.baidu.com/94o3dSag_xI4khGko9WTAnF6hhy/zhidao/wh%3D450%2C600/sign=e9952f4a6f09c93d07a706f3aa0dd4ea/4a36acaf2edda3cc5c5bdd6409e93901213f9232.jpg") center center;
  16. background-attachment: fixed;
  17. }
  18. .d1 {
  19. height: 500px;
  20. background-color: tomato;
  21. }
  22. .d2 {
  23. height: 500px;
  24. background-color: steelblue;
  25. }
  26. .d3 {
  27. height: 500px;
  28. background-color: mediumorchid;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <div class="d1"></div>
  34. <div class="box"></div>
  35. <div class="d2"></div>
  36. <div class="d3"></div>
  37. </body>
  38. </html>

图片不动示例

5. 边框

  边框border有三个属性,border-width(边框宽度)、border-style(边框样式)、border-color(边框颜色)。

  1. #i1 {
  2. border-width: 2px;
  3. border-style: solid;
  4. border-color: red;
  5. }
  6.  
  7. /*通常简写为以下形式,且不分先后顺序*/
  8. #i1 {
  9. border: 2px solid red;
  10. }

  设置border-radius可以得到一个圆形

  1. div {
  2. height: 400px;
  3. width: 400px;
  4. /*border-color: black;*/
  5. /*border-style: solid;*/
  6. /*border-width: 3px;*/
  7. /*以上三步合并为一步*/
  8. border:3px black solid;
  9. background-color: burlywood;
  10.  
  11. /*画圆,建议写50%而不是长或宽一半的像素,
  12. 当长宽不一样时得到的是一个椭圆
  13. */
  14. border-radius: 50%;
  15. }

  边框样式

6. display属性

  用于控制HTML元素的显示效果。

  display:"none"与visibility:hidden的区别:

  visibility:hidden: 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。

  display:none: 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。

三. CSS盒子模型

  • margin: 用于控制元素与元素之间的距离;margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。
  • padding: 用于控制内容与边框之间的距离;
  • Border(边框): 围绕在内边距和内容外的边框。
  • Content(内容): 盒子的内容,显示文本和图像。

  如果把一个元素比喻成一个盒子的话,margin就是一个盒子与另一个盒子之间的距离;border是盒子的厚度;content是装在盒子里的东西;padding就是盒子与装在它里面的东西的间隙大小。

  1. margin和padding

  1. /*padding的话只需把margin改成padding即可*/
    .margin-test {
  2. margin-top:5px;
  3. margin-right:10px;
  4. margin-bottom:15px;
  5. margin-left:20px;
  6. }
  7.  
  8. /*以上可以简写为以下形式,padding也是*/
  9. .margin-test {
  10. margin: 5px 10px 15px 20px;
  11. }

  margin和padding的简写根据参数个数不同有以下四种情况:

  1. 一个参数:用于四边
  2. 两个参数:第一个用于上下,第二个用于左右
  3. 三个参数:第一个用于上,第二个用于左右,第三个用于下
  4. 四个参数:按上右下左的顺序作用于四边(即顺时针)

  注意:两个参数时可以实现居中

  1. /*
  2. 第一个参数0作用于上下,第二个参数auto作用于左右
  3. 而且auto用在上和下时没有意义,因为auto居中只能实现水平方向的居中
  4. */
  5. .mycenter {
  6. margin: 0 auto;
  7. }

四. 浮动

  在CSS中,任何元素都可以浮动。不论本身是何种元素,只要浮动了就会生成一个块级框。

  CSS中存在X轴和Y轴,浮动相当于元素在Z轴的方向上变高了(抽象来说,就是离用户更近了,贞子从电视里爬出来,爬的就是Z轴,怕不怕)。

  关于浮动的两个特点:

  • 浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
  • 由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。
  1. .c1 {
  2. width: 100px;
  3. height: 100px;
  4. background-color: burlywood;
  5. /*left向左浮动,right向右浮动,none默认值不浮动*/
  6. loat:left;
  7. }

  浮动常用于页面的布局,而浮动带来的影响就是会造成父标签的塌陷(如果说父标签是一个气球,浮动相当于里面的气都浮出去了,然后带来的结果就是气球扁了。)

1.  清除浮动带来的影响

  这里要用到clear属性,它规定元素的哪一侧不能有其他浮动元素。

  注意:clear属性只会对自身起作用,而不会影响其他元素。

   清除浮动的方式:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>浮动清除方式一</title>
  6. <style>
  7. /*浏览器自带8像素的margin,这里将其去除以更好展示浮动效果*/
  8. body {
  9. margin:0;
  10. }
  11. .c1 {
  12. width: 100px;
  13. height: 100px;
  14. background-color: burlywood;
  15. float:left;
  16. }
  17. .c2 {
  18. width: 100px;
  19. height: 100px;
  20. background-color: blue;
  21. float:left;
  22. }
  23. .c3 {
  24. border: 3px solid black;
  25. }
  26.  
  27. /*定义一个与浮动元素等宽的元素来撑起父标签*/
  28. .c4 {
  29. width: 100px;
  30. height: 100px;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <div class="c3">
  36. <div class="c1"></div>
  37. <div class="c2"></div>
  38. <div class="c4"></div>
  39. </div>
  40. </body>
  41. </html>

清除浮动的方式一:定义一个未浮动的元素将父标签空间撑着

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>浮动</title>
  6. <style>
  7. body {
  8. margin:0;
  9. }
  10. .c1 {
  11. width: 100px;
  12. height: 100px;
  13. background-color: burlywood;
  14. float:left;
  15. }
  16. .c2 {
  17. width: 100px;
  18. height: 100px;
  19. background-color: blue;
  20. float:left;
  21. }
  22. .c3 {
  23. border: 3px solid black;
  24. }
  25. /*clearfix是约定俗成的用来清除浮动带来的影响的类的名字
  26. 运用伪元素来撑起空间,推荐该方式
  27. */
  28. .clearfix:after {
  29. content: '';
  30. display:block;
  31. clear:both;
  32. }
  33. </style>
  34. </head>
  35. <body>
  36. <div class="c3 clearfix">
  37. <div class="c1"></div>
  38. <div class="c2"></div>
  39. </div>
  40. </body>
  41. </html>

伪元素清除法(清除浮动大多用该方式)

五. 溢出

  当一个元素长宽设置好时,如果里面的元素比它大,就会造成溢出效果。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>溢出</title>
  6. <style>
  7. /*定义一个长宽均为50像素的元素*/
  8. .c2 {
  9. height: 50px;
  10. width: 50px;
  11. border:3px solid white;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <div class="c2">
  17. <!--随便输一些内容-->
  18. nioasf;awejfafuahefefnaius
  19. hdfsandjfhauirgha;ndfj;kanfdja
  20. </div>
  21. </body>
  22. </html>

溢出演示代码

  可以通过overflow属性来设置对溢出的处理

  1. .c2 {
  2. height: 50px;
  3. width: 50px;
  4. border:3px solid white;
  5. overflow:hidden;
           /*具体overflow参数见下图*/
  6. }

   可以运用溢出的处理以及border-radius画圆来实现圆形头像。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>溢出</title>
  6. <style>
  7. body {
  8. background-color: darkgray;
  9. }
  10. .c1 {
  11. height: 150px;
  12. width: 150px;
  13. border:3px solid white;
  14. border-radius: 50%;
  15. overflow:hidden;
  16. }
  17. img {
  18. width: 100%;
  19. }
  20.  
  21. </style>
  22. </head>
  23. <body>
  24. <div class="c1">
  25. <!--这里src给一张图片的URL即可-->
  26. <img src="1.jpg" alt="">
  27. </div>
  28. </body>
  29. </html>

圆形头像实现

六. 定位

  static

  static 默认值,无定位,不能当作绝对定位的参照物,并且设置标签对象的left、top等值是不起作用的的。

  relative(相对定位)

  相对定位是相对于该元素在文档流中的原始位置,即以自己原始位置为参照物。有趣的是,即使设定了元素的相对定位以及偏移值,元素还占有着原来的位置,即占据文档流空间。对象遵循正常文档流,但将依据top,right,bottom,left等属性在正常文档流中偏移位置。而其层叠通过z-index属性定义。

  注意:position:relative的一个主要用法:方便绝对定位元素找到参照物。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>相对定位</title>
  6. <style>
  7. body {
  8. margin: 0;
  9. }
  10. .c1 {
  11. height: 100px;
  12. width: 100px;
  13. background: red;
  14. position:relative;
  15. top: 100px;
  16. left: 100px;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <div class="c1"></div>
  22. </body>
  23. </html>

相对定位示例

  absolute(绝对定位)

  定义:设置为绝对定位的元素框从文档流完全删除,并相对于最近的已定位祖先元素定位,如果元素没有已定位的祖先元素,那么它的位置相对于最初的包含块(即body元素)。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中生成何种类型的框。

  重点:如果父级设置了position属性,例如position:relative;,那么子元素就会以父级的左上角为原始点进行定位。这样能很好的解决自适应网站的标签偏离问题,即父级为自适应的,那我子元素就设置position:absolute;父元素设置position:relative;,然后Top、Right、Bottom、Left用百分比宽度表示。

  另外,对象脱离正常文档流,使用top,right,bottom,left等属性进行绝对定位。而其层叠通过z-index属性定义。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>绝对定位</title>
  6. <style>
  7. .c1 {
  8. width:100px;
  9. height:100px;
  10. background-color: red;
  11. position:relative;
  12. }
  13. .c2 {
  14. width:100px;
  15. height:100px;
  16. background-color: blue;
  17. position:absolute;
  18. top:100px;
  19. left:100px;
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <div class="c1">
  25. <div class="c2"></div>
  26. </div>
  27. </body>
  28. </html>

绝对定位示例

  fixed(固定)

  fixed:对象脱离正常文档流,使用top,right,bottom,left等属性以窗口为参考点进行定位,当出现滚动条时,对象不会随着滚动。而其层叠通过z-index属性 定义。 注意点: 一个元素若设置了 position:absolute | fixed; 则该元素就不能设置float。这 是一个常识性的知识点,因为这是两个不同的流,一个是浮动流,另一个是“定位流”。但是 relative 却可以。因为它原本所占的空间仍然占据文档流。

  在理论上,被设置为fixed的元素会被定位于浏览器窗口的一个指定坐标,不论窗口是否滚动,它都会固定在这个位置。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="x-ua-compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <title>返回顶部示例</title>
  8. <style>
  9. * {
  10. margin: 0;
  11. }
  12.  
  13. .d1 {
  14. height: 1000px;
  15. background-color: #eeee;
  16. }
  17.  
  18. .scrollTop {
  19. background-color: darkgrey;
  20. padding: 10px;
  21. text-align: center;
  22. position: fixed;
  23. right: 10px;
  24. bottom: 20px;
  25. }
  26. </style>
  27. </head>
  28. <body>
  29. <div class="d1">111</div>
  30. <div class="scrollTop">返回顶部</div>
  31. </body>
  32. </html>

固定定位示例

  是否脱离文档流

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <style>
  8. .c1 {
  9. height: 50px;
  10. width: 100px;
  11. background-color: dodgerblue;
  12. }
  13. .c2 {
  14. height: 100px;
  15. width: 50px;
  16. background-color: orange;
  17. position: relative;
  18. left: 100px;
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <div class="c1"></div>
  24. <div class="c2"></div>
  25. <div style="height: 100px;width: 200px;background-color: black"></div>
  26. </body>
  27. </html>

相对定位

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <style>
  8. .c1 {
  9. height: 50px;
  10. width: 100px;
  11. background-color: red;
  12. position: relative;
  13. }
  14. .c2 {
  15. height: 50px;
  16. width: 200px;
  17. background-color: green;
  18. position: absolute;
  19. left: 50px;
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <div class="c1">购物车
  25. <div class="c2">空空如也~</div>
  26. <div style="height: 50px;width: 100px;background-color: deeppink"></div>
  27. </div>
  28.  
  29. </body>
  30. </html>

绝对定位

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. </head>
  8. <body>
  9. <div class="c1" style="height: 50px;width: 500px;background-color: black"></div>
  10. <div class="c2" style="height: 50px;width: 100px;background-color: deeppink;position: fixed;right: 10px;bottom: 20px"></div>
  11. <div class="c3" style="height: 10px;width: 100px;background-color: green"></div>
  12.  
  13. </body>
  14. </html>

固定定位

上述例子可知:

脱离文档流:

  绝对定位

  固定定位

不脱离文档流:

  相对定位

七. z-index

  1. #i2 {
  2. z-index:;
  3. }

设置对象的层叠顺序。

  1. z-index 值表示谁压着谁,数值大的压盖住数值小的,
  2. 只有定位了的元素,才能有z-index,也就是说,不管相对定位,绝对定位,固定定位,都可以使用z-index,而浮动元素不能使用z-index
  3. z-index值没有单位,就是一个正整数,默认的z-index值为0如果大家都没有z-index值,或者z-index值一样,那么谁写在HTML后面,谁在上面压着别人,定位了元素,永远压住没有定位的元素。
  4. 从父现象:父亲怂了,儿子再牛逼也没用
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="x-ua-compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1">
  7. <title>自定义模态框</title>
  8. <style>
  9. .cover {
  10. background-color: rgba(0,0,0,0.65);
  11. position: fixed;
  12. top: 0;
  13. right: 0;
  14. bottom: 0;
  15. left: 0;
  16. z-index: 998;
  17. }
  18.  
  19. .modal {
  20. background-color: white;
  21. position: fixed;
  22. width: 600px;
  23. height: 400px;
  24. left: 50%;
  25. top: 50%;
  26. margin: -200px 0 0 -300px;
  27. z-index: 1000;
  28. }
  29. </style>
  30. </head>
  31. <body>
  32.  
  33. <div class="cover"></div>
  34. <div class="modal"></div>
  35. </body>
  36. </html>

自定义模态框示例

八. opacity

  用来定义透明效果。取值范围是0~1,0是完全透明,1是完全不透明。

九. 模拟一个简单的博客页面

  HTML和CSS代码分开写是一个规范,而且一般是先HTML将页面骨架搭建好,然后再去写CSS来增加样式,最重要的事要多写注释!!!

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>cnblog</title>
  6. <link rel="stylesheet" href="blog.css">
  7. </head>
  8. <body>
  9. <!--博客左侧开始-->
  10. <div class="blog-left">
  11. <!--头像开始-->
  12. <div class="left-avatar">
  13. <img src="1.jpg" alt="">
  14. </div>
  15. <!--头像结束-->
  16. <div class="left_name">不愿透露姓名的博客</div>
  17. <div class="left-signature">这个人很懒,什么都没写</div>
  18. <!--个人信息开始-->
  19. <div class="left-info">
  20. <ul>
  21. <li>关于我</li>
  22. <li>微博</li>
  23. <li>微信公众号</li>
  24. </ul>
  25. </div>
  26. <!--个人信息结束-->
  27. <!--语言举例开始-->
  28. <div class="left-lang">
  29. <ul>
  30. <li>#python</li>
  31. <li>#java</li>
  32. <li>#golang</li>
  33. </ul>
  34. </div>
  35. <!--语言举例结束-->
  36. </div>
  37. <!--博客左侧结束-->
  38. <!--博客右侧开始-->
  39. <div class="blog-right">
  40. <div class="right-article">
  41. <!--文章标题-->
  42. <div class="title">
  43. <span class="tag">无题</span>
  44. <span class="date">2019-5-30</span>
  45. </div>
  46. <!--文章内容-->
  47. <div class="content">两只黄鹂鸣翠柳,一行白鹭上青天</div>
  48. <!--文章底部-->
  49. <div class="article-bottom">
  50. <span>#python</span><span>#javascript</span>
  51. </div>
  52. </div>
  53. <div class="right-article">
  54. <!--文章标题-->
  55. <div class="title">
  56. <span class="tag">无题</span>
  57. <span class="date">2019-5-30</span>
  58. </div>
  59. <!--文章内容-->
  60. <div class="content">两只黄鹂鸣翠柳,一行白鹭上青天</div>
  61. <!--文章底部-->
  62. <div class="article-bottom">
  63. <span>#python</span><span>#javascript</span>
  64. </div>
  65. </div>
  66. <div class="right-article">
  67. <!--文章标题-->
  68. <div class="title">
  69. <span class="tag">无题</span>
  70. <span class="date">2019-5-30</span>
  71. </div>
  72. <!--文章内容-->
  73. <div class="content">两只黄鹂鸣翠柳,一行白鹭上青天</div>
  74. <!--文章底部-->
  75. <div class="article-bottom">
  76. <span>#python</span><span>#javascript</span>
  77. </div>
  78. </div>
  79. <div class="right-article">
  80. <!--文章标题-->
  81. <div class="title">
  82. <span class="tag">无题</span>
  83. <span class="date">2019-5-30</span>
  84. </div>
  85. <!--文章内容-->
  86. <div class="content">两只黄鹂鸣翠柳,一行白鹭上青天</div>
  87. <!--文章底部-->
  88. <div class="article-bottom">
  89. <span>#python</span><span>#javascript</span>
  90. </div>
  91. </div>
  92. <div class="right-article">
  93. <!--文章标题-->
  94. <div class="title">
  95. <span class="tag">无题</span>
  96. <span class="date">2019-5-30</span>
  97. </div>
  98. <!--文章内容-->
  99. <div class="content">两只黄鹂鸣翠柳,一行白鹭上青天</div>
  100. <!--文章底部-->
  101. <div class="article-bottom">
  102. <span>#python</span><span>#javascript</span>
  103. </div>
  104. </div>
  105. </div>
  106. <!--博客右侧结束-->
  107. </body>
  108. </html>

HTML代码

  1. /*通用样式*/
  2. body {
  3. background-color: rgb(242,242,242);
  4. margin:;
  5. }
  6. a {
  7. text-decoration: none;
  8. }
  9. img {
  10. width: 100%;
  11. }
  12. ul {
  13. list-style-type: none;
  14. padding:;
  15. }
  16. /*博客左侧样式开始*/
  17. .blog-left {
  18. width:20%;
  19. height:100%;
  20. position:fixed;
  21. top:;
  22. left:;
  23. background-color: rgb(76,76,76);
  24. float:left;
  25. }
  26. /*圆形头像样式*/
  27. .left-avatar {
  28. width:150px;
  29. height:150px;
  30. overflow:hidden;
  31. border: 3px solid white;
  32. border-radius: 50%;
  33. margin: 10px auto;
  34. }
  35.  
  36. .left_name,.left-signature {
  37. color: white;
  38. text-align: center;
  39. }
  40.  
  41. .left-info,.left-lang {
  42. text-align: center;
  43. margin-top:60px;
  44. color: darkgrey;
  45. }
  46. .left-info li:hover,.left-lang li:hover {
  47. color: white;
  48. }
  49. /*博客左侧样式结束*/
  50.  
  51. /*博客右侧样式*/
  52. .blog-right {
  53. width:80%;
  54. float:right;
  55. }
  56. .right-article {
  57. background-color: white;
  58. box-shadow: 3px 3px 3px rgba(43,43,43, 0.4);
  59. margin:15px 20px 10px 15px;
  60. }
  61. /*文章标题样式开始*/
  62. .title {
  63. border-left:3px solid red;
  64. }
  65. .tag {
  66. font-size: 36px;
  67. margin-left: 10px;
  68. }
  69. .date {
  70. float:right;
  71. font-size: 16px;
  72. margin-top: 20px;
  73. margin-right:10px;
  74. }
  75. /*文章标题样式结束*/
  76. /*文章内容样式开始*/
  77. .content {
  78. font-size: 24px;
  79. border-bottom: 1px solid black;
  80. padding: 10px 0 10px 10px;
  81. }
  82. /*文章内容样式结束*/
  83.  
  84. /*文章底部样式*/
  85. .article-bottom {
  86. padding-bottom: 10px;
  87. padding-top: 5px;
  88. }
  89. .article-bottom span{
  90. margin-left: 20px;
  91. /*padding: 5px;*/
  92. }

CSS代码

前端CSS学习笔记的更多相关文章

  1. 前端html与css学习笔记总结篇(超详细)

    第一部分 HTML 第一章 职业规划和前景 职业方向规划定位: web前端开发工程师 web网站架构师 自己创业 转岗管理或其他 web前端开发的前景展望: 未来IT行业企业需求最多的人才 结合最新的 ...

  2. HTML+CSS学习笔记(3)- 认识标签(2)

    HTML+CSS学习笔记(3)- 认识标签(2) 1.使用ul,添加新闻信息列表 在浏览网页时,你会发现网页上有很多信息的列表,如新闻列表.图片列表, 这些列表就可以使用ul-li标签来完成.ul-l ...

  3. HTML+CSS学习笔记(2) - 认识标签(1)

    HTML+CSS学习笔记(2) - 认识标签(1) 1.语义化,让你的网页更好的被搜索引擎理解 标签的用途: 我们学习网页制作时,常常会听到一个词,语义化.那么什么叫做语义化呢,说的通俗点就是:明白每 ...

  4. HTML+CSS学习笔记(1) - Html介绍

    HTML+CSS学习笔记(1) - Html介绍 1.代码初体验,制作我的第一个网页 <!DOCTYPE HTML> <html> <head> <meta ...

  5. CSS学习笔记

    CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...

  6. HTML+CSS学习笔记 (7) - CSS样式基本知识

    HTML+CSS学习笔记 (7) - CSS样式基本知识 内联式css样式,直接写在现有的HTML标签中 CSS样式可以写在哪些地方呢?从CSS 样式代码插入的形式来看基本可以分为以下3种:内联式.嵌 ...

  7. HTML+CSS学习笔记 (6) - 开始学习CSS

    HTML+CSS学习笔记 (6) - 开始学习CSS 认识CSS样式 CSS全称为"层叠样式表 (Cascading Style Sheets)",它主要是用于定义HTML内容在浏 ...

  8. HTML+CSS学习笔记(5)- 与浏览者交互,表单标签

    HTML+CSS学习笔记(5)- 与浏览者交互,表单标签 1.使用表单标签,与用户交互 网站怎样与用户进行交互?答案是使用HTML表单(form).表单是可以把浏览者输入的数据传送到服务器端,这样服务 ...

  9. HTML+CSS学习笔记(4) - 认识标签(3)

    HTML+CSS学习笔记(4) - 认识标签(3) 1.使用<a>标签,链接到另一个页面 使用<a>标签可实现超链接,它在网页制作中可以说是无处不在,只要有链接的地方,就会有这 ...

随机推荐

  1. python登陆接口编写

    #coding:utf-8 import getpass,sys i=0 j=0 while i<3: username=raw_input('username:') #输入用户名 life_1 ...

  2. 添砖加瓦:snappy无损压缩算法

    一.简介 Snappy(旧称:Zippy)是Google基于LZ77的思路用C++语言编写的快速数据压缩与解压程序库,并在2011年开源.其目标并非最大压缩率或与其他压缩程序的兼容性,而是非常高的速度 ...

  3. 杂记:VMware中为mac虚拟机扩容

    之前在VMware中安装Mac虚拟机时,硬盘选的是默认的40G,后来用的过程中随着软件的安装,特别是安装完Xcode和QT5.9之后,可用空间只剩不到3G,每次开机之后都会提醒空间不足,需要清理空间, ...

  4. 【Android TimeCat】 解决cannot resolve symbol R

    莫名其妙出现了,鬼知道怎么来的. 解决方法总结 1. 推荐 解决90%的情况: Build->Clean ProjectBuild->Rebuild Project 2. 不常见 Andr ...

  5. MIZ702N开发环境的准备1

    前言 最近由于工作需要开始接手基于MIZ702的硬件平台的Linux的开发,仔细想想,工作这么久,这好像还是我第一次接手嵌入式Liunx相关的工作.这几天拿到开发板,开始了阅读文档.安装Ubuntu虚 ...

  6. STL标准库中的容器

    容器:顾名思义,我的理解就是把同一种数据类型括起来,作为一捆.如vector<int> ,vector就是个容器,里面全是一个个的int型数据. 容器包括三大块: 顺序型容器: (1)ve ...

  7. YiGo环境搭建

    软件环境 操作系统:Windows 2000+,Mac OS,AIX,RedHat linux,HP-UX等 JDK/JRE:Oracle JDK/JRE 1.8+,IBM J9 VM 1.8+,Op ...

  8. 有了这个开源 Java 项目,开发出炫酷的小游戏好像不难?

    本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 的游戏. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一 ...

  9. CSS3详解:border color

    继续我们的 ,大家觉得怎么样呢?

  10. Deepin环境下启动Pycharm没有启动图标解决办法

    小伙伴们在deepin下运行pycharm时,是不是需要通过sh文件启动? 下面告诉大家如何将pycharm图标放在桌面上: 1.在桌面打开终端,输入命令: sudo gedit /usr/share ...