11/14
B/S结构用户界面设计
【实验编号】
10003809548j Web界面设计
【实验学时】
8学时
【实验环境】
l 所需硬件环境为微机;
l 所需软件环境为dreamweaver
【实验内容】
- 本次B/S结构用户界面设计,我参考国外教程,制作了一个咖啡商店网页。
2.界面设计如下:
搜索界面:
登录页和注册页:
侧边导航:
【关键步骤】
- Js + css 控制界面的显示
- <!-- script -->
- <script>
- document.addEventListener('DOMContentLoaded', function (event) {
- // Search =================================//
- document.addEventListener('click', function (event) {
- if (event.target.closest('.nav-search')) {
- document.querySelector('.search-bar').classList.add('search-bar-active');
- } else if (event.target.closest('.search-cancel')) {
- 10. document.querySelector('.search-bar').classList.remove('search-bar-active');
- 11. }
- 12. });
- 13.
- 14. //login and sign up =//
- 15. document.addEventListener('click', function (event) {
- 16. const formElement = document.querySelector('.form');
- 17. //check if the clicked element has the class 'nav-user' or 'already-account'
- 18. if (event.target.closest('.nav-user, .already-account')) {
- 19. formElement.classList.add('login-active');
- 20. formElement.classList.remove('sign-up-active');
- 21. }
- 22.
- 23. //check if the clicked element has the class 'sign-up-btn'
- 24. if (event.target.closest('.sign-up-btn')) {
- 25. formElement.classList.remove('login-active');
- 26. formElement.classList.add('sign-up-active');
- 27. }
- 28.
- 29. //check if the clicked element has the class 'form-cancel'
- 30. if (event.target.closest('.form-cancel')) {
- 31. formElement.classList.remove('login-active');
- 32. formElement.classList.remove('sign-up-active');
- 33. }
- 34. });
- 35.
- 36. // fix header //
- 37. const header = document.querySelector('header');
- 38. let lastScrollY = window.scrollY;
- 39.
- 40. window.addEventListener('scroll', function () {
- 41. const currentScrollY = window.scrollY;
- 42.
- 43. //check if at the top
- 44. if (currentScrollY === 0) {
- 45. header.classList.remove('header-fix');
- 46. } else if (currentScrollY < lastScrollY) {
- 47. header.classList.add('header-fix');
- 48. } else {
- 49. header.classList.remove('header-fix');
- 50. }
- 51. lastScrollY = currentScrollY;
- 52. });
- 53. });
54. </script>
- 55.
- 利用css制作响应式布局
- @media(max-width: 1200px) {
- .footer-container {
- display: grid;
- grid-template-columns: 1fr 1fr;
- grid-gap: 40px;
- }
- 10. #download-app {
- 11. width: 90%;
- 12. }
13. }
- 14.
15. @media(max-width: 1100px) {
- 16. .popular-container {
- 17. grid-template-columns: 1fr;
- 18. }
- 19.
- 20. .popular-banner-img {
- 21. max-height: 500px;
- 22. }
23. }
- 24.
25. @media(max-width: 1024px) {
- 26. .recent-product-container {
- 27. grid-template-columns: 1fr 1fr 1fr;
- 28. grid-gap: 20px;
- 29. }
- 30.
- 31. #download-app {
- 32. flex-direction: column;
- 33. height: 100%;
- 34. background-color: transparent;
- 35. margin: 30px auto;
- 36. max-width: 100%;
- 37. }
- 38.
- 39. .app-img {
- 40. height: 450px;
- 41. width: 220px;
- 42. }
- 43.
- 44. .download-app-text {
- 45. max-width: 100%;
- 46. background-color: var(--product-bg-color);
- 47. padding: 20px;
- 48. margin-top: 20px;
- 49. display: flex;
- 50. flex-direction: column;
- 51. justify-content: center;
- 52. align-items: center;
- 53. text-align: center;
- 54. border-radius: 20px;
- 55. }
- 56.
- 57. .main-content {
- 58. display: flex;
- 59. flex-direction: column-reverse;
- 60. }
- 61.
- 62. .main-content-img {
- 63. max-height: 60vh;
- 64. }
- 65.
- 66. .main-content-text {
- 67. margin-top: 30px;
- 68. max-width: 100%;
- 69. width: 100%;
- 70. text-align: center;
- 71. justify-content: center;
- 72. align-items: center;
- 73. }
- 74.
- 75. .main-content-text p {
- 76. max-width: 400px;
- 77. margin: auto;
- 78. }
- 79.
- 80. .main-content-text h1 {
- 81. font-size: 2rem;
- 82. line-height: 2.4rem;
- 83. }
- 84.
- 85. .main-content-text a {
- 86. padding: 0px 20px;
- 87. }
88. }
- 89.
90. @media(max-width:850px) {
- 91.
- 92. .blog-container {
- 93. grid-template-columns: 1fr 1fr;
- 94. }
- 95.
- 96. .blog-box {
- 97. display: flex;
- 98. flex-direction: column;
- 99. }
- #partner {
- margin-top: 20px;
- justify-content: center;
- grid-gap: 30px;
- }
- #partner img {
- height: 40px;
- }
- #shopping-banner {
- padding: 20px;
- }
- .shopping-banner-container {
- display: flex;
- flex-direction: column-reverse;
- }
- .shopping-banner-img {
- height: auto;
- width: 90%;
- }
- .shopping-banner-img img {
- width: 100%;
- }
- .shopping-banner-text {
- width: 90%;
- margin-top: 30px;
- max-width: 100%;
- }
- .navigation {
- padding: 20px;
- justify-content: space-between;
- align-items: center;
- }
- .logo img {
- max-height: 30px;
- }
- header .header-fix .navigation {
- padding: 10px 20px;
- }
- }
- @media(max-width: 724px) {
- .recent-product-container,
- .popular-product-container {
- grid-template-columns: 1fr 1fr;
- grid-gap: 20px;
- }
- .blog-container {
- grid-template-columns: 1fr;
- }
- .login-form,
- .sign-up-form {
- width: 90%;
- }
- .search-input {
- height: 60px;
- }
- .search-input input,
- .search-cancel {
- font-size: 1.4rem;
- }
- }
- @media(max-width: 550px) {
- .footer-container {
- grid-template-columns: 1fr;
- }
- .service-box {
- width: 100%;
- }
- }
- @media(max-width:320px) {
- .recent-product-container,
- .popular-product-container {
- grid-template-columns: 1fr;
- }
- .download-btns {
- flex-direction: column;
- }
- .download-btns a {
- margin: 4px 0px;
- width: 140px;
- }
- .download-btns a img {
- width: 100%;
- }
- .download-app-text strong {
- font-size: 1.3rem;
- }
- }
【实验体会】
通过本次实验,我有幸设计并实现了一款咖啡商店的网站,这一过程不仅加深了我对HTML5中各种标签的理解,还让我熟练掌握了如何运用CSS来美化和布局网页样式以下是我在实验中的几点体会:
1. 我通过CSS对网站进行了细致的美化,包括响应式布局设计,以确保网站在不同设备上都能提供良好的用户体验。此外,我还学习了如何使用CSS选择器和伪类来精细化控制页面元素的样式。
2. 利用JavaScript,我实现了页面元素的动态显示和隐藏,以及用户交互的即时反馈。这不仅增强了网站的交互性,也提升了用户的参与度
通过这次实验,我不仅提升了自己的技术能力,也对前端开发有了更深入的认识。我期待将这些知识应用到未来的项目中,为用户创造更加丰富和便捷的在线体验。

浙公网安备 33010602011771号