[转]关于负margin在页面中布局的应用
本文转载自: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:
- <div class="main">
- <div class="main_body">Main</div>
- </div>
- <div class="left">Left</div>
- <div class="right">Right</div>
CSS:
- body{
- margin:0;
- padding:0;
- min-width:600px;
- }
- .main{
- float:left;
- width:100%;
- }
- .main_body{
- margin:0 210px;
- background:#888;
- height:200px;
- }
- .left,.right{
- float:left;
- width:200px;
- height:200px;
- background:#F60;
- }
- .left{
- margin-left:-100%;
- }
- .right{
- margin-left:-200px;
- }
效果:
二、去除列表右边框
此例适用于左右栏宽度固定,中间栏宽度自适应的布局。由于网页的主体部分一般在中间,很多网页都需要中间列优先加载,而这种布局刚好满足此需求。
HTML:
- <div id="test">
- <ul>
- <li>子元素1</li>
- <li>子元素2</li>
- <li>子元素3</li>
- <li>子元素4</li>
- <li>子元素5</li>
- <li>子元素6</li>
- </ul>
- </div>
CSS:
- body,ul,li{ padding:0; margin:0;}
- ul,li{ list-style:none;}
- #test{
- width:320px;
- height:210px;
- background:#CCC;
- }
- #test ul{
- margin-right:-10px;
- zoom:1;
- }
- #test ul li{
- width:100px;
- height:100px;
- background:#F60;
- margin-right:10px;
- margin-bottom:10px;
- float:left;
- }
效果:
三、负边距+定位:水平垂直居中
使用绝对定位将div定位到body的中心,然后使用负margin(content宽高的一半),将div的中心拉回到body的中心,已到达水平垂直居中的效果。
HTML:
- <div id="test"></div>
CSS:
- body{margin:0;padding:0;}
- #test{
- width:200px;
- height:200px;
- background:#F60;
- position:absolute;
- left:50%;
- top:50%;
- margin-left:-100px;
- margin-top:-100px;
- }
效果:
四、去除列表最后一个li元素的border-bottom
列表中我们经常会添加border-bottom值,最后一个li的border-bottom往往会与外边框重合,视觉上不雅观,往往要移除。
HTML:
- <ul id="test">
- <li>Test</li>
- <li>Test</li>
- <li>Test</li>
- <li>Test</li>
- <li>Test</li>
- </ul>
CSS:
- body,ul,li{margin:0;padding:0;}
- ul,li{list-style:none;}
- #test{
- margin:20px;
- width:390px;
- background:#F4F8FC;
- border-radius:3px;
- border:2px solid #D7E2EC;
- }
- #test li{
- height:25px;
- line-height:25px;
- padding:5px;
- border-bottom:1px dotted #D5D5D5;
- margin-bottom:-1px;
- }
效果:
五、多列等高
此例关键是给每个框设置大的底部内边距,然后用数值相似的负外边距消除这个高度。这会导致每一列溢出容器元素,如果把外包容器的overflow属性设为hidden,列就在最高点被裁切。
HTML:
- <div id="wrap">
- <div id="left">
- <p style="height:50px">style="height:50px"</p>
- </div>
- <div id="center">
- <p style="height:100px">style="height:100px"</p>
- </div>
- <div id="right">
- <p style="height:200px">style="height:200px"</p>
- </div>
- </div>
CSS:
- body,p{
- margin:0;
- padding:0;
- }
- #wrap{
- overflow:hidden;
- width:580px;
- margin:0 auto;
- }
- #left,#center,#right{
- margin-bottom:-200px;
- padding-bottom:200px;
- }
- #left {
- float:left;
- width:140px;
- background:#777;
- }
- #center {
- float:left;
- width:300px;
- background:#888;
- }
- #right {
- float:right;
- width:140px;
- background:#999;
- }
- p {color:#FFF;text-align:center}
效果:
[转]关于负margin在页面中布局的应用的更多相关文章
- 负值之美:负margin在页面布局中的应用
本文转载自:http://www.topcss.org/?p=94,有修改. 负数给人总是一种消极.否定.拒绝之感,不过有时利用负margin可以达到奇妙的效果,今天就表一表负值在页面布局中的应用.这 ...
- 负margin在页面布局中的应用
关于负margin的原理建议大家看看这篇文章:http://www.cnblogs.com/2050/archive/2012/08/13/2636467.html#2457812 一. 左右列固定, ...
- 负margin一些奇葩的布局技巧
copy_from_ http://www.hicss.net/i-know-you-do-not-know-the-negative-margin/ <!doctype html> &l ...
- 负margin使用权威指南
自CSS2早在1998年,推荐表的使用已经慢慢褪色成背景和历史书中.正因为如此,CSS布局从那时起一直编码优雅的代名词. 的所有CSS概念设计师所使用,奖项可能需要给负margin的使用是最至少谈论的 ...
- 我知道你不知道的负Margin
现如今,负margin技术的应用可谓越来越广,任一个大型站点惊鸿一瞥之下都会有其身影所在.个人认为负margin技术是学习css路上必不可缺少的课题之一,许多高级应用及疑难杂症修复都可以使用负marg ...
- (负)-margin在页面布局中的应用
有关margin的原理可以看看这篇文章:http://www.cnblogs.com/2050/archive/2012/08/13/2636467.html#2457812 有关margin负值的几 ...
- css布局之负margin妙用及其他实现
相信大家在项目的开发中都遇到过这样的需求,一行放X(X>1)个块且相邻块之间的间距相同. 大概就是上面这个样子,下面介绍几种实现的方式. 1.负margin大法 设置好元素的宽度和留白占满父级的 ...
- 负MARGIN之讲解
css中的负边距(negative margin)是布局中的一个常用技巧,只要运用得合理常常会有意想不到的效果.很多特殊的css布局方法都依赖于负边距,所以掌握它的用法对于前端的同学来说,那是必须的. ...
- CSS艺术之---负margin之美
CSS中负边距(nagative margin)是布局中常常使用的一个技巧.仅仅要运用得当时常会产生奇异的效果.勘称CSS中的奇淫巧计,非常多CSS布局方法都依赖于负边距.掌握它对于前端童鞋来说还是非 ...
随机推荐
- easyui数据网格视图(Datagrid View)的简单应用
下面介绍datagrid的数据网格详细视图和数据网格的分组视图 1.先引用的js和css文件 1)包含eauyui必备的四个文件easyui.css,icon.css, jquery-min.js.j ...
- ThinkPHP去掉URL中的index.php
我的环境是apache+ubuntu 1,先确认你有没mod_rewrite.so模块 /usr/lib/apache2/modules/mod_rewrite.so 然后在httpd.conf最后一 ...
- 中国快递包裹总量的预测-基于SARIMA模型
code{white-space: pre;} pre:not([class]) { background-color: white; }if (window.hljs && docu ...
- mysql 数据类型,字符集
数据类型 1,数值类型2,字符串类型3,日期和时间4,ENUM和SET5,几何数据类型 数据类型选项 unsigned 无负值 zerofill 数值显示有影响,会前置0来填充不 ...
- 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 ...
- C# WM_NCMOUSELEAVE 消息触发
public static extern bool TrackMouseEvent([In, Out] TRACKMOUSEEVENT lpEventTrack); [DllImport(" ...
- Oauth笔记
上周的工作有安全验证这一块,但不懂,只知道有几个关键字Oauth.secret-key .token.签名等.今天就查下资料做笔记. Oauth是什么 不依靠用户账号和密码就能获得访问资源权限 本质: ...
- elasticseach multi-field的实际用途
下面是multi-field的介绍: multi_field 多域类型允许你对同一个值以映射的方式定义成多个基本类型 core_types . 这个非常有用,比如,如果你定义一个 string 类型的 ...
- javascript --- 设计模式之单体模式(二)
在JavaScript里,实现单例的方式有很多种,其中最简单的一个方式是使用对象字面量的方法,其字面量里可以包含大量的属性和方法: var her = { property1: 'someing', ...
- Sharepoint学习笔记—习题系列--70-573习题解析 -(Q66-Q69)
Question 66You have a custom theme named MyTheme. The theme is defined in a file named MyTheme.thmx. ...