html+css仿写小米商城

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

一、成果展示:

小米商城仿写

二、仿写前准备:

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

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

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

三、html头部准备:

1、html的seo优化

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

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

<link rel="stylesheet" href="./reset.css"><link rel="stylesheet" href="./index.css"><link rel="stylesheet" href="./font_3319021_0ltsnnymlpio/iconfont.css"><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使元素消失不存在,过渡效果无法给不存在的元素使用。

.ScarUnder {/* display: none; */position: absolute;top: 40px;right: 0px;z-index: 30;width: 330px;height: 0;overflow: hidden;text-align: center;line-height: 100px;font-size: 16px;box-shadow: 0 2px 10px rgb(0,0,0,.3);color: rgb(66,66,66);background-color: #fff;transition: height .3s;
}.Scar:hover .ScarUnder {/* display: block; */height: 100px;
}

    这里使用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

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

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

解决:

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

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

这里有个重点,绝对定位盒子在其具有定位父元素或者浏览器的水平布局由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;会占有原来的位置,但是绝对定位盒子不占有位置,所以不影响文档流布局。

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

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

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/32690.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HTML+CSS+JavaScript仿写的小米官网

HTML部分 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-Compatible" cont…

练习篇:仿写 Instagram 列表

前面已经讲解了一些常用的布局方式、常用 Widget 组件以及 Dart 语法。那么这节课我们就来一个小总结,通过一个实例小页面来复习巩固我们之前学过的知识,理论结合实践。本课练习篇主要是完成一个完整的页面的编写,将会涉及到前面学习过的布局 Widget 和组件 Widget ,一起来…

web前端之百度首页仿写

<html> <head> <meta charset"UTF-8"> <title>百度一下&#xff0c;你就知道</title> </head> <body> <table border"0" width"100%" height"900px"> <tr height"20%"&…

模板模式 ——仿写JdbcTemplate

在模板模式&#xff08;Template Pattern&#xff09;中&#xff0c;一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现&#xff0c;但调用将以抽象类中定义的方式进行。这种类型的设计模式属于行为型模式。 介绍 意图&#xff1a;定义一个操作中…

PHP仿写网站,仿写php中文网移动端首页—2019年9月10日

仿写php中文网移动端首页 身体&#xff1a; 布局原则: 宽度自适应, 高度是固定的。 最小宽度320&#xff0c;最大768px&#xff0c;上下外边距为0&#xff0c;左右居中&#xff0c;垂直方向滚动条&#xff0c;不脱离文档流&#xff0c;不出现水平滚动条 头部&#xff1a; 生成绝…

仿写简单IOC

目录 TestController类: UserService类: 核心代码SpringIOC&#xff1a; Autowired和Component注解 SpringIOCTest 类 ​编辑 总结&#xff1a; TestController类: Component public class TestController {Autowiredprivate UserService userService;public void test…

SpringMVC简单仿写

之前我分享过SpringMVC的基本原理与配置&#xff08;原文链接&#xff1a;https://blog.csdn.net/L170311/article/details/129339120&#xff09;,为了更深层次的学习&#xff0c;精益求精&#xff0c;手动仿写了一个MVC原理实现demo&#xff0c;一起学习一下吧 结构目录&…

Netty :仿写微信 IM 即时通讯系统

前言 最近公司要自研聊天系统,开始撸代码… 仿微信IM系统简介 (1)客户端使用Netty程序实现逻辑 解析控制台指令(譬如发送消息或者建立群聊等指令)->基于控制台输入创建指令对象->协议的编码(通过自定义二进制协议将指令对象封装成二进制); 接收服务端数据拆包粘包处理…

python如何仿写文章_tensorflow - RNN学习文章的风格去仿写

1 . 能干什么 在知乎&#xff0c;博客上面会看到有人分享自己的一些有意思的项目&#xff0c;比如下面这些&#xff0c;用rnn学习一个诗歌&#xff0c;散文&#xff0c;党章&#xff0c;小说什么的。然后&#xff0c;在自己生成一些东西。比如&#xff0c;下面的这两个例子。作…

