CSS介绍:

CSS能够使页面具有美观一致的效果,并且能够让内容与格式分离,利于扩展

所以,CSS解决了下面两个问题:

  1. 将HTML页面的内容与格式分离;

  2. 提高web开发的工作效率。

CSS是指层叠式样式表(Cascading Style Sheets),样式定义如何显示HTML元素,样式通常又会存在于样式表中;也就是说,把HTML元素的样式都统一收集起来写在一个地方或一个CSS文件里

CSS的优势:

  1. 内容与表现分离;

  2. 页面的表现统一,容易修改;

  3. 丰富的样式,使页面布局更加灵活;

  4. 减少网页的代码量,增加网页浏览器速度,节省网络带宽;

  5. 运用独立页面的CSS,有利于网页被搜索引擎收录。

使用CSS的方法:通常把样式规则的内容都保存在CSS文件中,此时该文件被称为外部样式表(stylesheet),然后在HTML文件中通过 link 标签引用该CSS该文件即可。

CSS基础语法

CSS语法可以分为两部分: 1. 选择器 ; 2. 声明。 声明由属性的值组成,多个声明之间用分号分隔

CSS的引入方式:

  1. 内联样式

  2. 行内样式表(在HTML标签中插入;不推荐这种方式,不利于扩展)

  3. 外部样式表: a. 链接式(link标签); b.导入式

示例代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>CSS的引入方式</title>
  6. <!-- 内嵌(内联)方式 style -->
  7. <style type="text/css">
  8. h1{
  9. font-size:30px;
  10. color:red;
  11. }
  12. </style>
  13.  
  14. <!-- 外部样式之链接式:link -->
  15. <link rel="stylesheet" type="text/css" href="./css导入方法.css">
  16. </head>
  17. <body>
  18. <div>
  19. <h1>内联方式</h1>
  20.  
  21. <h2>外部样式表之链接式</h2>
  22.  
  23. <!-- 行内样式 -->
  24. <h3 style="font-size:10px;color:blue">行内样式</h2>
  25. </div>
  26. </body>
  27. </html>

上述代码中,链接式的CSS文件中代码如下:

  1. h2{
  2. font-size:;
  3. color:green;
  4. }
  5.  
  6. /*在css文件中设置选择器和声明*/

浏览器中的效果如下:

外联样式表之导入式(了解性知识点):@import url()

  1. <style type="text/css">
  2. import url("./css导入方法.css")
  3. </style>

链接式与导入式的区别:

  1. <link />标签属于XHTML,@import是属性css2.1;

  2. 使用<link />链接的CSS文件先加载到网页当中,再进行编译显示;

  3. 使用@import导入的CSS 文件,客户端显示HTML结构,再把CSS文件加载到网页中;

  4. @import是属于CSS2.1特有的,对于不兼容CSS2.1的浏览器来说就是无效的

基本选择器:

选择器的定义及作用:在一个页面中会有很多的元素,不同的元素可能会有不同的样式,某些元素又需要设置相同的样式,选择器就是用来从HTML中查找特定元素的,找到元素之后就可以为它们设置样式了。选择器为样式规则指定了一个作用范围。

基础选择器包括:

  • 标签选择器
  • 类选择器
  • ID选择器
  • 通用选择器

如下代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>基础选择器</title>
  6. <style type="text/css">
  7. /* *号是通配符;能够匹配所有的元素标签 */
  8. *{
  9. padding: 0;
  10. margin:0;
  11. color: #CD00CD;
  12. }
  13.  
  14. /*元素(标签)选择器*/
  15. h1{
  16. color: #8B1C62;
  17.  
  18. }
  19.  
  20. /*id选择器*/
  21. /*父元素的高度通常不做设置(让子元素自动填充)*/
  22. /* 通过#搜索id */
  23. /* margin:0 auto; 作用:让内容在浏览器中间显示 */
  24. #container{
  25. width: 968px;
  26. background-color:#4B0082;
  27. margin: 0 auto;
  28. }
  29.  
  30. /* 类(class)选择器 (前面加“ . ”) */
  31. .content{
  32. width: 500px;
  33. background: #00EE00;
  34. }
  35.  
  36. /*标签选择器*/
  37. img{
  38. width: 96px;
  39. }
  40.  
  41. /*ul>li 表示子代选择器(直属的下一级);高级选择器*/
  42. /*设置ul中li的显示样式*/
  43. ul>li{
  44. color: #0000EE;
  45. }
  46.  
  47. /*ul a 表示后代选择器,所有后代(所有的下级)都会被设置*/
  48. ul a{
  49. color: #FF7F00;
  50. }
  51. </style>
  52. </head>
  53.  
  54. <body>
  55. <!-- 上+中+下 布局 -->
  56. <div id="container">
  57. <div class="header">
  58. <!-- 一个页面中只能有一个h1 -->
  59. <h1>路飞学城</h1>
  60. </div>
  61.  
  62. <div class="content">
  63. <h2>CONTENT</h2>
  64. <img src="./python2.png">
  65. </div>
  66.  
  67. <div class="header">
  68. <p>
  69. <ul>
  70. <li>1 <a href="">哈哈哈</a></li>
  71. <li>2</li>
  72. <li>3</li>
  73. </ul>
  74. </p>
  75. </div>
  76. </div>
  77. </body>
  78. </html>

