css网页制作技巧:margin负值和bug的解决

文章简介:最近做的项目中经常会用到margin的负值,这里就总结一下关于margin负值的5种使用及相关bug的解决。

最近做的项目中经常会用到margin的负值,这里就总结一下关于margin负值的5种使用

及相关bug的解决。

1. 在流动性布局中的应用

如WordPress的两栏式不固定布局就是使用margin负值来实现的定位,属于左右

margin负值在流动性布局中的应用。

<div style="width:200px;float:left;border-right:4px solid #CEE1EE;margin-right:-200px;">
左侧宽度固定
</div>
<div style="backround:#888;margin-left:200px;">
宽度自适应,啦啦啦。。。宽度自适应,啦啦啦。。。宽度自适应,啦啦啦。。。
</div>

另外一类两栏自适应用到的是margin的上下负值,尤其在一栏高度固定,另外一栏高度

不定的两栏或多栏布局中最为常见。高度不固定栏和高度固定的栏上下错开,均无浮动

属性,高度不固定的栏margin-top一个负值,大小就是高度固定栏的高度,实现了两栏

在同一水平线上。且宽度自适应,并且不用担心有浮动出现的一系列问题。

样式部分:

.fixed-height{
height:200px;
width:200px;
background:#666;
}
.flow-height{
margin-top:-200px;
margin-left:200px;
}

页面结构:

<div class="container">
<div class="fixed-height">
高度固定哦
</div>
<div class="flow-height">
高度宽度自适应,啦啦啦。。。高度宽度自适应,啦啦啦。。。
</div>
</div>

2. 在选项卡等边框线的处理
下图显示的是一种比较常见的选项卡。

如图,使用margin-bottom:-1px;解决选项卡下边框显示的问题。[注:]使用margin-

top、margin-bottom需要看结构如何写,灵活使用。

类似的,如果您要用七个div实现8条1像素的左右边框,可以让每个div都有左右1像素的

边框,然后margin-right:-1px;或是margin-left:-1px;让之间的边框重叠来达到效

果。

3. 图片与文字对齐问题

当图片与文字在一起,往往都是不对齐的,因为图片和文字默认是底部对齐。当图片较

小比较明显,使用vertical-align:middle;对齐,在firefox,chrome下能达到理想效

果,但是IE下还是有点别扭。

使用margin负值能在每个浏览器上显示完全一致。img标签支持margin四个方向的正的

和负的定位。一般使用img标签来显示图标,要与文字对齐达到理想的效果,可以设置

img{margin:0 3px -3px 0;}。

4. 隐藏首(末)边框

本着结构尽量简洁,样式代码尽量少,减少对js的依赖的原则,我们可以用样式来实现

列表项头尾无边框的效果,而无需额外设置诸如<li class=”last”>最后一个</li>

样式部分:

<style type="text/css">
ul{
margin:30px;
padding:0;
width:300px;
}
li{ list-style:none;}
/** 横排模式 **/
.cross{
overflow:hidden;
zoom:1;
} /** overflow:hidden隐藏最上边border,IE6需要zoom:1 **/
.cross li {
float:left;
padding:0 11px 0 10px;
border-left:1px solid #AAA;
margin-left:-1px;
} /*margin负值隐藏掉最左边边框*/
/*竖排模式*/
.vertical {
overflow:hidden;
position:relative;
zoom:1;
} /*IE下子容器如果包含属性position:relative,则父容器失效(IE bug),所以也需要设置父容器position:relative解决,IE6需要zoom:1来触发haslayout*/
.vertical li{
border-top:1px dashed #CEE1EE;
padding:5px 0;
position:relative;
top:-1px;
} /*竖排margin负值IE6不兼容,改为positon方式处理,与margin负值原理相同*/
</style>

结构部分:

<ul class="cross">
<li>tab1-1</li>
<li>tab1-2</li>
<li>tab1-3</li>
<li>tab1-4</li>
</ul>
<ul class="vertical">
<li>这里是一条信息</li>
<li>这里是一条信息</li>
<li>这里是一条信息</li>
<li>这里是一条信息</li>
<li>这里是一条信息</li>
</ul>

5.页面上实现css sprite背景定位效果

使用img定义margin的负值实现类似background-position效果。此方法能减少一个页

面请求数,但是有违样式与布局分离的原则,因此不推荐使用

ps:

使用margin负值在IE6/IE7下的bug:有一部分被隐藏掉了

<div style="height:120px;width:120px; border: 5px solid #888">
<div style="background-color:#CEE1EE;margin-top: -10px;position:relative;zoom:1">
<a href="http://www.webjx.com/">网页教学网</a></div>
</div>

解决方法:添加position:relative; zoom:1;

时间: 2024-10-26 07:56:14

css网页制作技巧:margin负值和bug的解决的相关文章

CSS网页制作技巧:IE浏览器下li的默认高度问题

文章简介:CSS网页制作技巧:IE浏览器下li的默认高度问题. 昨天,在家打开IE7浏览器看"视频导航网"的时候,发现居然有排版错误. 用F12开发者工具看了下,发现 li 的默认高度既然不统一? 用工具看了下,发现火狐高度解析统一为33px,而IE7解析高度根据字的不一样,默认解析的高度为30px,纯数字的解析高度为31px;中英文组合的解析高度为32px; 解决方法一:给LI设置高度后,IE7正常了,但IE6问题依然存在.原来,LI里面还嵌套着A标签,给A也设置一个高度后问题解决.

