当前位置:   article > 正文

html+css仿写小米商城_html+css3仿写网页

html+css3仿写网页

    利用空余时间仿写了一个小米商城的页面,都是最基础的结构和样式的写法,主要想锻炼自己写代码的能力和熟悉一下PC端网页的布局。等学完其他知识再来做补充。这里先记录一下我的仿写思路,以免忘记。

一、成果展示:

小米商城仿写

二、仿写前准备:

1、将模块分类,使用html5新标签

2、确定版心宽度以及位置

3、观察动态效果,能够使用css做出来的有:鼠标移入、过渡、表单获取焦点

三、html头部准备:

1、html的seo优化

  1. <!-- seo优化 -->
  2. <!-- 1.标题 -->
  3. <title>小米商城 - Xiaomi 11 Ultra、Redmi K40 Pro、MIX FOLD,小米电视官方网站</title>
  4. <!-- 2.网站说明 -->
  5. <meta name="description" content="小米官网直营小米公司旗下所有产品,包括Xiaomi手机系列Xiaomi 11 Ultra、MIX FOLD,Redmi 红米系列Redmi Note 9、Redmi K40 Pro,小米电视、笔记本、米家智能家居等,同时提供小米客户服务及售后支持." />
  6. <!-- 3.关键字 -->
  7. <meta name="keywords" content="Xiaomi,redmi,Xiaomi11 Ultra,Redmi Note 9,Xiaomi MIX Alpha,小米商城" />

2、html引入外联样式以及字体图标

  1. <link rel="stylesheet" href="./reset.css">
  2. <link rel="stylesheet" href="./index.css">
  3. <link rel="stylesheet" href="./font_3319021_0ltsnnymlpio/iconfont.css">
  4. <link rel="shortcut icon" href="./favicon.ico">

四、下面对网页各个模块进行描述

1、hearder模块

083c1000c12043acad0e1bacc815398a.png

     我将header模块内容分为三个盒子,利用浮动在一行显示,(注意清除浮动,防止父元素高度塌陷)盒子之间的距离用margin挤开(其他模块盒子的处理方式一样)。导航栏部分书写方式为 li+a,关于a的使用范围,如果不仅是a标签的内容,在空白部分也具有链接作用,则需要将a标签display:block / inline-block进行转换,可设置宽高,增大链接使用范围。

补充(高度塌陷解决办法):

1、给父元素设置高度;

2、给父元素增加 overflow:hidden(具有定位盒子的祖先元素慎用);

3、利用clear:both(此方法有一点深度,先会用)。

注:这里有两个下拉框,且都具有过渡效果,如下图:

0dcd4a0f57ad4e298e75845757164e33.png

30d6a83d20974fc78d04293669add450.png

     下拉框与鼠标经过的元素为父子关系或者兄弟关系,能够用css选择器选出即可。这里下拉框使用绝对定位确定位置,主要作用:①不占位置,不影响文档流;②可以提高定位盒子层级,让下拉框在页面最上面显示。

过渡效果:

1、transition:需要过渡的属性 花费的时间(必要两个属性值)

2、谁过渡给谁加这个属性

3、需要了解过渡与display:none不可一起使用。display:none使元素消失不存在,过渡效果无法给不存在的元素使用。

  1. .ScarUnder {
  2. /* display: none; */
  3. position: absolute;
  4. top: 40px;
  5. right: 0px;
  6. z-index: 30;
  7. width: 330px;
  8. height: 0;
  9. overflow: hidden;
  10. text-align: center;
  11. line-height: 100px;
  12. font-size: 16px;
  13. box-shadow: 0 2px 10px rgb(0,0,0,.3);
  14. color: rgb(66,66,66);
  15. background-color: #fff;
  16. transition: height .3s;
  17. }
  18. .Scar:hover .ScarUnder {
  19. /* display: block; */
  20. height: 100px;
  21. }

    这里使用height: 0;overflow: hidden; 思路:先将盒子高度设为0,此时盒子虽然高度为0但仍然存在于页面中;用overflow:hidden隐藏盒子里的内容,实现完全隐藏盒子。在鼠标经过其父元素或者兄弟元素时,将其高度设置为100px,此时下拉框完全显示并且具有过渡效果。

2、nav模块

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAZmluZTE5OThf,size_20,color_FFFFFF,t_70,g_se,x_16

题外话: 对于我来说,这里的下拉框有一些难度,经过思考后成功解决了,还是挺有成就感的,嘿嘿。

难点:此下拉框也有过渡效果,并且有一个全屏跨度的上边框。

解决:

  1. .center .box {
  2. /* 父盒子center无定位,上一级定位在浏览器 */
  3. /*绝对盒子水平方向布局九个值等于父亲的width */
  4. position: absolute;
  5. top: 100px;
  6. left: 0;
  7. z-index: 33;
  8. width: 100%;
  9. /* 3.过渡效果所包含的属性 */
  10. height: 0;
  11. /* 1.下拉框内容隐藏 */
  12. overflow: hidden;
  13. /* 2.整个下拉框不可见,但是占位置,这里是绝对定位 */
  14. visibility: hidden;
  15. background-color: #fff;
  16. box-sizing: border-box;
  17. padding: 0px;
  18. /* 阴影处理 */
  19. box-shadow: 0 2px 2px rgba(0,0,0,.3);
  20. border-top: 1px solid rgb(224,224,224);
  21. /* 5.过渡 */
  22. transition: all .5s;
  23. }
  24. .center .box ol {
  25. width: 1245px;
  26. margin: 0 auto;
  27. }
  28. .center>li:first-child:hover .box {
  29. /* 4.整个下拉框可见也可以做过渡效果 */
  30. visibility: visible;
  31. height: 240.8px;
  32. }

①首先子绝父相确定下拉框位置,这里为使下拉框宽度等于浏览器宽度,我以浏览器为准定位。

这里有个重点,绝对定位盒子在其具有定位父元素或者浏览器的水平布局由left margin-left border-left  padding-left width padding-right  border-right  margin-right  right九个值决定,因此定绝对位盒子的盒子width:100%时,其宽度等于它具有定位父元素或者浏览器的宽度。

②添加过渡效果

这里的重点是仅使用height: 0;overflow: hidden;不能将下拉框的上边框隐藏,需要同时用 visibility: hidden;虽然 visibility: hidden;会占有原来的位置,但是绝对定位盒子不占有位置,所以不影响文档流布局。

    其实以上就是我遇到的比较难的问题,其他主要就是盒子的布局问题,也不知道会不会有人看,写的东西也不深,如果真有小伙伴看,可以写下你的读后感,我们一起查漏补缺呀。如果有什么问题,欢迎在评论区写下你的问题,我们一起思考。

    谢谢观看,如果有个小赞赞就更好啦,嘿嘿~

 

 

 

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

闽ICP备14008679号