高级选择器:

并集选择器、交集选择器、毗邻选择器、兄弟选择器 代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>高级选择器</title>
  6. <style type="text/css">
  7. /*群组(并集)选择器*/
  8. /*border 表示给每个盒子设置边框,solid表示这实线*/
  9. /* 先通过“ . ”取到该选择器 */
  10. .title,.content,.footer{
  11. width: 968px;
  12. /*height:300px;*/
  13. margin: 0 auto;
  14. background-color: #FF6A6A;
  15. border:1px solid blue;
  16. }
  17.  
  18. /*交集选择器*/
  19. p.p1{
  20. color:green;
  21. }
  22.  
  23. /* 取id用# */
  24. p#title1{
  25. font-size:100px;
  26. }
  27. /*浏览器是从上到下解析;如果 p#title1中也有color,会覆盖p.p1中的color */
  28.  
  29. /*毗邻选择器*/
  30. /*用“+”号*/
  31. /*找到所有紧挨在h3后面的【第一个】p标签,设置字体颜色为#551A8B。*/
  32. /*毗邻指的是紧邻的下【一个】*/
  33. h3+p{
  34. color:#551A8B;
  35. }
  36.  
  37. /*兄弟选择器*/
  38. /*用“~”波浪线符号*/
  39. /*找到所有h3标签后面所有同级的p标签,设置字体颜色为红色。*/
  40. h3~p{
  41. color:#00EE00;
  42. }
  43.  
  44. </style>
  45. </head>
  46. <body>
  47. <div class="title">
  48. <p class="p1" id="title1">我是标题</p>
  49. </div>
  50. <div class="content">
  51. <h3>我是3级标题</h3>
  52. <a href="">哈哈</a>
  53. <!-- 下面的<p>标签早跟上面的<h3>标签不是毗邻关系,但是是兄弟关系 -->
  54. <p>我是段落</p>
  55. <h3>我是3级标题</h3>
  56. <p>我是段落</p>
  57. <h3>我是3级标题</h3>
  58. <p>我是段落</p>
  59. <!-- 下面的2个<p>标签早跟上面的<h3>标签不是毗邻关系,但是是兄弟关系 -->
  60. <p>我是段落</p>
  61. <p>我是段落</p>
  62.  
  63. </div>
  64. <div class="footer"></div>
  65. </body>
  66. </html>

属性选择器:除了HTML元素的id属性和class属性外,还可以根据HTML元素的特定属性选择元素

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>属性选择器</title>
  6. <style type="text/css">
  7. /*属性选择器*/
  8. /*根据属性查找,找到所有属性为title的选择器*/
  9. [title]{
  10. color:#CD00CD;
  11. }
  12.  
  13. /*找到所有的class=baidu的选择器*/
  14. [class="baidu"]{
  15. color:#CD3700;
  16. }
  17.  
  18. /*找到所有class是以btn开头的选择器*/
  19. [class^="btn"]{
  20. font-size:30px;
  21. color:#8B6914;
  22. }
  23. /*找到所有class是以btn结尾的选择器*/
  24. [class$="xia"]{
  25. font-size:20px;
  26. color: #8B1A1A;
  27. }
  28. </style>
  29. </head>
  30. <body>
  31. <div class="footer">
  32. <a href="" class="baidu">百度</a>
  33. <a href="" class="btn-default">百度button</a>
  34. <a href="" class="baiduyixia">百度一下</a>
  35. <p title="title1">段落标题</p>
  36. </div>
  37. </body>
  38. </html>
  39.  
  40. <!--
  41. 选择器总结:
  42. 基础选择器:
  43. 1. 标签选择器: div
  44. 2. 类选择器: .div1
  45. 3. id选择器: #box
  46. 4. 通配符选择器: *
  47.  
  48. 高级选择器:
  49. 1. 并集选择器:用“,”隔开
  50. 2. 交集选择器:选择器之间不能有空格,第一个必须是标签选择器,第二个是类选择器或ID选择器
  51. 3. 后代选择器:选择器之间用空格
  52. 4. 子代选择器:选择器之间用>
  53. 5. 毗邻选择器:+
  54. 6. 兄弟选择器: ~
  55. 7. 属性选择器:[class],[class="xxx"][class^="xx"][class$="x"]
  56. -->
  57.  
  58. <!--
  59. CSS样式的优先级:
  60. 行内样式表>内联样式(内部样式表)>外部样式表(链接式)
  61. ID选择器>类选择器>标签选择器
  62. -->