CSS网页制作技巧:兼容主流浏览器的背景颜色透明

文章简介:CSS网页制作技巧:兼容主流浏览器的背景颜色透明. 以前都是用jquery来写背景透明,方法简单,但是有缺点,脚本没加载完时,背景颜色是不透明的.如果换成在css里写好的话,效果就很好了..transparent_class { filter:alpha(opacity=50); -moz-opacity:0.5; -khtml-opacity: 0.5; opacity: 0.5; } 上面的几个属性分别是: opacity: 0.5; 这是最重要的,因为它是CSS标准.该属性支持f

CSS网页制作技巧:隐藏网页元素的方法汇总

文章简介:CSS网页制作技巧:隐藏网页元素的方法汇总. 在CSS中,让元素隐藏(指屏幕范围内肉眼不可见)的方法很多,有的占据空间,有的不占据空间:有的可以响应点击,有的不能响应点击.下面一个个列出,选一个适合你的 { display: none; /* 不占据空间,无法点击 */ }{ visibility: hidden; /* 占据空间,无法点击 */ }{ position: absolute; top: -999em; /* 不占据空间,无法点击 */ }{ position: rela

CSS网页制作技巧教程:margin在IE中的表现

文章简介:margin用法小结. margin的位移方向是指margin数值为正值时候的情形,如果是负值则位移方向相反. 如上图所示:黄色子元素盒的margin-top,margin-left为负值时,如-10px,则黄色子元素盒向上(向左)移动,越过相邻元素10px:黄色子元素盒的margin-right,margin-bottom为负值时,如-10px,黄色子元素盒不动,它右边(下边)的相邻元素和左移(上移)10px,垂直外边距合并问题垂直外边距合并问题常见于第一个子元素的margin-to

CSS网页制作技巧:DIV+CSS网页布局常犯错误汇总

文章简介:随着CSS网页布局越来越普及,国内大部分网站已经采用CSS网页布局的制作方法.在应用DIV+CSS编码时很容易犯一些错误,这里列举一些常见的错误,帮助新手朋友更好的学习与进步. 随着CSS网页布局越来越普及,国内大部分网站已经采用CSS网页布局的制作方法.在应用DIV+CSS编码时很容易犯一些错误,这里列举一些常见的错误,帮助新手朋友更好的学习与进步. 一.检查HTML元素是否有拼写错误 是否忘记结束标记 即使是老手也经常会弄错div的嵌套关系.可以用dreamweaver的验证功能检

CSS网页制作技巧之控制网页背景

css|技巧|控制|网页|网页背景 [简 介] 我想大家常常为一些比较合适于自己的网页背景的图片而发愁吧,这个我想也是有的,因为这些图片不是太大就是太小,或者太乱,那么有没有办法让图片能合自己的主页的胃口呢?答案是肯定的. 想知道怎么来实现嘛,好吧,大家现在开始跟着我做,我保证大家一定一学就会.不过,我想在网上"成家"的朋友一般分为在网吧里"开业"(就像我一样,刚开始从他人的主页拉相关的代码来改的),还有就是在自己家里用DW或FP之类的专业软件制作好上传的,所以呢,

CSS网页制作技巧:让网页内容居中的方法

文章简介:居中一直是设计师们比较喜欢使用的一种摆放形式,无论是图片还是文字都会被要求放在中间,水平或者垂直.css提供了很多方便的让内容居中的方法给我们使用,以下罗列那些最长被使用的居中技巧. 居中一直是设计师们比较喜欢使用的一种摆放形式,无论是图片还是文字都会被要求放在中间,水平或者垂直.css提供了很多方便的让内容居中的方法给我们使用,以下罗列那些最长被使用的居中技巧. 水平居中的text-align:center 和 margin:0 auto 这两种方法都是用来水平居中的,前者是针对父元

CSS网页制作技巧:背景图片定位

文章简介:三. 背景图片定位决定因素:a. 设置背景图片容器的大小(宽度和高度)b. 首先要定义背景图片(background-image)c. 其次是背景图片是否重复(background-repeat). 一. 网页中添加图片的方式有两种 一种是:通过<img>标签直接插入到html中另一种是:通过css背景属性添加 二. 怎样来判断添加图片方式?? Ø 网页中的装饰性的图片,通过背景图片添加 Ø 用户图片,通过插入形式添加 Ø 按钮,有多个状态的效果图片,通过背景图片添加 三. 背景图片

CSS网页制作技巧:图片的自适应居中和兼容处理

文章简介:图片的自适应居中及兼容性处理. 前几天在做腾讯微博的微卖场的时候,遇到需要做图片居中的需求.也就是说,商品列表中的图片需要居中显示.因为图片是卖家自己把商品图片链接过来,商品图片的大小没有做限制和过滤.所以我们需要做的是,让图片在容器当中水平居中.垂直居中.图片自适应容器大小.图片原图大小和在容器中显示的大小有这样的关系: 假设容器大小为200像素*200像素,图片的宽为x 像素,高为y 像素,则: 当x<=200,y<=200时,图片位于容器中的中间,即水平居中和垂直居中,显示在容