随着越来越大的浏览器的出现及普及,网站界面如何能满足不同分辨率浏览器使用者的浏览需求,逐渐成为前端开发工程师必须面对的问题。目前国内门户很多都进行了改版,采用目前的主流–960px左右的宽度。 我认为,对于不太复杂的网站,采用百分比进行架构是个不错的主意。自适应布局的应用面还是蛮多的,比如论坛页面、博客页面等。以往我们进行这类架构都是使用table表格。但,其实使用很小的技术就可以创建出符合WEB标准化的自适应布局。 这里需要的用到的技术关键点就一则:负边距。 【简单的布局】 OK。 我们现在开始。假设现在需要给自己的博客重新制作前台,界面的设计已经完成,就差代码架构。我们希望博客的界面可以做到:左侧的主要部分是博客文章内容, 这部分需要在不同分辨率浏览器下自适应宽度;而右侧是侧边栏,这部分我们想做成一个固定250px宽,预期效果图如下: 使用负边距创建自适应宽度的流体布局。 这是个典型的两栏布局,我们来做一个初步的架构 [task]<div id=”header”>顶部区域</div> <div id=”mainer”> <h1>使用负边距创建自适应宽度的流体布局</h1> <p> 随着越来越大的浏览器的出现及普及,网站界面如何能满足不同分辨率浏览器使用者的浏览需求,逐渐成为前端开发工程师必须面对的问题。采用百分比进行架构是 个不错的主意。以往我们进行这类架构都是使用table表格。但,其实使用很小的技术就可以创建出符合WEB标准化的自适应布局。</p> </div> <div id=”sideBar”> <h2>最新文章</h2> <ul> <li>最新文章一</li> <li>最新文章二</li> <li>最新文章三</li> </ul> </div> <div id=”footer”>底部区域</div> [/task] 这是在没有样式表的情况下页面的显示效果。下面我们给它加上基本的样式表 [task]body,p,h1,h2,ul { margin:0;padding:0; } #header { background-color: #A8A754; } #footer { background-color: #A8A754; clear: both; } #mainer { width: 100%; margin-right: -250px; float: left; } #sideBar { float: right; width: 250px; } [task] 定义mainer右边距为-250px,使得右边得以空出侧边栏的宽度,放置侧边栏。加上样式表页面请查看测试页面二。OK,现在我们看到左侧的内容区域已经为侧边栏空出了相应的空间,使得侧边栏放置在了它应该出现的位置。 【去除重叠部分】 我们这时会发现,左侧的文字内容部分却和侧边栏有重叠。这时候我们需要另外的一个DIV层,来将左侧文字部分设置一个足够大的右边距,使其不与侧边栏重叠。并将左侧内容部分与侧边栏部分设置不同背景色,以示区分。 [task]<div id=”mainer”> <div id=”main”> <h1>使用负边距创建自适应宽度的流体布局</h1> <p> 随着越来越大的浏览器的出现及普及,网站界面如何能满足不同分辨率浏览器使用者的浏览需求,逐渐成为前端开发工程师必须面对的问题。采用百分比进行架构是 个不错的主意。以往我们进行这类架构都是使用table表格。但,其实使用很小的技术就可以创建出符合WEB标准化的自适应布局。</p> </div> </div> [/task] 增加的CSS [task]#sideBar { color: #FFF; background-color: #36361A; } #main { margin-right: 250px; background-color: #616030; } [/task] 【自适应高度】 这时候我们又发现了一个问题:如果左侧长度继续加长,那么,右侧侧边栏的下部会出现空白。我们希望可以实现视觉上的左右两栏自适应等高。 这里我们可以给外层的mainer DIV设置一个右对齐纵向重复的背静图片,图片的宽度我们设置为250px,即同侧边栏宽度相同。 使用负边距创建自适应宽度的流体布局 - 爱许彩的一切 - 爱 ASP.NET 2.0 CSS部分我们加上 [task]#mainer { background: url(bj1.jpg) repeat-y right bottom; } [/task] 多数时候我们并不想设置全部宽度为浏览器的宽度,多数时候我们会设置小于屏幕宽度的百分比。这种情况下,我们可以在左侧内容及右侧侧边栏外再套一个DIV层,并在侧边栏下加上一个清除浮动的层,来达到我们的目的。这个时候我们的XHTML会是下面这个样子。 [task]<div id=”header”>顶部区域</div> <div id=”wrapper” class=”mid”> <div id=”mainer”> <div id=”main”> <h1>使用负边距创建自适应宽度的流体布局</h1> <p> 随着越来越大的浏览器的出现及普及,网站界面如何能满足不同分辨率浏览器使用者的浏览需求,逐渐成为前端开发工程师必须面对的问题。采用百分比进行架构是 个不错的主意。以往我们进行这类架构都是使用table表格。但,其实使用很小的技术就可以创建出符合WEB标准化的自适应布局。</p> <p> 随着越来越大的浏览器的出现及普及,网站界面如何能满足不同分辨率浏览器使用者的浏览需求,逐渐成为前端开发工程师必须面对的问题。采用百分比进行架构是 个不错的主意。以往我们进行这类架构都是使用table表格。但,其实使用很小的技术就可以创建出符合WEB标准化的自适应布局。</p> <p> 随着越来越大的浏览器的出现及普及,网站界面如何能满足不同分辨率浏览器使用者的浏览需求,逐渐成为前端开发工程师必须面对的问题。采用百分比进行架构是 个不错的主意。以往我们进行这类架构都是使用table表格。但,其实使用很小的技术就可以创建出符合WEB标准化的自适应布局。</p> <p> 随着越来越大的浏览器的出现及普及,网站界面如何能满足不同分辨率浏览器使用者的浏览需求,逐渐成为前端开发工程师必须面对的问题。采用百分比进行架构是 个不错的主意。以往我们进行这类架构都是使用table表格。但,其实使用很小的技术就可以创建出符合WEB标准化的自适应布局。</p> </div> </div> <div id=”sideBar”> <h2>最新文章</h2> <ul> <li>最新文章一</li> <li>最新文章二</li> <li>最新文章三</li> </ul> </div> <div class=”clear”></div> </div> <div id=”footer”>底部区域</div> [/task] 相应的CSS [task]#wrapper {width: 92%;} .clearing {clear: both;} .mid {margin:0 auto;} [/task] Ryan Brill 在他的文章里说,外层的wrapper与里面的mainer两个DIV都应该设置背景 background,以便解决IE里的一个BUG。但我这里只设置了mainer DIV的背景,在IE6、IE7、FF里并未发现错误。可能他指的是IE5.x,这里忽略。 【进阶,三栏布局】 掌握了以上的方法,我们会发现制作一个三栏的布局也是很简单的!OK。下面我们把上面的例子变下,我们需要一个三栏的布局,2侧为固定宽度,中部为自适应宽度。这仅需要增加一点DIV。 [task]<div id=”header” class=”mid”>顶部区域</div> <div id=”wrapper” class=”mid”> <div id=”mainer”> <div id=”main”> <div id=”leftBar”> <h2>栏目标题</h2> <ul> <li>文章标题</li> <li>文章标题</li> <li>文章标题</li> </ul> </div> <div id=”inmain”> <h1>使用负边距创建自适应宽度的流体布局</h1> <p> 随着越来越大的浏览器的出现及普及,网站界面如何能满足不同分辨率浏览器使用者的浏览需求,逐渐成为前端开发工程师必须面对的问题。采用百分比进行架构是 个不错的主意。以往我们进行这类架构都是使用table表格。但,其实使用很小的技术就可以创建出符合WEB标准化的自适应布局。</p> <p> 随着越来越大的浏览器的出现及普及,网站界面如何能满足不同分辨率浏览器使用者的浏览需求,逐渐成为前端开发工程师必须面对的问题。采用百分比进行架构是 个不错的主意。以往我们进行这类架构都是使用table表格。但,其实使用很小的技术就可以创建出符合WEB标准化的自适应布局。</p> <p> 随着越来越大的浏览器的出现及普及,网站界面如何能满足不同分辨率浏览器使用者的浏览需求,逐渐成为前端开发工程师必须面对的问题。采用百分比进行架构是 个不错的主意。以往我们进行这类架构都是使用table表格。但,其实使用很小的技术就可以创建出符合WEB标准化的自适应布局。</p> <p> 随着越来越大的浏览器的出现及普及,网站界面如何能满足不同分辨率浏览器使用者的浏览需求,逐渐成为前端开发工程师必须面对的问题。采用百分比进行架构是 个不错的主意。以往我们进行这类架构都是使用table表格。但,其实使用很小的技术就可以创建出符合WEB标准化的自适应布局。</p> </div> </div> </div> <div id=”sideBar”> <h2>最新文章</h2> <ul> <li>最新文章一</li> <li>最新文章二</li> <li>最新文章三</li> </ul> </div> <div class=”clear”> </div> </div> <div id=”footer” class=”mid”>底部区域</div> [/task] 以及另外一个背景图片 CSS部分增加: [task]#main { margin-right: 250px; background: url(bj2.jpg) #616030 repeat-y left bottom; } #leftBar { float: left; width: 150px; } #inmain { margin-left: 150px; } [/task]

