当前位置: 首页 > news >正文

仿携程首页项目的静态页面布局项目

布局实现思路项目https://m.ctrip.com/html5/

1.从总体布局分析

body{
	 max-width:540px;
	 min-width:320px;
	 margin: 0  auto;
	 font: normal  14px/1.5 Tahoma, "Lucida  Grande",  Verdana,"Microsoft Yahei",STXihei, hei;
	 color:#000;
	 background:#f2f2f2;
	 overflow-x:hidden;
	 -webkit--webkit-tap-highlight-color:transparent;
}
  • 一般设置最大宽度和最小宽度业界定位540px和320px
  • 实现居中肯定少不了 margin 0  auto;
  • 深度讲解下 -webkit--webkit-tap-highlight-color:transparent;是防止元素点击后发生高亮

2.开始头部search的布局分析

<!DOCTYPE html>
<html>
<head>
    <meta charset="UFT-8">
    <meta name="viewport"  content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible"  content="ie=edge">
    <title>携程网</title>
		<link rel="stylesheet"  href="css/index.css" />
		<link rel="stylesheet"  href="css/normalize.css" />
	</head>
	<body>
		  <div class="search-index">
			  <div class="search">搜索:目的地/酒店/景点</div>
			  <a href="#" class="user">我 的</a>
		  </div>
	</body>
</html>
/* 搜索模块start */
.search-index {
	  display:flex;
	/* 固定定位和父没有关系  以屏幕为准 */
        position:fixed;
		top:0;
		left:50%;
		/* 兼容老版浏览器 */
	    -webkit-transform:translatex(-50%); 
		 /* //偏移50%居中 */
		transform:translatex(-50%);  
		/* 固定盒子应该有宽度 */
		 width:100%;
		 height:44px;
		 max-width:540px;
		 min-width:320px;
		 background-color:#f6f6f6;
		 border-top:1px  solid  #ccc;
		 border-bottom:  1px  solid  #ccc;
		 
		 
}
  • 首先定义一个父div>search-index 由于页面滚动的时候是固定不变的 故而使用位置布局fixed(相对于浏览器窗口)
  • div>search-index居中的话  是使用left:50%  再使用css3的tranlatex:(-50%)  故而达到居中。注意兼容其他浏览器
  • 父div>search-index宽度自然是100%  同时定义最大宽度和最小宽度。设置上边框和下边框

3.搜索框里面的子元素分析

.search{
	position:relative;
	height:26px;
	line-height:24px;
	border:1px solid  #ccc;
	flex:1;
	font-size:12px;
	color:#666;
	padding-left:25px;
	/* //小圆角 */
	border-radius:5px;
	box-shadow: 0 2px  4px  rgba(0,0,0,.2)
}
.search::before{
	content:"";
    position:absolute;
  top:5px;
  left:5px;
	width:15px;
	height:15px;
	background:url(../images/spitea.png)  no-repeat   -59px   -279px;
	background-size:104px  auto;
	
}


.user{
	width:44px;
	height:44px;
	font-size:12px;
	text-align:center;
	color:#2eaae0;
}

/* 找到图片的位置设置大小 */
.user::before {
	content:"";
	display:block;
	width:23px;
	height:23px;
	background:url(../images/spitea.png)  no-repeat   -59px   -194px;
	background-size:104px  auto;
	margin:4px auto    -2px ;
}

/* 搜索模块end */


  • 由于里面(我的)是固定的宽高,右边的输入框是自适应则考虑技术栈flex布局
  • 要实现里面的搜索图片和我的里面的图片使用标签里面的::before元素来实现
  • 一般::before里面的图片实现是2倍图可以在fw里面设置一般的宽度,使用切割工具衡量大小来决定background:url()。。

如下图:

.search::before{
	content:"";
    position:absolute;
  top:5px;
  left:5px;
	width:15px;
	height:15px;
	background:url(../images/spitea.png)  no-repeat   -59px   -279px;
	background-size:104px  auto;
	
}

可以看出一般将元素设置为块状  用before图片三步骤:

  • 将设计图宽度在fw里面修改为一半  使用切割工具衡量
  • 设置background-size:  为原来的一半  auto;
  • 设置background    一半为负的

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++Builder使用经验谈 (转)
  • flex布局详解
  • 看完了Essential c++......
  • vue打包上传到服务器加载慢的优化
  • nginx部署多个 vue项目
  • 转载--中国手机游戏市场焦点分析报告
  • 角色扮演游戏引擎的设计原理--转自MOVE2008
  • flutter指纹识别
  • CC++中,typedef与#define
  • node搭建直播服务器流
  • flutter使用dio上传图片到阿里云Oss存储
  • sizeof终极无惑
  • uniapp图片上传
  • 电子游戏发展史话——《doom启示录》读后感(三)
  • $GOPATH/go.mod exists but should not goland
  • 〔开发系列〕一次关于小程序开发的深度总结
  • 2017 前端面试准备 - 收藏集 - 掘金
  • go append函数以及写入
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Javascript弹出层-初探
  • JavaScript服务器推送技术之 WebSocket
  • Java比较器对数组,集合排序
  • Lucene解析 - 基本概念
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Mysql优化
  • oschina
  • Promise初体验
  • Puppeteer:浏览器控制器
  • SAP云平台里Global Account和Sub Account的关系
  • 程序员该如何有效的找工作?
  • 每天一个设计模式之命令模式
  • 小程序 setData 学问多
  • 小程序开发之路(一)
  • 在weex里面使用chart图表
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (ZT)出版业改革:该死的死,该生的生
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (学习日记)2024.01.19
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • .Mobi域名介绍
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .net core docker部署教程和细节问题
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .net 生成二级域名
  • .Net 中Partitioner static与dynamic的性能对比
  • .NetCore 如何动态路由
  • .NET处理HTTP请求
  • .NET框架设计—常被忽视的C#设计技巧
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .NET中使用Redis (二)