自CSS2早在1998年,推荐表的使用已经慢慢褪色成背景和历史书中。正因为如此,CSS布局从那时起一直编码优雅的代名词。
的所有CSS概念设计师所使用,奖项可能需要给负margin的使用是最至少谈论的定位方法。这就像一个在线taboo-everyone的这样做,然而,没有人愿意谈论它。
 

1。设置连续记录

我们都使用我们的CSS,但当谈到负margin,我们的关系在某种程度上管理采取一个更糟的方向发展。使用负margin率在网页设计绝对是分歧如此之大,而我们中的一些人喜欢它,还有那些简单地认为这是魔鬼的工作。
margin率为负看起来像这样:
#content {margin-left:-100px;}

负margin通常应用于小剂量但稍后您将看到,它是能够做得更好的。关于负margin,要注意几件事情:

 
他们非常有效的CSS
在这一点上,我不是在开玩笑。W3C甚至表示,“负margin值属性允许…””足够地说。看看这篇文章了解更多细节。
 
负margin不是hack
这是尤其如此。这是因为没有正确理解负margin,得到其hackish形象。它只成为一个黑客如果你用它来修复一个错误了。
 
它跟流
它不会打破的页面流,如果应用于没有浮动元素。因此如果你使用一个消极的边缘向上推动一个元素,所有成功的元素也会小心翼翼。
 
它是高度兼容的
负margin完全支持所有现代浏览器(和IE6在大多数情况下)。
 
当浮动应用就会有不同的反应
负margin不是你日常CSS所以他们应该小心应用。
 
Dreamweaver并不理解它
负margin不出现在DW的设计视图。为什么你甚至在设计视图检查你的网站呢?
 

2。使用负margin

当正确使用负margin率非常强大。有2种场景负margin采取中心舞台。
 
负margin率静态元素
 
一个静态的元素是一个元素,而不应用浮动。下图说明了静态元素反应负margin。
 
当一个静态元素是给定一个左/上负margin,它把元素指定的方向。例如:
/* Moves the element 10px upwards */

#mydiv1 {margin-top:-10px;}
但如果你把它应用到/右底部,它不是移动的元素/右像你想象的。相反,它把任何成功元素为主要元素,重叠。
/*
* All elements succeeding #mydiv1 move up by
* 10px, while #mydiv1 doesn’t even move an inch.
*/ #mydiv1 {margin-bottom:-10px;}
如果没有宽度,增加负margin的左/右拉元素在两个方向上增加其宽度。在这里,就像一个填充。
 
负margin浮动元素
 
考虑这是我们实际的标记:
<div id="mydiv1">First</div> <div id="mydiv2">Second</div>
如果margin率为负是应用相反的一个浮点数,它创建一个空白导致内容的重叠。这是对液体布局,一列宽度为100%,而另一个明确的宽度,像100 px。
/* A negative margin is applied opposite the float */
#mydiv1 {float:left; margin-right:-100px;}
如果两个元素浮动左右margin-right:-20 px应用于# mydiv1,# mydiv2对待# mydiv1仿佛20 px宽比实际小(因此,重叠)。有趣的是,# mydiv1的内容根本没有反应,继续保持目前的宽度。
如果负margin率等于实际的宽度,然后它完全重叠。这是因为margin率、填充、边界,和宽度元素的总宽度。所以如果负margin率等于剩余的尺寸然后元素的有效宽度变成0 px。
 

3。有效的技术

因为我们现在知道,应用负margin率是有效CSS2代码,使用它提供了一些非常有趣的CSS技术:
 
制作一个< UL > 3-COLUMN列表
如果你有一个项目列表太长显示垂直,为什么不把他们分成列呢?负margin让你做这个不用添加任何漂浮或额外的标记。令人惊讶的是它很容易让你把下面的列表分成3单独列,像这样:
HTML
<ul>
<li class="col1">Eggs</li>
<li class="col1">Ham<li>
<li class="col2 top">Bread<li>
<li class="col2">Butter<li>
<li class="col3 top">Flour<li>
<li class="col3">Cream</li>
</ul>

CSS

