zoukankan      html  css  js  c++  java
  • 第七篇(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>
    作者:华王 博客:https://www.cnblogs.com/huahuawang/
  • 相关阅读:
    『轉』windows文件的占用空间与文件大小
    『轉』asterisk入门连载二
    vm系統出現This Virtual Machine Appears To Be In Use的問題
    linux 7788
    鸿蒙开发板外设控制 之 实现按键“按下事件”和“释放事件”的通用框架(V0.0.1)
    【开发板试用报告】学习GPIO编程
    前言「HarmonyOS应用开发基础篇」
    【开发板试用报告】鸿蒙OS环境搭建及代码烧录
    动态设置和访问cxgrid列的Properties
    cxgrid导出excel
  • 原文地址:https://www.cnblogs.com/huahuawang/p/14745077.html
Copyright © 2011-2022 走看看