zoukankan      html  css  js  c++  java
  • 第七篇(2) CSS(二)

    本篇主要包含两部分内容:小米商城讲解 和 CSS样式补充。

    第七章 CSS(二)

    3.1 讲解:小米商城头部页面

    练习题参考源代码提取地址:

    1. 链接: https://pan.baidu.com/s/11IX2NAxdo2yvBYdhy-ME-Q
    2. 提取码: yqeq

    注意:由还没有讲 background属性,所以 logo 部分可暂用图片实现。

    3.2 CSS样式

    本节继续学习CSS常见样式。

    3.2.1 border 边框

    用于给标签设置边框。

    1. <!DOCTYPE html>
    2. <htmllang="en">
    3. <head>
    4. <metacharset="UTF-8">
    5. <title>CSS学习</title>
    6. <style>
    7. div{
    8. height:40px;
    9. width:400px;
    10. margin-top:10px;
    11. }
    12. </style>
    13. </head>
    14. <body>
    15. <divstyle="border:1px solid #333333;"></div>
    16. <divstyle="border:1px solid #333333;"></div>
    17. <divstyle="border:2px solid #333333;"></div>
    18. <divstyle="border:1px dotted red;"></div>
    19. <divstyle="border:1px dotted goldenrod;"></div>
    20. <divstyle="border:3px dotted goldenrod;border-right:0"></div>
    21. </body>
    22. </html>

    扩展border-radius也可以设置圆角边框。

    1. <!DOCTYPE html>
    2. <htmllang="en">
    3. <head>
    4. <metacharset="UTF-8">
    5. <title>CSS学习</title>
    6. <style>
    7. div {
    8. height:40px;
    9. width:400px;
    10. margin-top:10px;
    11. }
    12. </style>
    13. </head>
    14. <body>
    15. <divstyle="border:2px solid #333333;border-radius: 10px;"></div>
    16. <divstyle="border:1px solid #333333;border-bottom-right-radius: 20px;"></div>
    17. <divstyle="border:1px solid #333333;border-bottom-right-radius: 20px;border-top-left-radius: 20px;"></div>
    18. <divstyle="border:1px solid #333333; 100px;height: 100px;border-radius: 30px;"></div>
    19. <divstyle="border:2px solid red;width:80px;height:80px;border-radius:50%;"></div>
    20. </body>
    21. </html>
    练习:实现小米商城闪购

    仅需要实现布局及顶部变宽即可,内部细节不需要实现。

    3.2.2 background 背景

    background用于设置标签背景,关于background的常用功能有:

    • background-color,设置背景颜色
    • backgroud-imgage,设置背景图片
    • background-repeat,背景图片如何重复
    • background-postion,背景图片位置

    1. <!DOCTYPE html>
    2. <htmllang="en">
    3. <head>
    4. <metacharset="UTF-8">
    5. <title>CSS学习</title>
    6. <style>
    7. .search {
    8. display:inline-block;width:40px;height:40px;
    9. border:1px solid #9d9d9d;
    10. background-image: url("https://images.cnblogs.com/cnblogs_com/wupeiqi/662608/o_sousuo1.adc352a.png");
    11. background-size:16px16px;
    12. background-repeat:no-repeat;
    13. background-position:50%50%;
    14. }
    15. .car {
    16. display:inline-block;width:32px;height:32px;
    17. border:1px solid #9d9d9d;
    18. background-image: url("https://images.cnblogs.com/cnblogs_com/wupeiqi/662608/o_5.png");
    19. background-repeat:no-repeat;
    20. background-position:-105px-110px;
    21. }
    22. .phone {
    23. display:inline-block;width:24px;height:24px;
    24. border:1px solid #9d9d9d;
    25. background-image: url("https://images.cnblogs.com/cnblogs_com/wupeiqi/662608/o_5.png");
    26. background-repeat:no-repeat;
    27. background-position:-154px-176px;
    28. }
    29. </style>
    30. </head>
    31. <body>
    32. <aclass="search"></a>
    33. <aclass="car"></a>
    34. <aclass="phone"></a>
    35. </body>
    36. </html>

    小米商城中的logo是基于背景图片实现。

    3.2.3 cursor 光标

    cursor指鼠标放在标签上之后显示的形状。

    1. <!DOCTYPE html>
    2. <htmllang="en">
    3. <head>
    4. <metacharset="UTF-8">
    5. <title>CSS学习</title>
    6. </head>
    7. <body>
    8. <ahref="#">你是谁?</a>
    9. <div>我是你永远的得不到的爸爸。</div>
    10. <divstyle='cursor: pointer;'>我去你麻辣个鸡。</div>
    11. <divstyle='cursor: help;'>你是个傻吊吗?。</div>
    12. <divstyle='cursor: move;'>不,我是个傻爹?。</div>
    13. </body>
    14. </html>

    3.2.5 position 定位

    position用于对屏幕上的标签进行定位,定位相关知识点可以分为两种:

    • position:fixed,生成绝对定位的元素,相对于浏览器窗口进行定位。例如最常见的广告位和返回顶部,都是基于它来实现。

      1. <!DOCTYPE html>
      2. <htmllang="en">
      3. <head>
      4. <metacharset="UTF-8">
      5. <title>CSS学习</title>
      6. <style>
      7. body{
      8. margin:0;
      9. }
      10. .back-top{
      11. width:45px;
      12. height:45px;
      13. border:1px solid #dddddd;
      14. background-color: white;
      15. position:fixed;
      16. right:2px;
      17. bottom:100px;
      18. font-size:12px;
      19. text-align: center;
      20. color:#757575;
      21. }
      22. .back-top img{
      23. display: block;
      24. width:20px;
      25. margin:3pxauto;
      26. }
      27. </style>
      28. </head>
      29. <body>
      30. <divstyle="height:48px;background-color: black"></div>
      31. <divstyle="height:500px;background-color:#f5f5f5;"></div>
      32. <divstyle="height:500px;background-color: white;"></div>
      33. <divstyle="height:500px;background-color:#f5f5f5;"></div>
      34. <divclass="back-top">
      35. <imgsrc="https://images.cnblogs.com/cnblogs_com/wupeiqi/662608/o_backtop.png"alt="">
      36. 回顶部
      37. </div>
      38. </body>
      39. </html>
    • position:absolute ,生成绝对定位的元素,相对于特定第一个父元素进行定位,常与position:relative结课使用。例如:想要让某标签相对某指定标签位置显示。

       

      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 ul {
      30. list-style: none;
      31. padding:0;
      32. margin:0;
      33. }
      34. .header .menus ul li {
      35. float: left;
      36. }
      37. .header .menus a,.header .account a,.header .car a {
      38. text-decoration: none;
      39. display:inline-block;
      40. padding:05px;
      41. }
      42. .header .menus .app {
      43. position: relative;
      44. }
      45. .header .menus .app .download {
      46. padding:10px;
      47. background-color: white;
      48. border:1px solid #dddddd;
      49. position: absolute;
      50. left:5px;
      51. top:40px;
      52. }
      53. .header .menus .app .download img {
      54. display: block;
      55. width:80px;
      56. height:80px;
      57. }
      58. .header .menus .app .download div {
      59. margin-top:5px;
      60. line-height:20px;
      61. text-align: center;
      62. }
      63. .header .car a {
      64. display:inline-block;
      65. height:40px;
      66. padding:015px;
      67. margin-left:20px;
      68. background-color:#424242;
      69. }
      70. </style>
      71. </head>
      72. <body>
      73. <divclass="header">
      74. <divclass="container">
      75. <divclass="menus">
      76. <ul>
      77. <li><a>小米商城</a></li>
      78. <li><a>MIUI</a></li>
      79. <li><a>IoT</a></li>
      80. <li><a>云服务</a></li>
      81. <liclass="app">
      82. <a>下载app</a>
      83. <divclass="download">
      84. <imgsrc="https://images.cnblogs.com/cnblogs_com/wupeiqi/662608/o_20130809170025.png"alt="">
      85. <div>快来扫码下载</div>
      86. </div>
      87. </li>
      88. <li><a>规则协议</a></li>
      89. </ul>
      90. </div>
      91. <divclass="car right"><a>购物车(0)</a></div>
      92. <divclass="account right">
      93. <a>登录</a>
      94. <a>注册</a>
      95. <a>消息通知</a>
      96. </div>
      97. <divstyle="clear: both;"></div>
      98. </div>
      99. </div>
      100. </body>
      101. </html>

    总结:如果在使用absolute定位时,找不到特定的父级标签,absolute根据整个页面大小的进行定位。

    • fixed,只能根据浏览器窗口进行定位,将标签固定在浏览器窗口的某个位置。
    • absolute,可结合relative实现相对定位;也可单独使用,将标签固定页面的某个位置。
    扩展应用:后台管理布局

    position中的定位也常用于后台管理布局。

    1. <!DOCTYPE html>
    2. <htmllang="en">
    3. <head>
    4. <metacharset="UTF-8">
    5. <title>CSS学习</title>
    6. <style>
    7. body {
    8. margin:0;
    9. }
    10. .header {
    11. height:48px;
    12. background-color:#499ef3;
    13. }
    14. .body .menu{
    15. position:fixed;
    16. top:48px;
    17. left:0;
    18. bottom:0;
    19. width:220px;
    20. border-right:1px solid #dddddd;
    21. overflow: scroll;
    22. }
    23. .body .content{
    24. position:fixed;
    25. top:48px;
    26. right:0;
    27. bottom:0;
    28. left:225px;
    29. /* 超出范围的话,出现滚轮 */
    30. overflow: scroll;
    31. }
    32. </style>
    33. </head>
    34. <body>
    35. <divclass="header"></div>
    36. <divclass="body">
    37. <divclass="menu"></div>
    38. <divclass="content"></div>
    39. </div>
    40. </body>
    41. </html>
    练习:小米商城扫码&返回顶部

    3.2.4 opacity 透明度

    给标签设置透明度,例如:常见的加载、登录框等显示都是基于它实现。

    实现思路:

    • 基于z-index属性把页面分为三层:最底层是文章、中间层是黑色遮罩、最上层是登录框。

    • 为中间的黑色遮罩设置透明度,否则无法看到最底层,透明度值范围:0~1,越大越不透明,例如:

      1. filter:alpha(opacity=50);/* IE */
      2. -moz-opacity:0.5;/* 老版Mozilla */
      3. -khtml-opacity:0.5;/* 老版Safari */
      4. opacity:0.5;/* 支持opacity的浏览器*/
    案例:对话框示例代码

    1. <!DOCTYPE html>
    2. <htmllang="en">
    3. <head>
    4. <metacharset="UTF-8">
    5. <title>Title</title>
    6. <style>
    7. body{
    8. margin:0;
    9. }
    10. .container{
    11. width:980px;
    12. margin:0auto;
    13. }
    14. .header{
    15. height:48px;
    16. background-color:#499ef3;
    17. }
    18. .shade{
    19. position:fixed;
    20. top:0;
    21. bottom:0;
    22. left:0;
    23. right:0;
    24. background-color: black;
    25. opacity:0.7;
    26. }
    27. .login{
    28. width:400px;
    29. height:300px;
    30. background-color: white;
    31. border:1px solid #dddddd;
    32. position:fixed;
    33. top:60px;
    34. left:50%;
    35. margin-left:-200px;
    36. }
    37. </style>
    38. </head>
    39. <body>
    40. <divclass="header"></div>
    41. <divclass="body">
    42. <divclass="container"style="text-align: center">
    43. <imgsrc="https://images.cnblogs.com/cnblogs_com/wupeiqi/662608/o_big_girl.png"alt="">
    44. </div>
    45. </div>
    46. <!--遮罩层-->
    47. <divclass="shade"></div>
    48. <!--登录框-->
    49. <divclass="login">
    50. <h2style="text-align: center">用户登录</h2>
    51. </div>
    52. </body>
    53. </html>

    3.2.6 hover 伪类

    hover伪类作用:当鼠标放在标签上时,可以能够设置一些样式。

    • 示例1:鼠标放在标签上方,标签特殊显示。

      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. .left {
      13. float: left;
      14. }
      15. .container {
      16. width:980px;
      17. margin:0auto;
      18. }
      19. .header {
      20. height:40px;
      21. line-height:40px;
      22. background-color:#333;
      23. color:#b0b0b0;
      24. font-size:12px;
      25. }
      26. .header .menus ul {
      27. list-style: none;
      28. padding:0;
      29. margin:0;
      30. }
      31. .header .menus ul li {
      32. float: left;
      33. }
      34. .header .menus a{
      35. text-decoration: none;
      36. display:inline-block;
      37. padding:05px;
      38. color:#b0b0b0;
      39. }
      40. .header .menus a:hover{
      41. color: white;
      42. background-color:#424242;
      43. }
      44. </style>
      45. </head>
      46. <body>
      47. <divclass="header">
      48. <divclass="container">
      49. <divclass="menus left">
      50. <ul>
      51. <li><ahref="#">小米商城</a></li>
      52. <li><ahref="#">MIUI</a></li>
      53. <li><ahref="#">IoT</a></li>
      54. <li><ahref="#">云服务</a></li>
      55. </ul>
      56. </div>
      57. <divstyle="clear: both;"></div>
      58. </div>
      59. </div>
      60. </body>
      61. </html>
    • 示例2:鼠标放在标签上方,显示额外菜单。

      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 ul {
      30. list-style: none;
      31. padding:0;
      32. margin:0;
      33. }
      34. .header .menus ul li {
      35. float: left;
      36. }
      37. .header .menus a,.header .account a,.header .car a {
      38. text-decoration: none;
      39. display:inline-block;
      40. padding:05px;
      41. }
      42. .header .menus .app {
      43. position: relative;
      44. }
      45. .header .menus .app .download {
      46. padding:10px;
      47. background-color: white;
      48. border:1px solid #dddddd;
      49. position: absolute;
      50. left:5px;
      51. top:40px;
      52. display: none;
      53. }
      54. .header .menus .app .download img {
      55. display: block;
      56. width:80px;
      57. height:80px;
      58. }
      59. .header .menus .app .download div {
      60. margin-top:5px;
      61. line-height:20px;
      62. text-align: center;
      63. }
      64. .header .car a {
      65. display:inline-block;
      66. height:40px;
      67. padding:015px;
      68. margin-left:20px;
      69. background-color:#424242;
      70. }
      71. .header .menus .app:hover .download{
      72. display: block;
      73. }
      74. </style>
      75. </head>
      76. <body>
      77. <divclass="header">
      78. <divclass="container">
      79. <divclass="menus">
      80. <ul>
      81. <li><a>小米商城</a></li>
      82. <li><a>MIUI</a></li>
      83. <li><a>IoT</a></li>
      84. <li><a>云服务</a></li>
      85. <liclass="app">
      86. <a>下载app</a>
      87. <divclass="download">
      88. <imgsrc="https://images.cnblogs.com/cnblogs_com/wupeiqi/662608/o_20130809170025.png"alt="">
      89. <div>快来扫码下载</div>
      90. </div>
      91. </li>
      92. <li><a>规则协议</a></li>
      93. </ul>
      94. </div>
      95. <divclass="car right"><a>购物车(0)</a></div>
      96. <divclass="account right">
      97. <a>登录</a>
      98. <a>注册</a>
      99. <a>消息通知</a>
      100. </div>
      101. <divstyle="clear: both;"></div>
      102. </div>
      103. </div>
      104. </body>
      105. </html>

    3.2.7 after 伪元素

    after伪元素作用:在自己内部标签底部设置元素。

    • 示例1:在标签后面设置文字。

      1. <!DOCTYPE html>
      2. <htmllang="en">
      3. <head>
      4. <metacharset="UTF-8">
      5. <title>CSS学习</title>
      6. <linkrel="shortcut icon"href="img/favicon.ico">
      7. <style>
      8. li:after{
      9. content:'戴帽子';
      10. color: green;
      11. font-weight:500;
      12. }
      13. </style>
      14. </head>
      15. <body>
      16. <ul>
      17. <li>王宝强</li>
      18. <li>陈羽凡</li>
      19. <li>贾乃亮</li>
      20. </ul>
      21. </body>
      22. </html>
    • 示例2:在标签后添加标签,解决float脱离文档流的问题,不用再额外手动添加标签了。
      学习after伪元素之后,再处理脱离文档流的问题时候,只需要为父标签应用 clearfix样式即可(严重推荐)。

      1. <!DOCTYPE html>
      2. <htmllang="en">
      3. <head>
      4. <metacharset="UTF-8">
      5. <title>CSS学习</title>
      6. <style>
      7. .clearfix:after{
      8. content:'';
      9. display: block;
      10. clear: both;
      11. }
      12. .row{
      13. background-color: pink;
      14. }
      15. .item{
      16. float: left;
      17. width:100px;
      18. height:50px;
      19. border:1px solid red;
      20. }
      21. </style>
      22. </head>
      23. <body>
      24. <divclass="row clearfix">
      25. <divclass="item"></div>
      26. <divclass="item"></div>
      27. </div>
      28. <divstyle="background-color: goldenrod;"class="clearfix">
      29. <divstyle="float: left;">向左走</div>
      30. <divstyle="float: right;">向右走</div>
      31. </div>
      32. </body>
      33. </html>

    3.3 今日作业

    实现小米商城首页所有功能(无需实现最底部功能)。

    http://www.mi.com

    作者:华王 博客:https://www.cnblogs.com/huahuawang/
  • 相关阅读:
    absorb|state|
    confessed to doing|conform|confined|entitle|
    relieved|auction|calculate|campaign|charge for |chartered
    worship|spurs|drowns out|frauds|expell|spray with|deposit|moist|gave a sigh
    discount the possibility|pessimistic|bankrupt|
    every|each|the用于姓氏的复数形式|comrades-in-arms|clothes are|word|steel|affect|effect
    Measures of Center
    2020年会分享
    source insight 4.0的基本使用方法
    opencv doc学习计划
  • 原文地址:https://www.cnblogs.com/huahuawang/p/14745321.html
Copyright © 2011-2022 走看看