margin负值使用之八大绝技

相信关于margin负值的使用,每个人都有自己的一套方法。在这里,整理了一下平时常用的一些margin负值制作的效果,与大家分享!

先来看一下margin负值的原理解析图:

当给一个元素设置margin 负值(top/left),该元素将在该方向上产生位移。例如:

 /* 元素向上位移10px */  

.demo {margin-top:-10px;}   

二、当给一个元素设置margin负值(bottom/right),这个元素并不会像你所预想的产生位移,而是将任何紧随其后的元素“拉”过来,覆盖在自己的上边。例如:

/* 所有紧随元素demo之后的元素向上位移10px */  

.demo {margin-bottom:-10px;}   

注:如果元素没有设置宽度,那么给该元素设置margin负值(left/right)将会在两个方向增大其宽度,看起来就好像给该元素添加了padding。 

【案例解析】

一、三栏显示(无需浮动及额外标签);

列表过长时,我们一般都会考虑通过浮动来使之显示为多列,其实换个思路也可以实现。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>negative margin 之列表三栏显示</title>
    <style>
    *{margin:0;padding:0;font-size: 14px;}
    .goback{clear:both;height:30px;line-height:30px;text-align: center;}

    ul {list-style:none;}
    li {width:100px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.3em;}
    .col2 {margin-left:120px;}
    .col3 {margin-left:240px;}
    .top {margin-top:-2.6em;}
    </style>
</head>
<body>
    <ul>
        <li class="col1">10家国企年招待费超29亿 被指仅用于吃喝</li>
        <li class="col1">媒体称中国豪车市场因政府严控公车快速萎缩</li>
        <li class="col2 top">菲发言人笑答射杀台渔民事件</li>
        <li class="col2">情妇打越洋电话提供证据</li>
        <li class="col3 top">雷政富涉嫌受贿罪被检察机关提起公诉</li>
        <li class="col3">日称冲绳久米岛附近海域发现疑似中国海军潜艇</li>
    </ul>
</body>
</html>

二、叠加效果;

