第七篇(2) CSS(一)

CSS(Cascading Style Sheets)称为层叠样式表,用于对页面进行美化。在学习Html页面时,大家都会发现我们的页面丑的一批,从今天开发就让我们的页面好看起来,例如:

第七章 CSS(一)

2.1 应用方式

css的样式有很多种,当如果想要把css样式应用到特定标签上有三种方式:

  • 标签属性上编写,适用范围:指定一个标签。【不推荐,多标签无法复用样式】

    1. <divstyle="color:green;">Alex</div>
  • head标签中定义,适用范围:当前页面的所有标签。【推荐,多个标签可复用样式】

    1. <!DOCTYPE html>
    2. <htmllang="en">
    3. <head>
    4. <metacharset="UTF-8">
    5. <title>CSS学习</title>
    6. <style>
    7. /*给所有的div设置样式*/
    8. div {
    9. color: green;
    10. }
    11. </style>
    12. </head>
    13. <body>
    14. <div>Alex</div>
    15. <div>mjj</div>
    16. </body>
    17. </html>
  • 在css文件中定义,适用范围:所有引入css文件的页面。【推荐,多页面、多个标签均可复用样式】

    • 创建css文件,如:common.css

      1. div {
      2. color: green;
      3. }
    • 创建html文件,如:index.html

      1. <!DOCTYPE html>
      2. <htmllang="en">
      3. <head>
      4. <metacharset="UTF-8">
      5. <title>CSS学习</title>
      6. <linkrel="stylesheet"href="common.css">
      7. </head>
      8. <body>
      9. <div>Alex</div>
      10. <div>老男孩</div>
      11. </body>
      12. </html>

以后在企业中写应用css样式时,写单页面时会把样式写在head头部;写多页面时,会把样式写入css文件,然后再在要应用的html页面引入css即可。

2.2 选择器

学习选择器的目的就是选中html页面中指定标签,便于以后给他应用样式.

2.2.1 标签选择器

在body中找到所有指定标签,例如:找到所有a标签,让他们绿了。

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS学习</title>
  6. <style>
  7. a {
  8. color: green;
  9. }
  10. </style>
  11. </head>
  12. <body>
  13. <div>周杰伦</div>
  14. <ahref="https://www.oldboyedu.com">Alex</a>
  15. <p>Alex</p>
  16. <ul>
  17. <li>
  18. <ahref="#">朗朗</a>
  19. </li>
  20. </ul>
  21. </body>
  22. </html>

2.2.2 id 选择器

在body中找一个id匹配的标签。(HTML中ID属性应唯一,相当于人的身份证号码),例如:找到id等于i1的标签,让他绿了。

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS学习</title>
  6. <style>
  7. /*找到所有a标签,并应用内部数据*/
  8. #i1 {
  9. color: green;
  10. }
  11. </style>
  12. </head>
  13. <body>
  14. <div>老男孩</div>
  15. <div>
  16. <spanid="i1">李杰</span>
  17. </div>
  18. <p>武沛齐</p>
  19. </body>
  20. </html>

2.2.3 class 选择器

在body中找到所有class属性值匹配的标签。例如:找到所有class等于head的标签,让他绿了。

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS学习</title>
  6. <style>
  7. .head {
  8. color: green;
  9. }
  10. </style>
  11. </head>
  12. <body>
  13. <divclass="head">老男孩</div>
  14. <div>
  15. <ahref="http://www.sb.com">李杰</a>
  16. </div>
  17. <pclass="head">武沛齐</p>
  18. </body>
  19. </html>

2.2.4 属性选择器

在body中找到所以class属性值匹配的标签。

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS学习</title>
  6. <style>
  7. /* 找到class=head并且name=oldboy的标签 */
  8. .head[name="oldboy"]{
  9. color: green;
  10. }
  11. </style>
  12. </head>
  13. <body>
  14. <divclass="head"xx="oldboy">老男孩</div>
  15. <div>
  16. <ahref="http://www.sb.com">李杰</a>
  17. </div>
  18. <pclass="head"xx="wupeiqi">武沛齐</p>
  19. </body>
  20. </html>

注意:属性和值都比较灵活,可以随意定制。

2.2.5 后代选择器