选择器优先级示例:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>选择器优先级</title>
  6. <style type="text/css">
  7. div{
  8. color:red;
  9. }
  10.  
  11. .box{
  12. color:blue;
  13. }
  14.  
  15. #div1{
  16. color: orange;
  17. }
  18.  
  19. </style>
  20. </head>
  21. <body>
  22. <!-- 优先级:id>类>标签 -->
  23. <div class="box" id="div1">TEST</div>
  24. </body>
  25. </html>
  26.  
  27. <!--
  28. 浏览器效果:TEST字体颜色为 orange
  29. -->

伪类选择器:

伪类选择器和伪元素选择器的代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>伪类选择器</title>
  6. <style type="text/css">
  7. /*伪类选择器*/
  8. a:link{
  9. color:blue;
  10. }
  11. a:visited{
  12. color: yellow;
  13. }
  14. a:hover{
  15. font-size:30px;
  16. color:orange;
  17. }
  18. a:active{
  19. color:red;
  20. }
  21.  
  22. /*input输入框获取焦点时的样式:当在输入框中输入的时候,输入框会变成 1px+实线 的状态*/
  23. input:focus{
  24. border:1px solid;
  25. }
  26.  
  27. /*伪元素选择器*/
  28. /*让<p>标签中的内容的第一个字符变成30px*/
  29. p:first-letter{
  30. font-size:30px;
  31. }
  32.  
  33. /*给<p>标签中的内容前面添加“哈哈”,添加的“哈哈”颜色为red*/
  34. p:before{
  35. content:"哈哈";
  36. color:red;
  37. }
  38.  
  39. /*给<p>标签中的内容的结尾添加“666”,颜色为blue*/
  40. p:after{
  41. content:"666";
  42. color:blue;
  43. }
  44. </style>
  45. </head>
  46. <body>
  47. <div>
  48. <ul>
  49. <li><a href="#">百度一下</a></li>
  50. <li><a href="#">hao123</a></li>
  51. <li><a href="#">博客</a></li>
  52. </ul>
  53. <form>
  54. <input type="text" name="">
  55. </form>
  56. <p>来呀!快活呀!</p>
  57. </div>
  58. </body>
  59. </html>

样式处理包括:字体、文本、背景、链接、图片、列表、表格、轮廓等

