本文转载自:http://www.cnblogs.com/jscode/archive/2012/08/28/2660078.html

  今天再写一个布局的时候用到一个margin-top是负值的情况,本来不是要用负值,但突然发现负值也能达到我要的效果,随后百度了一下,才发现了大牛的好文章,转载至此,算是学习一个经验,进行记录,同样也给分享给没看到的同学。

  以下是正文

  负数给人总是一种消极、否定、拒绝之感,不过有时利用负margin可以达到奇妙的效果,今天就表一表负值在页面布局中的应用。这里说的负值主要指的是负margin。

  关于负margin的原理建议大家看看这篇文章:http://www.cnblogs.com/2050/archive/2012/08/13/2636467.html#2457812

  本文不讲原理,主要展示几个应用。

  一、左右列固定,中间列自适应布局

此例适用于左右栏宽度固定,中间栏宽度自适应的布局。由于网页的主体部分一般在中间,很多网页都需要中间列优先加载,而这种布局刚好满足此需求。

  HTML:

  1. <div class="main">
  2. <div class="main_body">Main</div>
  3. </div>
  4. <div class="left">Left</div>
  5. <div class="right">Right</div>

    CSS:

  1. body{
  2. margin:0;
  3. padding:0;
  4. min-width:600px;
  5. }
  6. .main{
  7. float:left;
  8. width:100%;
  9. }
  10. .main_body{
  11. margin:0 210px;
  12. background:#888;
  13. height:200px;
  14. }
  15. .left,.right{
  16. float:left;
  17. width:200px;
  18. height:200px;
  19. background:#F60;
  20. }
  21. .left{
  22. margin-left:-100%;
  23. }
  24. .right{
  25. margin-left:-200px;
  26. }

    效果:

  

  

  二、去除列表右边框

此例适用于左右栏宽度固定,中间栏宽度自适应的布局。由于网页的主体部分一般在中间,很多网页都需要中间列优先加载,而这种布局刚好满足此需求。

  HTML:

  1. <div id="test">
  2. <ul>
  3. <li>子元素1</li>
  4. <li>子元素2</li>
  5. <li>子元素3</li>
  6. <li>子元素4</li>
  7. <li>子元素5</li>
  8. <li>子元素6</li>
  9. </ul>
  10. </div>

    CSS:

  1. body,ul,li{ padding:0; margin:0;}
  2. ul,li{ list-style:none;}
  3. #test{
  4. width:320px;
  5. height:210px;
  6. background:#CCC;
  7. }
  8. #test ul{
  9. margin-right:-10px;
  10. zoom:1;
  11. }
  12. #test ul li{
  13. width:100px;
  1. height:100px;
  2. background:#F60;
  3. margin-right:10px;
  4. margin-bottom:10px;
  5. float:left;
  6. }
  1.  

    效果:

三、负边距+定位:水平垂直居中

使用绝对定位将div定位到body的中心,然后使用负margin(content宽高的一半),将div的中心拉回到body的中心,已到达水平垂直居中的效果。

  HTML:

  1. <div id="test"></div>

    CSS:

  1. body{margin:0;padding:0;}
  2. #test{
  3. width:200px;
  4. height:200px;
  5. background:#F60;
  6. position:absolute;
  7. left:50%;
  8. top:50%;
  9. margin-left:-100px;
  10. margin-top:-100px;
  11. }
  1.  

    效果:

四、去除列表最后一个li元素的border-bottom

列表中我们经常会添加border-bottom值,最后一个li的border-bottom往往会与外边框重合,视觉上不雅观,往往要移除。

  HTML:

  1. <ul id="test">
  2. <li>Test</li>
  3. <li>Test</li>
  4. <li>Test</li>
  5. <li>Test</li>
  6. <li>Test</li>
  7. </ul>

    CSS:

  1. body,ul,li{margin:0;padding:0;}
  2. ul,li{list-style:none;}
  3. #test{
  4. margin:20px;
  5. width:390px;
  6. background:#F4F8FC;
  7. border-radius:3px;
  8. border:2px solid #D7E2EC;
  9. }
  10. #test li{
  11. height:25px;
  12. line-height:25px;
  13. padding:5px;
  14. border-bottom:1px dotted #D5D5D5;
  15. margin-bottom:-1px;
  16. }
  1.  

    效果:

五、多列等高