在body标签中根据父子关系找到指定标签。

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS学习</title>
  6. <style>
  7. .head ul .hat {
  8. color: green;
  9. }
  10. </style>
  11. </head>
  12. <body>
  13. <ahref="#">老男孩</a>
  14. <divclass="head">
  15. <aclass="hat">北京</a>
  16. <ul>
  17. <li>沙河</li>
  18. <li>
  19. <aclass="hat">沙河高晓松Alex</a>
  20. </li>
  21. <li>
  22. <a>沙河大烧饼Alex</a>
  23. </li>
  24. </ul>
  25. </div>
  26. <divclass="head">
  27. <ahref="#">武沛齐</a>
  28. </div>
  29. </body>
  30. </html>

2.2.6 选择器分组

对选择器进行分组,无需重复编写。

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS学习</title>
  6. <style>
  7. /* 不推荐写法 */
  8. /*
  9. h1 {
  10. color: green;
  11. }
  12. .head h2{
  13. color: green;
  14. }
  15. h3{
  16. color: green;
  17. }
  18. h4{
  19. color: green;
  20. }
  21. */
  22. h1,.head h2, h3, h4 {
  23. color: green;
  24. }
  25. </style>
  26. </head>
  27. <body>
  28. <h1>李杰</h1>
  29. <h2>Alex</h2>
  30. <h3>沙河高晓松</h3>
  31. <h4>沙河小王子</h4>
  32. </body>
  33. </html>

2.3 CSS样式

此部分将介绍前端开发中常用的一些css样式,通过以下示例来一步步完成美乐乐商城的项目。

2.3.1 height 高度 & width 宽度

在html中如果想要给标签设置高度和宽度的话,需要使用height和width属性,并且在设置时有两种单位:

  • 像素,根据像素设置。
  • 百分比,根据百分比设置。
    因网页高度无限制,所以默认高度无法设置百分比,如果非要设置,则需要父级标签设置固定高度,子标签便可使用百分比设置高度。

注意:行内标签无法设置高度和宽度,如果想要设置必须转换为块级标签才能应用。

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS学习</title>
  6. <style>
  7. .c1{
  8. height:60px;
  9. background-color:#2b669a;
  10. }
  11. .c2{
  12. height:60px;
  13. width:200px;
  14. background-color:#2aabd2;
  15. }
  16. .c3{
  17. height:60px;
  18. width:40%;
  19. background-color: gold;
  20. }
  21. .c4{
  22. height:60px;
  23. width:60%;
  24. background-color: deeppink;
  25. }
  26. </style>
  27. </head>
  28. <body>
  29. <divclass='c1'>标签1</div>
  30. <divclass='c2'>标签2</div>
  31. <divclass='c3'>标签3</div>
  32. <divclass='c4'>标签4</div>
  33. </body>
  34. </html>

2.3.2 display 显示

display属性有3个常用的值,用于修改属性的展示状态:

  • display:block,变为块级标签。
  • display:inline;,变为行内标签。
  • display:inline-block,变为行块内标签(行内和块级特性结合)。
  • display:none,把标签隐藏。(设置display:none隐藏标签,移除之后显示标签)

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS学习</title>
  6. </head>
  7. <body>
  8. <h1>div标签</h1>
  9. <divstyle="background-color:#2aabd2;display: inline;height: 60px;">我是div</div>
  10. <divstyle="background-color:#2aabd2;height: 60px;">我是div</div>
  11. <h1>span标签</h1>
  12. <spanstyle="background-color:gold;height:60px;">我是span</span>
  13. <spanstyle="background-color:gold;display: block;height:60px;">我是span</span>
  14. <!--总结,HTML标签中 div和span标签可以通过display属性完全互换,其实记住一个div就行了。-->
  15. <h1>特殊的display:inline-block</h1>
  16. <divstyle="display:inline-block;background-color: pink;height:80px;">我是</div>
  17. <divstyle="display:inline-block;background-color: goldenrod;height:80px;">武沛齐</div>
  18. </body>
  19. </html>

2.3.3 float 浮动

float浮动用于实现N个标签并排存放(主要针对块级标签,行内标签默认就可以并排存放)。

页面布局时,一般都会使用div标签及float属性来实现,float设置时一般有两个值:

  • float:left,标签并排向左浮动。
  • float:right,标签并排向右浮动。

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS学习</title>
  6. </head>
  7. <body>
  8. <h1>向左浮动</h1>
  9. <div>
  10. <divstyle="float:left;width:100px;background-color: green;">天堂</div>
  11. <divstyle="float: left;width:100px;background-color: red;">地狱</div>
  12. </div>
  13. </body>
  14. </html>

特别注意:布局中如何使用了float浮动,就会出现脱离文档流的现象,如下图父标签没有被撑起来:

为了防止脱离文档流现象,所以以后只要出现浮动就记得要清除浮动,即:

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS学习</title>
  6. </head>
  7. <body>
  8. <h1>正确示例</h1>
  9. <h2>向左浮动</h2>
  10. <divstyle="background-color: pink;">
  11. <divstyle="float:left;color: green;">天堂</div>
  12. <divstyle="float: left;color: red;">地狱</div>
  13. <!-- 清除浮动,与使用了float属性的标签放在同一级 -->
  14. <divstyle="clear:both;"></div>
  15. </div>
  16. <h2>向右浮动</h2>
  17. <div>
  18. <divstyle="float:right;width:100px;background-color: green;">天堂</div>
  19. <divstyle="float: right;width:100px;background-color: red;">地狱</div>
  20. <divstyle="clear: both;"></div>
  21. </div>
  22. <h2>一个向左一个向右</h2>
  23. <div>
  24. <divstyle="float:left;width:100px;background-color: green;">天堂</div>
  25. <divstyle="float: right;width:100px;background-color: red;">地狱</div>
  26. <divstyle="clear: both;"></div>
  27. </div>
  28. </body>
  29. </html>

2.3.4 font 字体 & 颜色

在前端开发过程中会经常调整 字体格式、字体大小、字体颜色。

  • 字体格式
  • 字体大小
  • 字体加粗
  • 字体颜色

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS学习</title>
  6. <style>
  7. .c1{
  8. font-family:"Times New Roman",Georgia,Serif;
  9. }
  10. .c2{
  11. font-family:Arial,Verdana,Sans-serif;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <h1>字体格式</h1>
  17. <divclass="c1">一白日依山尽,黄河入海流。</div>
  18. <divclass="c2">欲穷千里目,更上一层楼。</div>
  19. <h1>字体大小</h1>
  20. <divstyle="font-size:13px;">从此寻花问柳,闭口不谈一生厮守。</div>
  21. <divstyle="font-size:16px;">从此红灯绿酒,再也不想牵谁的手。</div>
  22. <divstyle="font-size:18px;">从此人海漂流,闭口不谈爱到白头。</div>
  23. <h1>字体加粗</h1>
  24. <divstyle="font-weight:100;">我愿化身石桥 只为看一眼你的内裤。</div>
  25. <divstyle="font-weight:300">中年男人哪有容易的事?</div>
  26. <divstyle="font-weight:400">中年男人容易胖、容易老、容易头发变稀少。</div>
  27. <h1>字体颜色</h1>
  28. <divstyle="color: red;">远上寒山石径斜,白云生处有人家。</div>
  29. <divstyle="color:#f0ad4e">停车坐爱枫林晚,霜叶红于二月花。。</div>
  30. </body>
  31. </html>

2.3.4 文字对齐方式

页面上如果想要设置文字对齐方式,可以分为以下情况:

  • 水平方向:左、中、右
  • 垂直方向:上、中、下
  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS学习</title>
  6. <style>
  7. .demo1{
  8. width:400px;
  9. }
  10. .demo2{
  11. width:400px;
  12. height:100px;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <h1>水平方向</h1>
  18. <divclass="demo1"style="background-color: pink;text-align: left;">Alex媳妇满身大汗</div>
  19. <divclass="demo1"style="background-color: darkseagreen;text-align: center;">王老汉</div>
  20. <divclass="demo1"style="background-color: goldenrod; text-align: right;">武老汉</div>
  21. <h1>垂直方向</h1>
  22. <divclass="demo2"style="background-color: pink;">Alex媳妇满身大汗</div>
  23. <divclass="demo2"style="background-color: darkseagreen;line-height:100px;">王老汉(推荐)</div>
  24. <divclass="demo2"style="background-color: goldenrod;position: relative;">
  25. <spanstyle="position: absolute;bottom:0;">武老汉,这个知识点下一节细讲</span>
  26. </div>
  27. </body>
  28. </html>

2.3.6 padding 内边距

padding内边距作用是 为被应用的标签创建一部分内部间距。边距可以设置上、下、左、右方向。

  1. /* 单独设置上下左右内边距 */
  2. padding-left:8px;
  3. padding-right:2px;
  4. padding-top:4px;
  5. padding-bottom:18px;
  6. /* padding:上 右 下 左; */
  7. padding:10px02px;4px;
  8. /* padding:上下 右左; */
  9. padding:7px5px;
  10. /* padding:上下右左; */
  11. padding:8px;

     

     

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS学习</title>
  6. </head>
  7. <body>
  8. <h1>无内边距</h1>
  9. <divstyle="height:200px;border:1px solid #dddddd">
  10. <divstyle="background-color: darkseagreen;">听妈妈的话</div>
  11. <div>
  12. 小朋友你是否有很多问号,为什么别人在那看漫画,我却在学画画对着钢琴说话。
  13. </div>
  14. </div>
  15. <h1>内边距示例1</h1>
  16. <divstyle="height:200px;border:1px solid #dddddd">
  17. <divstyle="background-color: gold;padding:10px;">听爸爸的话</div>
  18. <divstyle="padding:10px;">
  19. 小朋友你是否有很多问号,为什么别人在那看漫画,我却在学画画对着钢琴说话。
  20. </div>
  21. </div>
  22. <h1>内边距示例2</h1>
  23. <divstyle="height:200px;border:1px solid #dddddd;padding: 10px;">
  24. <divstyle="background-color: gold;">听爸爸的话</div>
  25. <div>
  26. 小朋友你是否有很多问号,为什么别人在那看漫画,我却在学画画对着钢琴说话。
  27. </div>
  28. </div>
  29. </body>
  30. </html>

2.3.7 margin 外边距

外边距用于相邻的标签之间增加距离用。边距可以设置上、下、左、右方向。

  1. /* 单独设置上下左右内边距 */
  2. margin-left:8px;
  3. margin-right:2px;
  4. margin-top:4px;
  5. margin-bottom:18px;
  6. /* margin:上 右 下 左; */
  7. margin:10px02px;4px;
  8. /* margin:上下 右左; */
  9. margin:7px5px;
  10. /* margin:上下右左; */
  11. margin:8px;

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>CSS学习</title>
  6. </head>
  7. <body>
  8. <divstyle="height:200px;background-color: gold;"></div>
  9. <divstyle="height:200px;background-color: pink;margin-top:20px;"></div>
  10. </body>
  11. </html>

特别注意:关于外边距还有两个特殊的知识点需要学习。

  • body标签默认有一个 8px的外边距,所以你会发现默认的页面都有一个“白边”。

  • 自动居中布局,你应该见过很多网站的内容都在中间放置,两边是空白。

    1. /* 只要指定宽度并设置margin为 0 auto 就可以实现div 自动居中布局*/
    2. width:900px;
    3. margin:0auto;

2.3.8 课堂练习:小米顶部导航

实现小米商城中顶部黑色导航条的功能(不需要写购物车图标)。

  1. <!DOCTYPE html>
  2. <htmllang="en">
  3. <head>
  4. <metacharset="UTF-8">
  5. <title>小米商城</title>
  6. <linkrel="shortcut icon"href="img/favicon.ico">
  7. <style>
  8. body {
  9. margin:0;
  10. font:14px/1.5HelveticaNeue,Helvetica,Arial,MicrosoftYahei,HiraginoSans GB,Heiti SC,WenQuanYiMicroHei, sans-serif;
  11. }
  12. .container {
  13. width:1190px;
  14. margin:0auto;
  15. }
  16. .left {
  17. float: left;
  18. }
  19. .right {
  20. float: right;
  21. }
  22. .header {
  23. height:40px;
  24. line-height:40px;
  25. background-color:#333;
  26. color:#b0b0b0;
  27. font-size:12px;
  28. }
  29. .header .menus a,.header .account a,.header .car a {
  30. text-decoration: none;
  31. display:inline-block;
  32. padding:05px;
  33. }
  34. .header .car a {
  35. display:inline-block;
  36. height:40px;
  37. padding:015px;
  38. margin-left:20px;
  39. background-color:#424242;
  40. }
  41. </style>
  42. </head>
  43. <body>
  44. <divclass="header">
  45. <divclass="container">
  46. <divclass="menus left">
  47. <a>小米商城</a>
  48. <a>MIUI</a>
  49. <a>IoT</a>
  50. <a>云服务</a>
  51. </div>
  52. <divclass="car right"><a>购物车(0)</a></div>
  53. <divclass="account right">
  54. <a>登录</a>
  55. <a>注册</a>
  56. <a>消息通知</a>
  57. </div>
  58. <divstyle="clear: both;"></div>
  59. </div>
  60. </div>
  61. </body>
  62. </html>
posted @ 2021-05-08 15:21  风hua  阅读(38)  评论(0编辑  收藏  举报