最常见的选项卡,当前项选中状态;

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>negative margin 之叠加</title>
    <style>
    *{list-style:none;margin:0;padding:0;font-size: 12px;}
    .clearfix:after {
    clear: both;
    display: block;
    height: 0;
    line-height: 0;
    visibility: hidden;
    content: "";
}
    .clearfix {*zoom:1;}
    .goback{clear:both;height:30px;line-height:30px;text-align: center;}
   
    .demo{width:400px;}
    .tab{
    border-bottom:1px solid #66CC66;
    }
    .tab li{
    float:left;
    display:inline;
    margin-left:8px;
    }
    .tab li a{
    background-color:#CCFFCC;
    border:1px solid #66CC66;
    color:#666;
    display:block;
    margin-bottom:-1px;
    padding:0 5px;
    line-height:20px;
    float:left;
    font-weight:bold;
    text-decoration:none;
    }
    .tab li .current,
    .tab li a:hover{
    background-color:#fff;
    border-bottom:1px solid #fff;
    _position:relative;
    }
    .cont{padding:10px;border:1px solid #6c6;border-top:0;}
    </style>
</head>
<body>
    <div class="demo">
        <div id="demo2">
                    <ul class="tab clearfix">
                        <li><a href="#" class="current">Tab One</a></li>
                        <li><a href="#">Tab Two</a></li>
                        <li><a href="#">Tab Three</a></li>
                        <li><a href="#">Tab Four</a></li>
                    </ul>
                </div>
        <div class="cont">荒凉的旷野,一群暴虐的劫匪正在鞭挞一位美丽的姑娘玛丽亚(萝蕾丹娜·卡波莱特 Loredana Cappelletti饰)。幸得迪亚戈(弗兰科·尼罗 Franco Nero饰)的解救。他神秘而冷峻,拖着一副棺材漫步在泥泞的荒野上。迪亚戈带着玛丽亚来到荒凉的小镇,人们对他的到来充满好奇,更对这副棺材里隐藏的秘密而惶惶不安。</div>
    </div>
</body>
</html>

三、两列流式布局;

固定宽度的布局so easy,配合浮动轻松搞定两列自适应布局,三列同理。

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>negative margin 之两列自适应布局</title>
    <style>
    *{list-style:none;margin:0;padding:0;font-size: 12px;}
    .goback{clear:both;height:30px;line-height:30px;text-align: center;}
   
    .layout{width:960px;margin:0 auto;background:#f5f5f5;}
    .main{float:left;width:100%;height:300px;margin:0 -200px 0 0;background:#ccc;}
    .main-wrap{margin:0 210px 0 0;}
    .aside{float:left;width:200px;height:300px;background:#f5f5f5;}
    </style>
</head>
<body>
    <div class="layout">
        <div class="main">
            <div class="main-wrap">main</div>
        </div>
        <div class="aside">aside</div>
    </div>
</body>
</html>

四、去除多余的外边距;

图文混排,每行最后一个元素的margin值如何处理?单独设置类名消0?通过父层来裁切?使用margin负值吧!

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>negative margin 之去除多余外边距</title>
    <style>
    *{list-style:none;margin:0;padding:0;font-size: 12px;}
    .clearfix:after {
    clear: both;
    display: block;
    height: 0;
    line-height: 0;
    visibility: hidden;
    content: "";
}
    .clearfix {*zoom:1;}
    .goback{clear:both;height:30px;line-height:30px;text-align: center;}
   
    .demo{width:320px;margin:0 auto;padding:10px 0;*overflow:hidden;background:green;}
    .figure-list{margin:0 -10px 0 0;}
    .figure-list li{float:left;width:100px;height:100px;margin:0 10px 10px 0;background:#f5f5f5;}
    </style>
</head>
<body>
    <div class="demo">
        <ul class="figure-list clearfix">
            <li>item-1</li>
            <li>item-2</li>
            <li>item-3</li>
            <li>item-4</li>
            <li>item-5</li>
            <li>item-6</li>
        </ul>
    </div>
</body>
</html>

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索margin
, line-height
, padding
, 副tab标题
, 元素
, goback()
, px
, goback
, height
暴虐查找
margin负值、margin left 负值、margin负值原理、margin为负值、margin top 负值,以便于您获取更多的相关知识。

时间: 2024-09-27 06:51:57

margin负值使用之八大绝技的相关文章

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

文章简介:最近做的项目中经常会用到margin的负值,这里就总结一下关于margin负值的5种使用及相关bug的解决. 最近做的项目中经常会用到margin的负值,这里就总结一下关于margin负值的5种使用 及相关bug的解决. 1. 在流动性布局中的应用如WordPress的两栏式不固定布局就是使用margin负值来实现的定位,属于左右 margin负值在流动性布局中的应用. <div style="width:200px;float:left;border-right:4px sol

前端开发:微吧里的各种margin负值

一直在做各种项目接各种需求,但你的代码能力得到提高了吗?不停的项目经历虽然能够增加你的代码行数,但不一定能提升你的代码质量,所以除了构建阶段的代码细扣,项目之后的代码总结是至关重要的. 微吧中除了模块化.公用和皮肤元素处理外,还有很多可总结的东西,例如: 1.字符图标:整站大部分纯色的功能性的图标都是用字符实现的,节省了图片字节,利于修改和换肤. 2.feed的改造和扩展:基础feed.图片带打开收起功能.扩展了视频音乐富文本功能.又扩展成带时间轴和PK模式的feed,代码清晰可扩展性强. 3.

清剿流氓软件的八大绝技

上网冲浪原本是一大快事,但我们动辄就被不断跳出的广告页面晃得眼花缭乱,无所适从,刹那间让喜悦心情化为乌有.浏览吧!IE被莫名修改.下载吧!不请自来多了很多卸载不了的无用插件!网上交易吧!还要小心信息被间谍软件记录,如此上网还有什么乐趣?"流氓软件"是网民们对此类软件的称呼,在北京市网络行业协会设立的"流氓软件"网络调查专门网站上,20多万人投票抗议和3624条举报帖是网民的回应,7月11日,北京网络行业协会在协会内部网站上点名公布了10款流氓软件,并敦促相关公司于8

css中margin 负值使用一例

margin我很少会用到,一般用到也只是相对的去调整一个层的位置以达到一定效果.因为最近正在着手更新自己使用的主题,所以研究了一下各种布局的实现方法.发现使用margin负值形成的布局结构要比我们一般用层嵌套层再去分别左右浮动的方式要灵活很多. margin 负值对文档流的影响 确切的说应该是margin负值对于层定位的影响, 没有浮动时 如果没有浮动的话,负的外边距会影响到各个层的高度.宽度, 当然这要看你设定的是水平还是垂直的负边距.有兴趣的可以去建立一个demo实验一下. 有浮动时 有浮动

理解并运用CSS的负margin值

本文样式代码采用 SCSS. 浏览器兼容性为 IE6+. 你的网页中,不可能没有使用过 margin.大多数情况下,我们采用的都是正数的 margin 值,可能有时候会用到负的 margin 值.在我们的印象中,负的 margin 值就类似于浏览器的 hack 一样,不被人接受.但是,本文要说明的就是,负的 margin 值并不是 hack,这是正常范围内的写法. Negative values for margin properties are allowed, but there may b

Win8电脑安全软件兼容性测试

  电脑中的安全软件对系统本身的使用权限要求较高,在与操作系统紧密结合的过程中,就存在了与系统兼容性的问题.在这个问题上,兼容性越好的话,安全软件本身功能的发挥更为全面,更能准确地保护电脑系统的安全. 待测试软件详情 软件类别 软件名称 媒体播放类 瑞星全功能安全软件 金山木马专杀 木马清理王 USBKiller(U盘病毒专杀工具) AVG Anti-Spyware Safe3 web防火墙 贝壳木马专杀 安全软件分为杀毒软件,系统工具和反流氓软件.安全软件是一种可以对病毒.木马等一切已知的对计

inline

文章简介:去除inline-block元素间间距的N种方法. 一.现象描述 真正意义上的inline-block水平呈现的元素间,换行显示或空格分隔的情况下会有间距,很简单的个例子: <input /> <input type="submit" /> 间距就来了~~ 我们使用CSS更改非inline-block水平元素为inline-block水平,也会有该问题: .space a { display: inline-block; padding: .5em 1

CSS Border使用小分享

之前在懒懒分会上分享的一点关于border画小图的内容, 完整的ppt在这里. 原理 css盒模型 一个盒子包括: margin+border+padding+content – 上下左右边框交界处出呈现平滑的斜线. 利用这个特点, 通过设置不同的上下左右边框宽度或者颜色可以得到小三角, 小梯形等. – 调整宽度大小可以调节三角形形状. 示例1 一般情况下, 我们设置盒子的宽高度, 及上下左右边框, 会呈现如下图 #test1 { height:20px; width:20px; border-

IE CSS Bug

网页制作Webjx文章简介:IE浏览器中的CSS BUG总结. 最让人头痛的当数IE,特别是IE6.搞定了IE6,基本也就能称霸半个江山了.搞定了IE,也相当于占领了7.80%的领地.你想做一个统治页面兼容的主么?反正我是想的. 作为一名前端,我们通常要做的就是让页面在各系统A-Grade浏览器,甚至网站浏览份额0.1%以上的浏览器上良好显示.当然,还有性能问题.不过,今天要说的是样式的兼容问题.在IE/Mozilla/Webkit/Opera四分天下的今天,IE6-9/Mozilla(Geck