html仿写百度,vue 简单仿写百度搜索

vue .grey{ background: #CCC; height: 25px; } ul,li{ margin: 0; padding: 0; list-style-type:none; margin-left: 65px; width: 306px; } .dialog{ margin-left: 10px; margin-top: 30px; width: 300px; height: 25px; } .note{ margin-left: 130px; } window.οnlοadfunc…

html搜狐热搜列表仿写,GRE高分范文不能看过就算 学会仿写才能带来真正提高

可以说所有的写作都是从模仿开始。GRE作文同样不例外。通过参考他人的好文章&#xff0c;学习别人的写法&#xff0c;最后写出自己的文章是非常实用的作文学习方式。不过&#xff0c;模仿也需要讲究方法&#xff0c;单纯模仿并不会让大家有太多的收获。掌握方法才能有效提升自身…

PHP仿写网站,手机网站仿写0910

最近有点儿忙,这个作业交的有点儿晚了,但这个作业是看了老师讲解后一口气写出来的代码,不像以前的作业要反复的看老师的课件才完成的。通过这一段前端知识的学习我最大的收获就是学会用开发者工具去看一个网站的代码了,可以看懂大多数的网页的静态代码了,会逐步的分析一个…

绕过接口参数签名验证

在一些关键业务接口,系统通常会对请求参数进行签名验证,一旦篡改参数服务端就会提示签名校验失败。在黑盒渗透过程中,如果没办法绕过签名校验,那么就无法进一步深入。 微信小程序的前端代码很容易被反编译,一旦签名加密算法和密钥暴漏,找到参数的排序规则,那么就可以篡改…

在Mac电脑中轻松打开终端程序的快捷方法

命令行窗口实际就是我们常用的终端程序&#xff0c;命令行窗口在高级用户上&#xff0c;是经常用到的&#xff0c;但在Mac电脑中打开终端程序是比较麻烦的&#xff0c;下面分享几个快捷方法可以轻松打开终端程序。 方法一、 1、在Mac键盘上按住commandspace&#xff0c; 2、在…

【mac】关于终端上使用的快捷键

【mac】关于终端上使用的快捷键 清理行&#xff1a;您可以使用Ctrl U清理到开头。清理线路&#xff1a;Ctrl E Ctrl U擦拭终端中的当前线路清理线路&#xff1a;Ctrl A Ctrl K擦拭终端中的当前线路取消当前的命令行/行&#xff1a;Ctrl C。调用已删除的命令&#xff1a;Ctrl Y&…

mac之把打开终端设置快捷键为Ctrl+Alt+T

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程 1、在Automator.app中创建一个AppleScript Finder&#xff0d;>应用程序->Automator打开Automator.app&#xff0c;打开Automator后…

【苹果推群发iMessage推】软件安装它起首将消息发送到Apple Push服务器,而后Apple Push服务器将消息发送到装配了应用程序的手机

推荐内容IMESSGAE相关 作者推荐内容iMessage苹果推软件 *** 点击即可查看作者要求内容信息作者推荐内容1.家庭推内容 *** 点击即可查看作者要求内容信息作者推荐内容2.相册推 *** 点击即可查看作者要求内容信息作者推荐内容3.日历推 *** 点击即可查看作者要求内容信息作者推荐…

ios13快捷指令怎么设置

在ios13系统中新增了很多值得一提的功能&#xff0c;可以帮助更加简单化的使用iphone手机&#xff0c;而在手机上也可以实现喊一句就能帮你进入该功能&#xff0c;那么ios13快捷指令怎么设置呢&#xff1f;下面就为大家带来ios13快捷指令设置方法&#xff0c;想知道的一起来了解…

IOS中通过快捷捷径打开场所码或者健康码

说明 本文标题其实应该叫“使用快捷捷径打开任意微信小程序页面”&#xff0c;因为本质上这篇文章就是说明如何在获取微信小程序任意界面的页面路径&#xff0c;以及通过Universal link在微信中打开对应页面的方法&#xff08;本文使用“跨时空”APP来达到此目的&#xff09;。…