字体样式属性:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>样式处理之字体</title>
  6. <style type="text/css">
  7. p{
  8. /*设置字体大小*/
  9. font-size:30px;
  10. /*设置成斜体;斜体有两种:oblique和italic,推荐使用oblique*/
  11. /*默认的是normal*/
  12. font-style:oblique;
  13. /*设置字体的粗细*/
  14. /*字体粗细有:normal,bold,bolder,lighter,<integer>*/
  15. font-weight:bold;
  16. /*设置字体类型(需要你的电脑上下载了相应的字体类型)*/
  17. font-family: "隶书";
  18. /*字体颜色*/
  19. color:red;
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <!-- 默认字体大小是 16px=1em -->
  25. <p>我们这里放一个段落</p>
  26. </body>
  27. </html>

文本样式:

代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>样式处理之文本</title>
  6. <style type="text/css">
  7. .box1{
  8. width:500px;
  9. background-color:red;
  10.  
  11. /*设置字体颜色*/
  12. color:blue;
  13.  
  14. /*为字体设置下划线;text-decoration 默认值为none*/
  15. text-decoration:underline;
  16. /*
  17. overline是上划线;
  18. line-through 表示删除线
  19. */
  20.  
  21. /*设置文本首行的缩进*/
  22. text-indent:30px;
  23.  
  24. /*设置文本的水平对齐方式*/
  25. text-align: center;
  26. /*
  27. left:左对齐(默认值);
  28. right:右对齐;
  29. center:居中对齐;
  30. justify:两端对齐;
  31. */
  32.  
  33. /*行高*/
  34. /*当行高=盒子的高度时,会实现文本的垂直居中*/
  35. height: 200px;
  36. line-height: 200px;
  37.  
  38. /*设置文本的阴影*/
  39. text-shadow: 2px 2px 0.5px #fff;
  40. /*
  41. 水平方向:右正左负
  42. 垂直方向:下正上负
  43. 阴影模糊值: 0~1
  44. */
  45.  
  46. /*设置鼠标的游标属性;pointer是变成小手*/
  47. cursor:pointer;
  48. }
  49. </style>
  50. </head>
  51. <body>
  52. <div class="box1">天空飘过五个字</div>
  53. <a href="">天空飘过五个字</a>
  54. </body>
  55. </html>

cursor属性表:

text-shadow取值表:

背景属性:background

示例代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>背景样式</title>
  6. <style type="text/css">
  7. #img{
  8. width: 1000px;
  9. height: 1000px;
  10.  
  11. /*设置背景颜色*/
  12. background-color: yellowgreen;
  13.  
  14. /*设置背景图像*/
  15. background-image:url(./go.jpg);
  16.  
  17. /*背景图片取消重复*/
  18. background-repeat: no-repeat;
  19. /*
  20. repeat:默认值;背景图像将在垂直方向和水平方向重复;
  21. repeat-x:背景图像将在水平方向重复;
  22. repeat-y:背景图像将在垂直方向重复;
  23. no-repeat:背景图像将仅显示一次。
  24. */
  25.  
  26. /*调整背景图像的位置*/
  27. background-position: 20px 50px;
  28. /*第一个参数指水平方向上往右移20px,第二个参数指垂直方向上向下移50px;均可取负数*/
  29.  
  30. /*
  31. 设置背景图片可简写如下(官方推荐这种写法): */
  32. background:url(./go.jpg) no-repeat 20px 50px yellowgreen;
  33.  
  34. </style>
  35. </head>
  36. <body>
  37. <div id="img"></div>
  38. </body>
  39. </html>
  40.  
  41. <!-- 展示图片有两种方法:1. img标签; 2. background-img -->

CSS盒模型

HTML文档中的每个元素(看到的内容)都被描绘成矩形盒子,这些矩形盒子通过一个模型来描述其占用空间,这个模型称为盒子模型。盒子模型通过4个边界来描述:外边距(margin)、边距(边框,border)、内边距(内填充,padding)、内容元素(content)

盒模型---边框(border)

border包括:

  1. 边框样式(border-style)

  2. 边框颜色(border-color)

  3. 边框粗细(border-width)

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>盒模型之border</title>
  6. <style type="text/css">
  7. .wrapper{
  8. width: 200px;
  9. height: 200px;
  10. background-color: #000;
  11.  
  12. border-top-width: 5px;
  13. border-left-width: 5px;
  14. border-right-width: 5px;
  15. border-bottom-width: 5px;
  16.  
  17. /*border-top-color: red;*/
  18. border-color: red;
  19.  
  20. border-top-style: solid;
  21. border-left-style: dashed;
  22. border-right-style: dotted;
  23. border-bottom-style: double;
  24.  
  25. /*也可以写成下面的形式*/
  26. /*统一设置样式*/
  27. border:10px solid yellow;
  28.  
  29. /*四个值:上 右 下 左;顺时针顺序*/
  30. border-style: dotted dashed double solid;
  31. /*
  32. 三个值:上、左右、下
  33. 两个值:上下、左右
  34. 一个值:四个方向
  35. */
  36. }
  37. </style>
  38. </head>
  39. <body>
  40. <div class="wrapper">
  41.  
  42. </div>
  43. </body>
  44. </html>

盒子模型---margin

margin(外边距):控制元素与元素之间的距离

  1. margin的四个方向

  2. margin会改变实际大小,背景色不会渲染到margin区域,margin区域会以空白显示,但是其也属于盒子的一部分

  3. margin是添自身的,如果想改变哪个区域的位置,就给谁添加margin

示例代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>盒子模型之margin</title>
  6. <style type="text/css">
  7. .box1{
  8. width: 200px;
  9. height: 200px;
  10. background-color: RGB(204,25,25);
  11.  
  12. /*margin-top: 20px;*/
  13.  
  14. /*margin用法和border相同*/
  15. /*margin:20px 40px;*/
  16.  
  17. /*margin:0 auto; 作用:使盒子元素水平居中*/
  18. /*margin:0 auto;*/
  19.  
  20. margin-bottom: 50px;
  21.  
  22. }
  23.  
  24. .box2{
  25. width: 200px;
  26. height: 200px;
  27. background-color: #1B5E91;
  28.  
  29. margin-top: 100px;
  30. border:1px solid #0C098D;
  31.  
  32. }
  33. /*当两个垂直外边距相遇时,会形成一个外边距,称为“外边距合并”(以大的外边距值为准)(水平方向不会有这种情况);相邻两个元素或者嵌套元素都会有“外边距合并”的效应*/
  34. /*注意:父子级盒子 嵌套 设置外边距 会形成外边距合并,影响页面布局;
  35. 解决办法:给父元素添加border*/
  36.  
  37. .child{
  38. width: 100px;
  39. height: 100px;
  40. background-color: #DE16AD;
  41.  
  42. margin-top: 50px;
  43. }
  44. /*box2和child是父子级关系,也会形成“外边距合并”,以它们中较大的为准*/
  45. /*解决方法:为父级区域添加border;如果不给父级区域添加border,父子区域的上边距会重合在一起*/
  46. </style>
  47. </head>
  48. <body>
  49. <div class="box1"></div>
  50. <div class="box2">
  51. <div class="child">
  52.  
  53. </div>
  54. </div>
  55. </body>
  56. </html>

浏览器效果:第一个是“嵌套区域的外边距合并”,第二个是“嵌套落区域外边距合并的解决”

  

盒子模型---padding

示例代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>盒子模型之padding</title>
  6. <style type="text/css">
  7. .box1{
  8. width: 300px;
  9. height: 200px;
  10. background-color: red;
  11.  
  12. /*padding不能设置颜色(color)*/
  13. /*padding-left: 20px; */
  14. padding: 20px 30px;
  15.  
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <!-- 内边距(内填充,padding):内容区域到边框的距离
  21. 内边距会扩大元素所在的区域(填充的区域是白白增加的)
  22.  
  23. 注意:为元素设置内边距只能影响自己,不会影响其他的元素
  24. -->
  25. <div class="box1">五笔输入法</div>
  26.  
  27. </body>
  28. </html>

盒子模型尺寸计算方法:

display的用法:

示例代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>display属性</title>
  6. <style type="text/css">
  7. div{
  8. width: 100px;
  9. height: 100px;
  10. background-color: red;
  11.  
  12. /*控制元素 隐藏;不占浏览器的位置*/
  13. /*display: none;*/
  14.  
  15. /*控制元素的隐藏也可以用 visibility:hiddenp; 但是它占浏览器的位置*/
  16. /*visibility: hidden;*/
  17.  
  18. /*设置成行内块元素*/
  19. /*display: inline-block;*/
  20.  
  21. /*设置成行内元素;不能设置宽高,宽高根据内容来填充*/
  22. display: inline;
  23.  
  24. /*用途:例如,将导航栏中的<li>设置成行内或行内块元素*/
  25. }
  26.  
  27. a{
  28. display: block;
  29. width: 300px;
  30. height: 300px;
  31. background-color: yellow;
  32. }
  33.  
  34. img{
  35. /*行内块元素(inline-block)通常用于转化为block,因为即使把inline-block转化成inline,它还是能设置宽高(如 <img>)*/
  36. display: block;
  37. width: 100px;
  38. height: 100px;
  39.  
  40. }
  41. </style>
  42. </head>
  43. <body>
  44. <div>123</div>
  45. <div>456</div>
  46. <a href="#">百度一下</a>
  47. <img src="./go.jpg" alt="go">
  48.  
  49. </body>
  50. </html>

浮动:float

浮动产生的效果

示例代码如下:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>浮动属性float</title>
  6. <style type="text/css">
  7. .wrapper div{
  8. width: 200px;
  9. height: 200px;
  10. background-color: red;
  11. border:1px solid black;
  12.  
  13. /*
  14. float:left; 左浮动:浏览器左侧为起始,从左往右依次排列
  15. float:right; 右浮动:浏览器右侧为起始,从右往左依次排列
  16. float:none; 默认值;按原来的样式展示
  17. */
  18. float:left;
  19. }
  20. </style>
  21.  
  22. </head>
  23. <body>
  24. <div class="wrapper">
  25. <!-- 文档流:可见元素在文档中的显示位置 -->
  26. <!-- 浮动产生的效果:浮动可以使元素按指定位置排列,直到遇到父元素的边界或另一个元素的边界 -->
  27. <div>1</div>
  28. <div>2</div>
  29. <div>3</div>
  30. </div>
  31.  
  32. </body>
  33. </html>

浮动的特性:

示例代码:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>浮动的特性</title>
  6. <style type="text/css">
  7. *{
  8. padding: 0;
  9. margin: 0;
  10. }
  11.  
  12. .wrapper div{
  13. width: 200px;
  14. height: 200px;
  15. border:1px solid black;
  16. }
  17.  
  18. .box1{
  19. background-color: red;
  20. float:left;
  21. }
  22. .box2{
  23. background-color: yellow;
  24. margin-left: 20px;
  25. }
  26. .box3{
  27. background-color: green;
  28. }
  29.  
  30. .container{
  31. /*width: 300px;
  32. height: 300px;*/
  33. background-color: #9614D9;
  34. float:left;
  35. }
  36. span{
  37. float: left;
  38. background-color: #216D15;
  39.  
  40. /*此时可以设置宽高*/
  41. width: 50px;
  42. height: 60px;
  43. }
  44. </style>
  45. </head>
  46. <body>
  47. <!-- 文档流:可见元素在文档中的排列位置
  48.  
  49. 浮动的效果:
  50. 1. 浮动可以使元素脱离文档流,从而不占相对位置;
  51. 2. 浮动会使元素提升层级
  52. 3. 浮动可以使块元素在一行排列,不设置宽高时,可以使元素适应内容
  53. 4. 浮动可以使行内元素支持设置宽高
  54.  
  55. -->
  56.  
  57. <!-- 导航大多是用浮动做的 -->
  58. <div class="wrapper">
  59. <div class="box1"></div>
  60. <div class="box2"></div>
  61. <div class="box3"></div>
  62. </div>
  63.  
  64. <div class="container">哈哈哈</div>
  65. <div class="container">666</div>
  66. <span>爽歪歪</span>
  67.  
  68. </body>
  69. </html>

浏览器上显示效果:

浮动问题和解决方案:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>浮动产生的问题和解决方法</title>
  6. <style type="text/css">
  7. *{
  8. padding: 0;
  9. margin: 0;
  10. }
  11.  
  12. .wrap{
  13. width: 1190px;
  14. /*页面布局的时候,父级盒子的高度通常不要设置,直接由子元素来填充*/
  15. /*height: 500px;*/
  16. background-color: red;
  17. margin: 0 auto;
  18.  
  19. /*子盒子超出部分隐藏起来*/
  20. overflow: hidden;
  21.  
  22. }
  23. .wrap div{
  24. float: left;
  25. }
  26.  
  27. .wrap1{
  28. width: 220px;
  29. height: 480px;
  30. background-color: yellow;
  31. /*float: left;*/
  32. }
  33. .wrap2{
  34. width: 700px;
  35. height: 480px;
  36. background-color: green;
  37. margin-left: 25px;
  38. /*float: left;*/
  39. }
  40. .wrap3{
  41. width: 220px;
  42. height: 480px;
  43. background-color: blue;
  44. margin-left: 25px;
  45. /*float: left;*/
  46. }
  47.  
  48. /*clear:both; 表示 在左右两侧不允许浮动元素*/
  49. /*#clearfix{
  50. /*先把它的float设置成none,再 clear:both;
  51. float: none;
  52. clear: both;
  53. }*/
  54.  
  55. /*官方推荐解决方法如下:*/
  56. .wrap:after{
  57. visibility: hidden;
  58. clear: both;
  59. display: block;
  60. content: ".";
  61. height: 0
  62. }
  63. </style>
  64. </head>
  65. <body>
  66. <!--
  67. 浮动产生的问题:
  68. 1. 父元素不设置高度时,子元素设置了浮动,则子元素不会撑开父元素的高度,因为子元素不占位置
  69.  
  70. 解决办法:
  71. 1. 给父盒子设置固定高度,但是这种方法不灵活,因为可能会影响下面元素的布局;
  72. 2. 给浮动元素最后一个加一个空的块级元素,且该元素不浮动,并且设置 clear:both; 这种方法的缺点:结构冗余;
  73. 3. 给父盒子后面加一个空的块级元素(官方推荐):.wrap:after{
  74. visibility: hidden;
  75. clear: both;
  76. display: block;
  77. content: ".";
  78. height: 0
  79. }
  80. 4. 给父元素添加: overflow:hidden; (推荐使用)
  81. 附:解决浮动问题时,3和4都写上
  82. -->
  83. <div class="wrap">
  84. <div class="wrap1"></div>
  85. <div class="wrap2"></div>
  86. <div class="wrap3"></div>
  87. <div id="clearfix"></div>
  88. </div>
  89.  
  90. </body>
  91. </html>

3和4扩展盒子高度的区别:

浏览器效果如下:

overflow属性值:

定位处理:position

大的盒子的定位用margin、浮动,大盒子里面的小盒子定位用position

属性值:

定位处理之relative:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>position定位之relative</title>
  6. <style type="text/css">
  7. *{
  8. padding: 0;
  9. margin: 0;
  10. }
  11. div{
  12. width: 200px;
  13. height: 200px;
  14. }
  15. .box1{
  16. background-color: red;
  17.  
  18. /*设置了 position:relative; 之后,还需要对 top,left,right或bottom进行设置,不设置偏移量时对元素没有任何影响*/
  19. position: relative;
  20. top: 20px;
  21. left: 30px;
  22.  
  23. }
  24. .box2{
  25. background-color: yellow;
  26. }
  27. .box3{
  28. background-color: green;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <!--
  34. 相对定位:相对自身原来位置进行偏移(偏移设置:top;left;right;bottom)
  35. 1. 不设置偏移量的时候,对元素没有任何影响;
  36. 2. 可以提升层级关系
  37. -->
  38. <div class="box1"></div>
  39. <div class="box2"></div>
  40. <div class="box3"></div>
  41.  
  42. </body>
  43. </html>

定位处理之绝对定位和固定定位:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>position定位之absolute</title>
  6. <style type="text/css">
  7. *{
  8. padding: 0;
  9. margin: 0;
  10. }
  11. div{
  12. width: 200px;
  13. height: 200px;
  14. }
  15. .box1{
  16. background-color: red;
  17. position: relative;
  18. top: 100px;
  19. left: 30px;
  20. }
  21. .box2{
  22. background-color: yellow;
  23. position: absolute;
  24. top: 150px;
  25.  
  26. }
  27. .box3{
  28. background-color: green;
  29. position: absolute;
  30. left: 150px;
  31. top: 10px;
  32.  
  33. }
  34.  
  35. .father{
  36. width: 300px;
  37. height: 300px;
  38. background-color: #B3A8A8;
  39. margin-left: 300px;
  40. margin-top: 100px;
  41. position: relative;
  42. }
  43. .child{
  44. width: 100px;
  45. height: 100px;
  46. background-color: #9F2FAC;
  47. position: absolute;
  48. top:20px;
  49. left: 20px;
  50. }
  51.  
  52. .aside_logo{
  53. width: 100px;
  54. height: 100px;
  55. background-color: blue;
  56.  
  57. /*固定定位:即使页面滑动,也一直保持不动,可用于制作小广告*/
  58. position: fixed;
  59. bottom: 20px;
  60. right: 20px;
  61. }
  62. </style>
  63. </head>
  64. <body>
  65. <!--
  66. 绝对定位:absolute;
  67. 在没有设置父级元素定位(position)时,以浏览器的左上角为基准;
  68. 在有父级的情况下,父级设置相对定位,子级设置绝对定位,则子盒子是以父盒子为基准进行定位(“父相子绝”,很常见)
  69.  
  70. 1. 提升层级关系
  71. 2. 脱离文档流
  72. -->
  73. <div class="box1"></div>
  74. <div class="box2"></div>
  75. <div class="box3"></div>
  76.  
  77. <div class="father">
  78. <div class="child"></div>
  79. </div>
  80.  
  81. <div class="aside_logo"></div>
  82. <ul>
  83. <li>1</li>
  84. <li>2</li>
  85. <li>3</li>
  86. <li>4</li>
  87. <li>5</li>
  88. <li>6</li>
  89. <li>7</li>
  90. <li>8</li>
  91. <li>9</li>
  92. <li>10</li>
  93. <li>11</li>
  94. <li>12</li>
  95. <li>13</li>
  96. <li>14</li>
  97. <li>15</li>
  98. <li>16</li>
  99. </ul>
  100. </body>
  101. </html>

堆叠z-index

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>堆叠z-index</title>
  6. <style type="text/css">
  7. div{
  8. width: 100px;
  9. height: 100px;
  10. position: absolute;
  11. }
  12. .box1{
  13. background-color: red;
  14. left: 20px;
  15. z-index: 1;
  16. }
  17. .box2{
  18. background-color: yellow;
  19. top: 20px;
  20. z-index: 2;
  21.  
  22. /*设置圆角或者圆*/
  23.  
  24. border-radius: 20px 0 0 0;
  25. /*设置圆*/
  26. /*border-radius: 50%;*/
  27. }
  28. .box3{
  29. background-color: green;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <div class="box1"></div>
  35. <div class="box2"></div>
  36. <div class="box3"></div>
  37. </body>
  38. </html>

常见的网页布局:

  • 上下结构
  • 上中下结构
  • 上左右下结构:1-2-1结构
  • 上左中右下结构:1-3-1结构

前端开发:CSS3的更多相关文章

  1. web前端开发:css3实现loading

    web前端开发:css3实现loading 有大量web前端开发工具及学习资料,可以搜群[ web前端学习部落22群 ]进行下载,遇到学习问题也可以问群内专家以及课程老师哟 <!DOCTYPE ...

  2. 1+x 证书 Web 前端开发 CSS3 专项练习

    官方QQ群 1+x 证书 Web 前端开发 CSS3 专项练习 http://blog.zh66.club/index.php/archives/196/

  3. 1+x证书Web前端开发CSS3详细教程

    web 前端开发之 CSS3 新特性 http://blog.zh66.club/index.php/archives/189/ web 前端开发之 html5 新特性 http://blog.zh6 ...

  4. 前端开发CSS3——文本样式和盒子及样式

    博主废话少说,直接介绍css常用的属性和属性值:属性和值只需过一遍,页面的结构还是需要布局,布局的只是后期会更新的. 提供一些图标的网站:font-awesome:     http://fontaw ...

  5. 前端开发CSS3——使用方式和选择器

    CSS是Cascading Style Sheets(层叠样式表)的简写,用于修饰文档的语言,可以修饰HTML.XML.SVN.每个语言都有每个语法的规则:CSS声明.CSS声明块.CSS选择器.CS ...

  6. 1+x 证书 web 前端开发初级对应课程分析

    响应国家号召 1+X 证书 Web 前端开发考试样题 官方QQ群 1+x 证书 web 前端开发初级对应课程分析 http://blog.zh66.club/index.php/archives/19 ...

  7. 响应国家号召 1+X 证书 Web 前端开发考试模拟题

    1+x证书Web前端开发初级理论考试样题2019 http://blog.zh66.club/index.php/archives/149/ 1+x证书Web前端开发初级实操考试样题2019 http ...

  8. Web 前端开发精华文章推荐(jQuery、HTML5、CSS3)【系列十二】

    2012年12月12日,[<Web 前端开发人员和设计师必读文章>系列十二]和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HT ...

  9. Web 前端开发精华文章集锦(jQuery、HTML5、CSS3)【系列十七】

    <Web 前端开发精华文章推荐>2013年第五期(总第十七期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HTML5 和 C ...

  10. Web 前端开发精华文章推荐(HTML5、CSS3、jQuery)【系列二十三】

    <Web 前端开发精华文章推荐>2014年第2期(总第23期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各类能够提升网站用户体验的优秀 jQuery 插件,展示前沿的 HTML5 ...

随机推荐

  1. java 字符串的比较compareTo

    import java.util.Scanner; public class Demo01 { public static void main(String[] args) {     Scanner ...

  2. C#中如何判断键盘按键和组合键

    好记性不如烂笔头子,现在记录下来,不一定会有很详尽的实例,只写最核心的部分. C# winform的窗体类有KeyPreview属性,可以接收窗体内控件的键盘事件注册.窗体和控件都有KeyDown,K ...

  3. java awt 乱码问题

    问题:项目环境是utf-8,awt的元件比如label一直乱码 解决: (eclipse) 1.在你的具有main函数的类也即你应用运行的主类上点击右键,选择Run As中的Run Configura ...

  4. AJPFX关于网络编程的理解

    1:网络编程(理解)        (1)网络编程:用Java语言实现计算机间数据的信息传递和资源共享        (2)网络编程模型        (3)网络编程的三要素              ...

  5. 块级元素的text-align对行内元素和果冻元素(inline-block)的作用

    块级元素社设置了text-align:center以后,对其直接行内元素/果冻元素.继承行内元素/果冻元素都会产生“居中效应”. <style> .test4{ text-align: c ...

  6. python itertools模块实现排列组合

    转自:https://blog.csdn.net/specter11235/article/details/71189486 一.笛卡尔积:itertools.product(*iterables[, ...

  7. QT入门学习

    第一个QT程序 #include<QApplication> #include<QDialog> #include<QLabel> #include<QTex ...

  8. 重构31-Replace conditional with Polymorphism(多态代替条件)

    多态(Polymorphism)是面向对象编程的基本概念之一.在这里,是指在进行类型检查和执行某些类型操作时,最好将算法封装在类中,并且使用多态来对代码中的调用进行抽象. public class O ...

  9. 详解java基础--抽象类、接口与多态

    抽象类.接口.多态都是面向对象中很基础的东西,我相信看到能本篇博客的人本不会再纠结它的基本定义了,本篇文章将尽量的更加深层次的挖掘其内涵,希望能对大家有帮助. 一.抽象类 1.形式 abstract ...

  10. linux命令useradd添加用户

    linux命令useradd添加用户详解 1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户. 2.格式 useradd [-d home] [-s ...