转载于:https://www.cnblogs.com/asqq/archive/2012/09/16/3194937.html

使用负边距创建自适应宽度的流体布局相关推荐

  1. 3.CSS布局奇淫巧计之-强大的负边距【转】

    css中的负边距(negative margin)是布局中的一个常用技巧,只要运用得合理常常会有意想不到的效果.很多特殊的css布局方法都依赖于负边距,所以掌握它的用法对于前端的同学来说,那是必须的. ...

  2. CSS布局奇淫巧计之-强大的负边距

    负的边距好像能减小元素在文档流中的尺寸一样,但事实上,它的尺寸大小并没变,只是文档流在计算元素位置的时候,会认为负边距把元素的尺寸减小了,因此位置也就发生变化了. 实例: 因为P为block元素且没有 ...

  3. css布局:左边固定宽度,右边自适应宽度或右侧固定,左侧自适应三种方法

    方法一:浮动布局 这种方法我采用的是左边浮动,右边加上一个margin-left值,让他实现左边固定,右边自适应的布局效果 HTML Markup <div id="left" ...

  4. 高度等于动态宽度(CSS流体布局)

    本文翻译自:Height equal to dynamic width (CSS fluid layout) [duplicate] This question already has an answ ...

  5. CSS之左定宽度右自适应宽度并且等高布局

    一.两列布局:左边固定宽度,右边自适应宽度 方法1:浮动布局 采用的是左边浮动,右边加上一个margin-left值,让他实现左边固定,右边自适应的布局效果 HTML: CSS: 上面这种实现方法最关 ...

  6. CSS3与页面布局学习笔记(四)——页面布局大全(负边距、双飞翼、多栏、弹性、流式、瀑布流、响应式布局)

    一.负边距与浮动布局 1.1.负边距 所谓的负边距就是margin取负值的情况,如margin:-100px,margin:-100%.当一个元素与另一个元素margin取负值时将拉近距离.常见的功能 ...

  7. CSS 布局实例系列(三)如何实现一个左右宽度固定,中间自适应的三列布局——也聊聊双飞翼

    文章转自:http://www.cnblogs.com/honoka/p/5161836.html 今天聊聊一个经典的布局实例: 实现一个三列布局,其中左侧和右侧的部分宽度固定,中间部分宽度随浏览器宽 ...

  8. CSS 布局实例系列(三)如何实现一个左右宽度固定,中间自适应的三列布局——也聊聊双飞翼...

    今天聊聊一个经典的布局实例: 实现一个三列布局,其中左侧和右侧的部分宽度固定,中间部分宽度随浏览器宽度的变化而自适应变化 可能很多朋友已经笑了,这玩意儿通过双飞翼布局就能轻松实现.不过,还请容我在双飞 ...

  9. CSS 圣杯布局升级版---多个固定宽度一个自适应宽度

    1.一个div固定,一个div自适应宽度.两种情况,固定在左或者在右. HTML: <div class="box1"><div class="main ...

