移动端布局知识点
序号 |
名称 |
描述 |
1 |
像素 |
图像显示最小单位,PPI(像素分辨率) |
2 |
DPR |
设备像素比 = 设备像素 / CSS 像素 |
3 |
视口 |
可视窗口 viewport,分布局/视觉/理想三类 |
序号 |
名称 |
描述 |
1 |
布局视口Layout viewport |
设备无关, 通常默认980px,显示完整网页 |
2 |
视觉视口visual viewport |
设备相关,用户手机屏幕可见部分,通过缩放查看全部 |
3 |
理想视口idea viewport |
不必缩放就可查看全部,针对移动端进行布局 |
序号 |
属性值 |
描述 |
1 |
width=device-width |
布局视图 = 视觉视图 |
2 |
initial-scale=1.0 |
视觉视图 = 理想视图 |
HTML
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="icon_font/iconfont.css" />
<link rel="stylesheet" href="css/reset.css" />
<link rel="stylesheet" href="css/header.css" />
<link rel="stylesheet" href="css/footer.css">
<link rel="stylesheet" href="css/main.css">
<title>仿淘宝移动端</title>
</head>
<body>
<!-- 页眉 -->
<header>
<!-- 顶部 -->
<div class="top">
<!-- logo -->
<div class="logo iconfont icon-shejiaotubiao-08"></div>
<!-- 搜索框 -->
<div class="search">
<div class="key">
<span class="iconfont icon-fangdajing"></span>
<span>寻找宝贝店铺</span>
</div>
</div>
</div>
<!-- 轮播图 -->
<div class="slider">
<a href=""><img src="images/banner/banner1.jpg" alt=""></a>
</div>
<!-- 导航组 -->
<ul class="nav">
<li class="item">
<a href=""><img src="images/nav/nav6.png"alt=""></a>
<a href="">天猫新品</a>
</li>
<li class="item">
<a href=""><img src="images/nav/nav3.png" alt=""></a>
<a href="">今日爆款</a>
</li>
<li class="item">
<a href=""><img src="images/nav/nav1.png" alt=""></a>
<a href="">天猫超市</a>
</li>
<li class="item">
<a href=""><img src="images/nav/nav2.png" alt=""></a>
<a href="">充值中心</a>
</li>
<li class="item">
<a href=""><img src="images/nav/nav5.png" alt=""></a>
<a href="">机票酒店</a>
</li>
<li class="item">
<a href=""><img src="images/nav/nav8.png" alt=""></a>
<a href="">金币庄园</a>
</li>
<li class="item">
<a href=""><img src="images/nav/nav7.png" alt=""></a>
<a href="">阿里拍卖</a>
</li>
<li class="item">
<a href=""><img src="images/nav/nav4.png" alt=""></a>
<a href="">分类</a>
</li>
</ul>
</header>
<main>
<div class="goods-nav">
<div class="juhuasuan">
<div class="context ">
<span class="title">聚划算</span>
<a href=""class="pingpaizhekou">
<span>品牌折扣</span>
<img src="images/items/item1.png" alt="">
</a>
<a href="" class="huasuanhaowu">
<span>划算好物</span>
<img src="images/items/item2.png" alt="">
</a>
</div>
</div>
<div class="juhuasuan">
<div class="context">
<span class="title">聚划算</span>
<a href=""class="pingpaizhekou">
<span>品牌折扣</span>
<img src="images/items/item1.png" alt="">
</a>
<a href="" class="huasuanhaowu">
<span>划算好物</span>
<img src="images/items/item2.png" alt="">
</a>
</div>
</div>
<div class="juhuasuan">
<div class="context">
<span class="title">聚划算</span>
<a href=""class="pingpaizhekou">
<span>品牌折扣</span>
<img src="images/items/item1.png" alt="">
</a>
<a href="" class="huasuanhaowu">
<span>划算好物</span>
<img src="images/items/item2.png" alt="">
</a>
</div>
</div>
<div class="juhuasuan">
<div class="context">
<span class="title">聚划算</span>
<a href=""class="pingpaizhekou">
<span>品牌折扣</span>
<img src="images/items/item1.png" alt="">
</a>
<a href="" class="huasuanhaowu">
<span>划算好物</span>
<img src="images/items/item2.png" alt="">
</a>
</div>
</div>
<div class="juhuasuan">
<div class="context">
<span class="title">聚划算</span>
<a href=""class="pingpaizhekou">
<span>品牌折扣</span>
<img src="images/items/item1.png" alt="">
</a>
<a href="" class="huasuanhaowu">
<span>划算好物</span>
<img src="images/items/item2.png" alt="">
</a>
</div>
</div>
<div class="juhuasuan">
<div class="context">
<span class="title">聚划算</span>
<a href=""class="pingpaizhekou">
<span>品牌折扣</span>
<img src="images/items/item1.png" alt="">
</a>
<a href="" class="huasuanhaowu">
<span>划算好物</span>
<img src="images/items/item2.png" alt="">
</a>
</div>
</div>
</div>
<div class="bottom">
<div class="context">
<span style="font-size: 0.2rem; font-weight:0.5rem;margin:0.1rem;">淘宝头条</span>
<span><em style="background-color: coral;color: aliceblue;font-size: normal;border-radius: 0.05rem;padding: auto;margin: auto;">摄影</em>摄影xxxxxxx</span>
</div>
</div>
</main>
<footer>
<div class="item active">
<a href="" class="iconfont icon-shejiaotubiao-44"></a>
</div>
<div class="item">
<a href="" class="iconfont icon-gouwuche"></a>
<a href="">购物车</a>
</div>
<div class="item">
<a href="" class="iconfont icon-wodetaobao"></a>
<a href="">我的淘宝</a>
</div>
</footer>
</body>
</html>
css部分
header {
position: relative;
}
header .top {
width: 100vw;
background-color: coral;
position: fixed;
top: 0;
left: 0;
right: 0;
display: grid;
grid-template-columns: 0.35rem 1fr;
padding: 0.05rem;
/* 调整显示层级 */
z-index: 99;
}
header .top .logo {
color: white;
font-size: 0.25rem;
}
header .top .search {
background-color: orangered;
color: #eee;
display: grid;
place-content: center;
border-radius: 0.05rem;
font-size: small;
}
.slider{
height: 1.25rem;
position: absolute;
top: 0.35rem;
}
.slider img,
.nav img{
width: 100%;
height: 100%;
}
header .nav {
background-color: #fff;
position: absolute;
top: calc(0.35rem + 1.25rem);
display: grid;
grid-template-columns: repeat(5, 1fr);
font-size: 0.11rem;
/* padding: 0.2rem 0.1rem; */
column-gap: 0.05rem;
row-gap: 0.1rem;
margin-top: .06rem;
}
header .nav .item {
display: grid;
place-items: center;
padding: 0.05rem 0.05rem;
}
header .nav .item a {
padding: 0 0.05rem;
}
footer {
width: 100vw;
height: 0.46rem;
background-color: #fff;
position: fixed;
bottom: 0;
left: 0;
right: 0;
display: grid;
grid-template-columns: repeat(3, 1fr);
place-items: center;
}
footer .item {
display: grid;
place-items: center;
}
footer .item .iconfont {
font-size: 0.2rem;
}
footer .item.active .iconfont {
font-size: 0.36rem;
color: coral;
}
main {
position:relative;
}
main .goods-nav{
/* background-color: #fff; */
margin:auto;
position: absolute;
top: calc(0.36rem + 1.3rem + 1.52rem);
display: grid;
grid-template-columns: repeat(2, 1.86rem);
grid-template-rows: repeat(3, 1.26rem);
column-gap: 0.02rem;
}
main .goods-nav .juhuasuan{
background-color: #fff;
}
main .goods-nav .juhuasuan .context{
display: grid;
grid-template-columns: repeat(2,1fr);
grid-template-rows: 0.26rem 1rem;
place-content: center;
place-items: center;
}
main .goods-nav .juhuasuan .context span {
font-weight: bolder;
}
main .goods-nav .juhuasuan .context .title {
grid-column: span 2;
font-size: large;
font-weight: bolder;
place-self: start;
padding: 0 0 0 0.03rem;
margin-left: 0.1rem;
}
main .goods-nav img{
width: 100%;
height: 100%;
}
main .goods-nav .context .pingpaizhekou {
place-self: center;
background-color:rgb(255,127,80,0.2);
border-radius: 0.05rem;
margin-left: 0.1rem;
margin-right: 0.04rem;
}
main .goods-nav .context .pingpaizhekou span{
margin: 0.1rem;
padding: auto;
font-weight: bolder;
/* color: darkpink; */
}
main .goods-nav .context .huasuanhaowu {
place-self: center;
background-color:rgb(255,69,0,0.3);
border-radius: 0.05rem;
margin-left: 0.04rem;
margin-right: 0.1rem;
}
main .goods-nav .context .huasuanhaowu span{
margin: 0.1rem;
padding: auto;
font-weight: bolder;
/* color: darkpink; */
}
main .bottom {
margin: auto;
position: relative;
top:7.03rem;
background-color: #fff;
width: 100%;
height: 0.42rem;
border-radius: 0 0 0.1rem 0.1rem;
}
main .bottom .context{
display: flex;
place-content: start;
place-items: center;
}