ul {list-style:none;}
li {line-height:1.3em;}
.col2 {margin-left:100px;}
.col3 {margin-left:200px;}
.top {margin-top:-2.6em;} /* the clincher */
通过添加margin-top:-2.6 em(两倍行距的<li>)。前,所有元素完美对齐。使用负margin率比应用相对定位更合适,因为你只需要应用到第一个新列,而不是每个<李>标记。酷吧?
 
为了增加重点重叠
故意重叠元素也是一个好的设计的隐喻。它增加了强调特定元素自重叠效应产生深度的错觉。将是一个很好的例子的评论部分Phlashers.com,,它使用一种重叠的技术关注评论一篇文章的数量。把这与z - index属性和创造力和你有了一点。
 
粉碎3 d文字效果
这里有一个整洁的把戏。创建Safari-like文本,略斜通过创建2版本的文本在2个不同的颜色。然后使用负margin率重叠在另一个的差异在1或2像素,你有选择,robot-friendly坡的文本!不需要巨大的jpeg或gif吞噬带宽像胖猪。
 
简单2-COLUMN布局
负margin也是一个很好的方法来创建简单的2-column液体布局,侧边栏有一个预设宽度和内容有一个液体宽度的100%
HTML
<div id="content"> <p>Main content in here</p> </div> 
<div id="sidebar"> <p>I’m the Sidebar! </p> </div>

CSS

#content {width:100%; float:left; margin-right:-200px;}
#sidebar {width:200px; float:left;}
和你有一个简单的布局2-column记录时间。它工作在IE6太完美!现在,为了防止#栏重叠#内的文本内容,简单的添加
/* Prevent text from being overlapped */

#content p {margin-right:210px;}

/* It’s 200px + 10px, the 10px being an additional margin.*/
如果使用得当,负margin还可以提供所谓的灵活的文档结构,绝对踢桌子的脸。灵活的文档结构是一个可访问性和搜索引擎优化技术,允许您安排标记在几乎任何顺序取决于你的意图。汤姆·赖特写的一篇有趣的文章,讨论了可能的应用负margin的多列布局。
促使元素到位
这是最常见的(简单)使用情况负margin。如果您插入一个10
div 9其他div,不知怎么的就不会正确对齐,用负margin推动10 div到位而不用编辑其他9。
 
如果使用得当,负margin还可以提供所谓的灵活的文档结构,绝对踢桌子的脸。灵活的文档结构是一个

4。修正

文本和链接的问题
使用负margin浮动有时惹怒了老版本浏览器。一些症状包括:
使链接会断掉
文本很难选择
指定任何链接消失当你失去焦点
解决方案:只需添加位置:相对的,它的工作原理!

 
我的照片有截止
如果你有在办公室使用IE6的坏运气,有时内容会突然被切断时,重叠和漂浮。
解决方案:再次,只需添加位置:相对于被浮动元素,一切恢复正常。

5。结论

负margin在现代网页设计,因为它没有任何额外的标记位置元素的能力。与更多的用户切换到更多更新的浏览器(包括IE8),未来看起来很光明网站依赖于这种技术。
与负margin,如果你有任何独特的经历让我知道通过发表置评。

 

6。资源

更多信息在负margin。

