当前位置:   article > 正文

用html写一个以table承载的可伸缩悬浮窗_网页悬浮窗代码

网页悬浮窗代码

前言: 

最近web 的css模块快讲完了,每周例行的周一实验课开始,只是这节课的实验内容有点不同于往常,这里是第一次用到了悬浮窗进行html页面的设计。

首先思路是从上周的课程“定位”入手,发现只是用position的fixed值在浏览器窗口建立一个悬浮窗的设计并不能实现我的展开效果,这说明老师开始悄悄上难度了,结合之前学过的浮动和盒子模型,我设计了以下以table格式展开的悬浮窗的模型。

css 代码:

  1. .header{
  2. background-image: url("img/Mountain.jpg");
  3. height: 200px;
  4. }
  5. .sidebar{
  6. background-color:aqua;
  7. width: 240px;
  8. height: 400px;
  9. margin-bottom: 500px;
  10. float: left;
  11. }
  12. .toolbox{
  13. background-color:brown;
  14. width: 200px;
  15. height: 400px;
  16. position: fixed;
  17. left: 97%;
  18. }
  19. .toolbox:hover{
  20. left:91%;
  21. }
  22. .content{
  23. float:left;
  24. width: 82%;
  25. margin-left: 2%;
  26. }
  27. .block{
  28. float: left;
  29. background-color: chartreuse;
  30. width:900px;
  31. height: 600px;
  32. margin: 3px;
  33. padding: 20px 0px;
  34. display: flex;
  35. justify-content: center;
  36. align-items: center;
  37. }
  38. .block img{
  39. height: 550px;
  40. }
  41. .menu-container {
  42. position: fixed;
  43. top:170px;
  44. width: 300px;
  45. height: 30px;
  46. display:flex;
  47. }
  48. .menu{
  49. background-color: plum;
  50. position:relative;
  51. width:50px;
  52. height: 30px;
  53. margin: 0px;
  54. overflow: hidden;
  55. z-index: 0;
  56. }
  57. .menu th{
  58. background-color:purple;
  59. }
  60. .menu td{
  61. background-color: pink;
  62. }
  63. .menu:hover{
  64. width: 85px;
  65. height: 85px;
  66. margin-right: -35px;
  67. position: relative;
  68. z-index: 1;
  69. }
  70. .footer{
  71. background-color: darkgreen;
  72. text-align: center;
  73. }

代码详解: 

悬浮窗展开的效果可以用div父元素嵌套三个div (div里面是table)来进行总体框架的建设。

要进行展示的项可以用th表头进行书写,注意要进行对齐的话要colspan两个空格,因为下面要进行展开的td标签有两列,不扩展的话第一行会有一个空格,从而使三个表头的项不对齐。

要实现隐藏的效果,就是把宽高设置的小一点,只能显示一个表头所能显示的项,然后overflow用hidden就能实现隐藏。

展开的话就用嵌套里面的类的伪类hover改变他的宽和高,然后注意要使在展开的时候其他的项不动,要计算好隐藏时的宽高和展开时的宽高的差值,用一个负的margin进行弥补,从而实现展开而不动的效果。

注意图层也要改变,改成z-index : 1,在最上层显示,否则会和当前图层的元素有冲突,被当前图层的元素覆盖掉。

最后,还要注意要实现水平排列三个项的需求的话,要使用display的flex布局进行排列。

HTML代码:

  1. <!DOCTYPE html>
  2. <html lang="en" dir="ltr">
  3. <head>
  4. <meta charset="utf-8">
  5. <title>史诗级定位</title>
  6. <link rel="stylesheet" href="b.css">
  7. <style media="screen">
  8. * {
  9. margin: 0px;
  10. padding: 0px;
  11. font-size: 20px;
  12. }
  13. </style>
  14. </head>
  15. <body>
  16. <div class="header">
  17. <!-- <img src="img/Mountain.jpg" alt=""> -->
  18. </div>
  19. <div class = "menu-container">
  20. <div class = "menu">
  21. <table >
  22. <tr>
  23. <th align="left" colspan="2"> 盲盒</th>
  24. </tr>
  25. <tr>
  26. <td >小猫</td> <td>小猫</td>
  27. </tr>
  28. <tr>
  29. <td>小猫</td> <td>小猫</td>
  30. </tr>
  31. </table>
  32. </div>
  33. <div class = "menu">
  34. <table >
  35. <tr>
  36. <th align="left" colspan="2"> 盲盒</th>
  37. </tr>
  38. <tr>
  39. <td >小猫</td> <td>小猫</td>
  40. </tr>
  41. <tr>
  42. <td>小猫</td> <td>小猫</td>
  43. </tr>
  44. </table>
  45. </div>
  46. <div class = "menu">
  47. <table >
  48. <tr><th align="left" colspan="2"> 盲盒</th></tr>
  49. <tr>
  50. <td >小猫</td> <td>小猫</td>
  51. </tr>
  52. <tr>
  53. <td>小猫</td> <td>小猫</td>
  54. </tr>
  55. </table>
  56. </div>
  57. </div>
  58. <div class="container">
  59. <div class="toolbox">
  60. <ul>
  61. <li><img src="img/bookBtnRed.png" alt="">这是一个菜单</li>
  62. <li><img src="img/bookBtnRed.png" alt="">这是一个菜单</li>
  63. <li><img src="img/bookBtnRed.png" alt="">这是一个菜单</li>
  64. </ul>
  65. </div>
  66. <div class="sidebar">
  67. hahah
  68. </div>
  69. <div class="content">
  70. <div class="block">
  71. <img src="img/Mountain.jpg" alt="">
  72. </div>
  73. <div class="block">
  74. <img src="img/Mountain.jpg" alt="">
  75. </div>
  76. <div class="block">
  77. <img src="img/Mountain.jpg" alt="">
  78. </div>
  79. <div class="block">
  80. <img src="img/Mountain.jpg" alt="">
  81. </div>
  82. </div>
  83. <div style="clear:both;"></div>
  84. </div>
  85. <div class="footer">
  86. 欢迎来到猫猫之家 xx & yy 喵~
  87. </div>
  88. </body>
  89. </html>

总结: 

 最后说下总结吧,当时小草老师说发明css的人简直是个天才的时候真的还不能完全理解他的意思,一个很简单的样式的效果有什么神乎其神,现在写多了慢慢发现其实这是用编程的面向对象的方法对html的网页进行设计,面对一个板块,可以进行分工,可以进行纵向的某个模块的延深,可以专门对一个特定的效果进行分层次的设计(从这点上来说,是艺术不过分),同时呢css能把最基本的展示效果和html的标签的语义分开来进行专门的设计,分工合作我觉得的确清晰明了。盒子模型的确还有很多函待开发的地方,相信会开出更多更可爱的猫猫盲盒。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/110399
推荐阅读
相关标签
  

闽ICP备14008679号