最新文章

  1. mysql 忽略语法错误_MYSQL语句中易忽略的语法错误 | 学步园
  2. D3-栈[Java数据结构和算法]
  3. python创建文件并写入-python新建txt文件,并逐行写入数据
  4. 【原拼】从/etc/inetd.conf学习服务(1)
  5. WordPress更新时提示无法连接到FTP服务器的解决方案
  6. ajax提交后立刻刷新,Ajax提交表单页面刷新很快的解决方法
  7. 我积累的数据库操作类(ASP.NET)
  8. 数据类型介绍和表的创建
  9. Bootstrap组件_警告框
  10. 技术总监谈好的程序员如何写代码
  11. LeetCode OJ 160. Intersection of Two Linked Lists
  12. android开发自动提示框,Android 多种简单的弹出框样式设置代码
  13. 延迟上班别发愁,远程办公抗疫情!
  14. C#dataGridView字体显示设置
  15. HDU 5009 Paint Pearls
  16. CSC7156 SOP-7
  17. 网络安全应急响应-流量分析技术
  18. The connection to the server 192.168.229.131:6443 was refused - did you specify the right host or po
  19. SQL server-数据库的查询(高级)
  20. office 365 ppt创意操作2

热门文章

  1. 关于国土空间规划的价值的一些思考
  2. 基因结构显示服务器,服务器固定结构 Server fixed structure
  3. 为什么要 conda 作用_烤箱预热有什么作用?为什么烘焙一定要预热烤箱?怎么正确预热?...
  4. 小学教师计算机应用水平和能力,中小学教师信息技术应用能力的现状与对策
  5. Android设置Alpha值实现图片渐变效果
  6. rudesocket如何使用_c++ socket 客户端库 socks5 客户端 RudeSocket™ Open Source C++ Socket Library...
  7. JAVA8的新特性之函数式接口
  8. hdu 5833 Zhu and 772002 (高斯消元)
  9. Python之数据类型总结
  10. 易信推专线电话 通话双方中只需一方安装即可免费通话