白天有知友邀请回答“如何规范布局网页结构”的问题,知乎上这类问题还挺多,我认为单就深入了解布局规范都足够说上一个月的,今天我就不论大范围,挑选小米网站首页的部分区块布局来讲解吧!

​ 下面是小米官网的首页,很多人一看到这样的网页就傻眼,不知道咋弄,要么就随性布局,要么就干看着,其实遇到问题首先一点就是不要慌,先分析,将你认为难的问题拆分成多个问题区块,还解决不了就再拆分,直到变成能解决的小问题,一个个解决那些小问题最终大问题也就搞定了。咱们布局网页前也是一样套路,先分析整体的架构,画出布局图将大块拆分为小块,这样会更加直观看到网页的布局结构。我大致上用线框将网页内容划分为四个区块:顶部导航条区域topnav(蓝色线框)、头部分类导航区域header(绿色线框),主体内容区域main(紫色线框)、网页底部信息区域foot(橘色线框)。

注意:在初学不知道如何布局时建议使用画图工具做辅助分析。且并非只有这一种区块划分方式,布局有很多种,我只从其中挑一种来写,讲不完=_=||

这里我是按照整体网页的内容进行区块划分的:(每个线框都为一个标签盒子)

  • topnav(顶部导航区域):从整体布局来看,topnav展示的内容都是小米网站下所有类别的子产品导航,而小米网站的首页主题是商城(直接展示电子类产品),它跟主题不符,所以这块区域单独划分出来。整体区块使用nav标签,考虑兼容性的话就使用div标签。
  • header(头部分类信息导航区域):这块区域主要包含不同商品的分类导航和其他的服务导航,和主题也不太相符。轮播和轮播下方图片因为位置原因,打开该网页第一眼看见的就是这部分区块,即便其中也包含商品,但更多的是具有广告位的性质,这里就单独划分出header区块。整体区块使用header标签,考虑兼容性的话就使用div标签。
  • main(主体内容区域):小米首页下小米商城的主题内容区域,也是整体网页面积最广的区块(实在不知道定主体内容区块时也可以根据面积比重来划分,最大的那块一定是主题中心),布局的重复性很高。整体区块使用main标签,考虑兼容性的话就使用div标签。
  • footer(网页底部信息区域):这部分几乎没啥好说的,展示的都是网站特色、网站信息,也单独划分一个块。整体区块使用footer标签,考虑兼容性的话就使用div标签。

代码如下:(考虑兼容IE)

<div id="pagewrap"><div id="page-topnav"></div> <!--导航区域--><div id="page-header"></div> <!--头部分类信息导航区域--><div id="page-main"></div> <!--主体内容区域--><div id="page-footer"></div> <!--网页底部信息区域-->
</div>

这样咱们就将网页划分为四大块了,看起来难度是不是比之前要小一点了呢?那下一步就是将各个区块看做单个的整体,对它进行分析再拆分。

topnav布局分析

  • 红色线框:顶部导航栏区域()
  • 黄色线框:内容盒子
  • 蓝绿色线框:左右两块列表区域

​ 如下布局图所示,顶部导航栏区域中,内容盒子宽度在1226px,水平居中,其内部又分为左右两块列表区域和一个div盒子(购物车),都包含着文字链接。

对应标签结构代码:

<div id="page-topnav"><div class="container"><ul class="topbar"><li><a href="#">小米商城</a></li><li><a href="#">小米商城</a></li><li><a href="#">小米商城</a></li><li><a href="#">小米商城</a></li><li><a href="#">小米商城</a></li><li><a href="#">小米商城</a></li><li><a href="#">小米商城</a></li><li><a href="#">小米商城</a></li><li><a href="#">小米商城</a></li><li><a href="#">小米商城</a></li><li><a href="#">小米商城</a></li><li><a href="#">小米商城</a></li></ul><ul class="info"><li><a href="#">登录</a></li><li><a href="#">登录</a></li><li><a href="#">登录</a></li></ul><div class="cart"><a href="#">购物车</a></div></div>
</div>
<!--文字内容我懒的写,复制粘贴的,自己私下练习记得一个个敲-->

标签搭建好结构还需要搭配css来使用,这里顺便把相关的css技巧我也讲一些。 .container(黄色线框)本身就是一个块级元素,不改变元素类型的前提下实现水平居中有以下几种方式:

  • 第一种:(当前场景下推荐使用这种居中方式
#page-topnav .container{       width:1226px;      margin:0 auto;
}

使用margin:auto实现自动计算达到水平居中,注意这种居中方式作用对象必须是块级标签,且有固定的宽度才可以实现

  • 第二种:
#page-topnav .container{       position: relative;       left: 50%;       width: 1226px;       margin-left: -613px;
}

使用相对定位,通过设置left让.container向右移动50%的相对距离,再利用负左外边距向左移动自身宽度的一半距离,达到水平居中的效果。参考下图:

两个左右ul分别添加左浮动float:left;和右浮动float:right;就能实现左右对齐。

li中的文本实现水平垂直居中的2种方式:

  • 第一种:
.container .topbar li{       height: 40px; /*盒子高度*/       line-height: 40px; /*行高*/       font-size: 14px; /*文字大小*/       text-align: center; /*盒子内的文本水平居中*/
}

将文本的行高与li盒子高度设为一致,达到文本垂直居中效果。

  • 第二种:
.container .topbar li{       padding: 10px;
}