此例关键是给每个框设置大的底部内边距,然后用数值相似的负外边距消除这个高度。这会导致每一列溢出容器元素,如果把外包容器的overflow属性设为hidden,列就在最高点被裁切。

  HTML:

  1. <div id="wrap">
  2. <div id="left">
  3. <p style="height:50px">style="height:50px"</p>
  4. </div>
  5. <div id="center">
  6. <p style="height:100px">style="height:100px"</p>
  7. </div>
  8. <div id="right">
  9. <p style="height:200px">style="height:200px"</p>
  10. </div>
  11. </div>

    CSS:

  1. body,p{
  2. margin:0;
  3. padding:0;
  4. }
  5. #wrap{
  6. overflow:hidden;
  7. width:580px;
  8. margin:0 auto;
  9. }
  10. #left,#center,#right{
  11. margin-bottom:-200px;
  12. padding-bottom:200px;
  13. }
  14. #left {
  15. float:left;
  16. width:140px;
  17. background:#777;
  18. }
  19. #center {
  20. float:left;
  21. width:300px;
  22. background:#888;
  23. }
  24. #right {
  25. float:right;
  26. width:140px;
  27. background:#999;
  28. }
  29. p {color:#FFF;text-align:center}
  1.  

    效果:

[转]关于负margin在页面中布局的应用的更多相关文章

  1. 负值之美:负margin在页面布局中的应用

    本文转载自:http://www.topcss.org/?p=94,有修改. 负数给人总是一种消极.否定.拒绝之感,不过有时利用负margin可以达到奇妙的效果,今天就表一表负值在页面布局中的应用.这 ...

  2. 负margin在页面布局中的应用

    关于负margin的原理建议大家看看这篇文章:http://www.cnblogs.com/2050/archive/2012/08/13/2636467.html#2457812 一. 左右列固定, ...

  3. 负margin一些奇葩的布局技巧

    copy_from_ http://www.hicss.net/i-know-you-do-not-know-the-negative-margin/ <!doctype html> &l ...

  4. 负margin使用权威指南

    自CSS2早在1998年,推荐表的使用已经慢慢褪色成背景和历史书中.正因为如此,CSS布局从那时起一直编码优雅的代名词. 的所有CSS概念设计师所使用,奖项可能需要给负margin的使用是最至少谈论的 ...

  5. 我知道你不知道的负Margin

    现如今,负margin技术的应用可谓越来越广,任一个大型站点惊鸿一瞥之下都会有其身影所在.个人认为负margin技术是学习css路上必不可缺少的课题之一,许多高级应用及疑难杂症修复都可以使用负marg ...

  6. (负)-margin在页面布局中的应用

    有关margin的原理可以看看这篇文章:http://www.cnblogs.com/2050/archive/2012/08/13/2636467.html#2457812 有关margin负值的几 ...

  7. css布局之负margin妙用及其他实现

    相信大家在项目的开发中都遇到过这样的需求,一行放X(X>1)个块且相邻块之间的间距相同. 大概就是上面这个样子,下面介绍几种实现的方式. 1.负margin大法 设置好元素的宽度和留白占满父级的 ...

  8. 负MARGIN之讲解

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

  9. CSS艺术之---负margin之美

    CSS中负边距(nagative margin)是布局中常常使用的一个技巧.仅仅要运用得当时常会产生奇异的效果.勘称CSS中的奇淫巧计,非常多CSS布局方法都依赖于负边距.掌握它对于前端童鞋来说还是非 ...

随机推荐

  1. easyui数据网格视图(Datagrid View)的简单应用

    下面介绍datagrid的数据网格详细视图和数据网格的分组视图 1.先引用的js和css文件 1)包含eauyui必备的四个文件easyui.css,icon.css, jquery-min.js.j ...

  2. ThinkPHP去掉URL中的index.php

    我的环境是apache+ubuntu 1,先确认你有没mod_rewrite.so模块 /usr/lib/apache2/modules/mod_rewrite.so 然后在httpd.conf最后一 ...

  3. 中国快递包裹总量的预测-基于SARIMA模型

    code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...

  4. mysql 数据类型,字符集

    数据类型 1,数值类型2,字符串类型3,日期和时间4,ENUM和SET5,几何数据类型   数据类型选项 unsigned   无负值 zerofill        数值显示有影响,会前置0来填充不 ...

  5. mysql oom之后的page 447 log sequence number 292344272 is in the future

    mysql oom之后,重启时发生130517 16:00:10 InnoDB: Error: page 447 log sequence number 292344272InnoDB: is in ...

  6. C# WM_NCMOUSELEAVE 消息触发

    public static extern bool TrackMouseEvent([In, Out] TRACKMOUSEEVENT lpEventTrack); [DllImport(" ...

  7. Oauth笔记

    上周的工作有安全验证这一块,但不懂,只知道有几个关键字Oauth.secret-key .token.签名等.今天就查下资料做笔记. Oauth是什么 不依靠用户账号和密码就能获得访问资源权限 本质: ...

  8. elasticseach multi-field的实际用途

    下面是multi-field的介绍: multi_field 多域类型允许你对同一个值以映射的方式定义成多个基本类型 core_types . 这个非常有用,比如,如果你定义一个 string 类型的 ...

  9. javascript --- 设计模式之单体模式(二)

    在JavaScript里,实现单例的方式有很多种,其中最简单的一个方式是使用对象字面量的方法,其字面量里可以包含大量的属性和方法: var her = { property1: 'someing', ...

  10. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q66-Q69)

    Question 66You have a custom theme named MyTheme. The theme is defined in a file named MyTheme.thmx. ...