负margin使用权威指南的更多相关文章

  1. JavaScript权威指南 - 数组

    JavaScript数组是一种特殊类型的对象. JavaScript数组元素可以为任意类型,最大容纳232-1个元素. JavaScript数组是动态的,有新元素添加时,自动更新length属性. J ...

  2. 《CSS权威指南》基础复习+查漏补缺

    前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...

  3. 《javascript权威指南》读书笔记(连载)

    这是一篇很长的博客 终于把权威指南给买回来了,之前一直犹豫,第一:书太厚,怕买了不能坚持看完.第二:觉得太贵,最少100¥.现在实习也能发点工资了,给自己定了一个志愿:把一个月的工资用于买书.这么一想 ...

  4. 《jQuery权威指南》学习笔记之第2章 jQuery选择器

    2.1 jQuery选择器概述 2.1.1 什么使选择器 2.1.2 选择器的优势: 代码更简单,完善的检测机制  1.代码更简单   示例2-1     使用javascript实现隔行变色 < ...

  5. css权威指南读书笔记-第10章浮动和定位

    这一章看了之后真是豁然开朗,之前虽然写了圣杯布局和双飞翼布局,有些地方也是模糊的,现在打算总结之后再写一遍. 以下都是从<css权威指南>中摘抄的我认为很有用的说明. 浮动元素 一个元素浮 ...

  6. HTTP 1.x 学习笔记 —— Web 性能权威指南

    HTTP 1.0的优化策略非常简单,就一句话:升级到HTTP 1.1.完了! 改进HTTP的性能是HTTP 1.1工作组的一个重要目标,后来这个版本也引入了大量增强性能的重要特性,其中一些大家比较熟知 ...

  7. JavaScript权威指南 - 函数

    函数本身就是一段JavaScript代码,定义一次但可能被调用任意次.如果函数挂载在一个对象上,作为对象的一个属性,通常这种函数被称作对象的方法.用于初始化一个新创建的对象的函数被称作构造函数. 相对 ...

  8. JavaScript权威指南 - 对象

    JavaScript对象可以看作是属性的无序集合,每个属性就是一个键值对,可增可删. JavaScript中的所有事物都是对象:字符串.数字.数组.日期,等等. JavaScript对象除了可以保持自 ...

  9. 《Ansible权威指南》笔记(3)——Ad-Hoc命令集,常用模块

    五.Ad-Hoc命令集1.Ad-Hoc命令集通过/usr/bin/ansible命令实现:ansible <host-pattern> [options]    -v,--verbose  ...

随机推荐

  1. Image.FromFile 方法锁住文件解决方法

    Image.FromFile  一旦使用后,对应的文件在一直调用 其生成的Image对象被Disponse前都不会被解除锁定,这就造成了一个问题,就是在这个图形被解锁前无法对图像进行操作(比如删除,修 ...

  2. RIA+REST架构实现完美WEB开发

    记得第一次看到REST的身影,是在InfoQ上的一篇介绍,随后又翻阅了后面的参考文章和Developerwork上一些资料,甚至随手翻了翻Roy博士的论文.所幸,在不少人还在体会REST到底是何方神圣 ...

  3. Android 校验apk文件渠道号、包名、版本号

    功能:可查看单个或目录下所有apk文件的渠道号.包名.版本号 下载地址:http://download.csdn.net/detail/zgz345/9248487使用:以查看包名.版本号为例 1.c ...

  4. ActiveMQ之二--JMS消息类型

    1.前言 //发送文本消息 session.createTextMessage(msg); //接受文本消息 public void onMessage(Message msg) { TextMess ...

  5. nginx爆出新漏洞 最低限度可造成DDos攻击

    5月9日消息:国内某安全厂商称HTTP代理服务器nginx爆出远程栈缓冲区溢出漏洞,攻击者利用此漏洞可能造成栈溢出,从而执行任意代码,最低限度可造成拒绝服务攻击.目前,官方已经发布安全公告以及相应补丁 ...

  6. linux c下mysql编程样例

    /* ============================================================================ Name : mysql1.c Auth ...

  7. 关于WordPress建站的原理二三事

    在写关于仿站文章详情页如何制作之前,我觉得有必要就一些原理性的问题,做一些说明.文章详情页的核心模块和首页有很多相似的地方,比如调用文章的标题.文章的内容.文章分类.作者等,实现起来都差不多,因此,了 ...

  8. Linux进程间通信——使用共享内存

    一.什么是共享内存 顾名思义,共享内存就是允许两个不相关的进程访问同一个逻辑内存.共享内存是在两个正在运行的进程之间共享和传递数据的一种非常有效的方式.不同进程之间共享的内存通常安排为同一段物理内存. ...

  9. iOS打开手机QQ与指定用户聊天界面

    开发中遇到一个联系客服qq的需求,找到这么一个实现方法,先记录下来.大概的原理就是,iOS启动第三方应用是采用schema模式的,这有点像url,打开不同的界面使用不同的地址.但这个url怎么得来的还 ...

  10. Flex SDK包内文件夹内容说明

    打开SDK目录,让我们看看SDK中都包含了哪些内容: ant包含Flex对Ant的支持库,JAR和Java源码都有,方便我们基于Ant完成对项目的构建 asdoc基于ASDOC我们可以很方便的生成代码 ...