li添加内边距,实现文本上下左右居中效果,但会造成li高度不固定。所以当前场景下推荐第一种方式

----先分享出来,希望帮到你,有问题可以扣我!临时有事写不完了,后续再更新----

asp.net 网页做一个浮动层_你们要的HTML、CSS布局技巧:如何规范搭建网页架构?相关推荐

  1. asp.net 网页做一个浮动层_【CSS】7 页面布局:浮动

    传统网页的3种布局方式: 普通流(标准流):标签按规定好的默认方式排列 浮动 定位 1.为什么需要浮动 浮动:很多网页布局标准流不能实现的,可以用浮动来做,因为浮动可以改变元素标签的默认排列方式i. ...

  2. css布局方式_收藏!40 个 CSS 布局技巧

    简介:CSS是Web开发中不可或缺的一部分,随着Web技术的不断革新,CSS也变得更加强大.CSS的众多属性你知道了多少?具体开发中该使用什么属性才最适合恰当?如今的一些CSS属性可以让我们节约更多的 ...

  3. 做一个简单网页(做一个简单网页多少钱)

    怎样做一个简易的网页?做一个简单网页多少钱 做一个简易的普通网页比较容易.当然,制作的方法有好几种,有的是直接写代码.有的是用绘图软件绘制页面再导出网页.常用的是使用网页制作软件做网页.下面以普通静态 ...

  4. html送女朋友的网页,做一个网页送给心动女孩子生日礼物(表白也合适)

    如何做一个网页送给女朋友做生日礼物 本文里面涉及到python,HTML ,css,JavaScript的知识,是基于python的flask框架做的一个小型网站,里面可以实现跳转功能,怎么配置fla ...

  5. css删除li 圆点_六种设计难题的CSS实用技巧!

    前言 最近在恶补css的知识,看到<css揭秘>一书,如获至宝.下面节选一部分笔记. 一.扩大按钮的点击范围 对于哪些较小的.难以瞄准的控件来说,如果不能把它的视觉尺寸直接放大,将其可点击 ...

  6. css background 充满自适应_剖析一些经典的CSS布局问题,为前端开发+面试保驾护航...

    一.让一个元素水平垂直居中,到底有多少种方案? 水平居中 对于 行内元素: text-align: center; 对于确定宽度的块级元素: width和margin实现.margin: 0 auto ...

  7. 解决margin塌陷的问题_剖析一些经典的CSS布局问题,为前端开发+面试保驾护航...

    一.让一个元素水平垂直居中,到底有多少种方案? 水平居中 对于 行内元素: text-align: center; 对于确定宽度的块级元素: width和margin实现.margin: 0 auto ...

  8. python做一个小游戏_利用python做个小游戏

    从本期开始,我们将利用几天的时间用python来做个小游戏,当然,在做小游戏之前,我们必须学会一个做小游戏的第三方库--pygame.可能有人会说,python不擅长或者说不适合用来做游戏,的确是这样 ...

  9. 如何做一个mysql数据库_如何创建一个简单的mysql数据库

    这篇文章主要介绍了操作MySQL日志的一些方法,对日志的删除操作做了重点讲解,需要的朋友可以参考下. 一.创建数据库 注:已经安装好mysql. windows下运行cmd进入命令窗口,本人用的是wi ...

最新文章

  1. 卡耐基梅隆大学提出新型「自适应」技术,可提高「个性化神经机器翻译」质量...
  2. python技巧 使用值来排序一个字典
  3. java swing预览pdf_java – 如何使用iText将Swing组件绘制为PDF文件?
  4. Day04:循环结构(while、do-while、for)
  5. mysql 复制协议_一种基于ISER协议的MySQL数据库复制方法与流程
  6. 【JAVA】poi操作,excel读取数据。
  7. 5.16 BScroll页面切换滑动失效,点击事件冒泡(未绑定click也会监听click),transition-group动画特例,BScroll未激活不允许任何事件调用,类的实例和对象
  8. 服务器如何装linux 系统教程,教程/操作系统 手把手教你装Linux系统
  9. 古琴怎么学——【唐畅古琴】
  10. outlook导入服务器邮件,OUTLOOK怎么导入邮件?
  11. 学习指南!双非渣本Android四年磨一剑,终局之战
  12. SubShader中的LOD
  13. After trying to increase PLL frequency, system shows the error: “Device may be operating in low-powe
  14. 不忘初心,勇攀高峰!低代码公司流辰信息紧抓机遇,努力超前冲!
  15. cmd查看python库命令_怎么用命令查看python的库
  16. 国内Android源码下载
  17. 进制与IP地址的转换
  18. VS2017 如何打包软件
  19. 苹果5s农历显示订阅服务器,苹果5s怎么显示农历,苹果5S怎样设置阴历呢?
  20. 计算机黑屏故障的原因及解决方法,电脑黑屏原因及解决方法

热门文章

  1. LeetCode简单题之按键持续时间最长的键
  2. C ++基本输入/输出
  3. Python数据挖掘:绘制直方图,设置上下限和步长,绘制子图
  4. ERROR: Failed to resolve: com.android.support:appcompat-v7:29.0.0
  5. Object.defineProperty()
  6. node.js(四)小结
  7. django系列 1 :python+django环境搭建 +mac提示找不到manage.py命令
  8. HttpUrlConnection底层实现和关于java host绑定ip即时生效的设置及分析
  9. 第一学期网络技术知识总汇
  10. 团队作业4——第一次项目冲刺(Alpha版本)4.28