您现在的位置是:网站首页> 编程资料编程资料
CSS中边框使用负边距值的奇技淫巧简单的CSS叠加外边距示例css控制边界与边框示例(内边距、外边距使用方法)谈谈CSS的边距合并之我的理解CSS去除列表默认边距的简单方法CSS边距属性定义是用margin还是用padding的两者对比CSS外边距合并代码css 空白外边距互相叠加的解决方法CSS外边距叠加的问题,CSS教程深入浅析css3 border-image边框图像详解Css3圆角边框制作代码
2023-10-23
210人已围观
简介 这篇文章主要介绍了CSS中边框使用负边距值的奇技淫巧,文中介绍了使用负边距进行布局以及实现重叠等效果的方法,非常之巧妙,需要的朋友可以参考下
自从1998年CSS2作为推荐以来,表格的使用渐渐退去,成为历史。正因为此,从那以后CSS布局成为了优雅代码的代名词。
对于所有设计师使用过的CSS概念,负边距作为最少讨论到的定位方式要记上一功。这就像是在线纹身-每个人都会做,但是没有人会谈论它。(It’s like an online taboo—everyone’s doing it, yet no one wants to talk about it.)
为其正名
我们都使用过CSS得外边距,但是当谈到负边距的时候,我们好像往差的方向发展啦。在网页设计中负边距的使用出现了两种极端,一种特别喜欢它,也有一些人认为这完全就是魔鬼的作品。
负边距的使用如下:
- #content {margin-left:-100px; }
负边距通常在小范围使用。但是接下来你会看到,它能做的事情很多。下面是一些你应该知道的关于负边距的事情:
他们是完全有效的CSS
这不是在跟你开玩笑。W3C甚至都说,在外边框中使用负边距是允许的。
负边距不是在hack
这是尤其正确的。正是因为没有很好地了解负边距才是导致各种奇怪的问题。只有在被用来解决其他地方的bug的时候才是hack
它符合正常的文档流
当负边距使用在没有浮动的元素上时并不会破坏正常的文档流。所以付过你使用负边距把元素向上微调的话,所有后面的元素也会向上微调。
它是相当好的兼容性
负边距基本上被所有现代的浏览器支持(IE6的大部分情况也是)
当使用了float之后,会有不同的表现
负边距不是你平常使用的属性,所以使用的时候要格外小心。
Dreamweaver不理解它
负边距不会在DW的设计窗口展示出效果。那你为什么还用DW的设计窗口查看效果呢?
与其共事
负边距如果可以正确的使用的话它的功能是很强大的。有两种场景负边距是很重要的。
在static元素中使用负边距
一个static元素是一个没有使用过float的元素。上面的图片展示了一个static的元素使用负边距之后的情况。
当一个static元素在top/left使用负边距时,它把元素向这个特定的方向拉,比如
- /* Moves the element 10px upwards */
- #mydiv1 {margin-top:-10px;}
但是当你将负边距设置为相对bottom/right时,它并不会把元素向下或右拉,相反,它会把后面的元素往里面拉,从而覆盖自己。
- /*
- 所有在#mydiv1后面的元素都会向上
- 移动10px,而#mydiv1一点都不会移动
- */
- #mydiv1{margin-bottom:-10px;}
如果宽度没有设置,左右负边距会把元素向两个方向拉以增加宽度。在这里margin的作用相当于padding
在浮动中使用负边距
加入下面就是我们的html代码:
- <div id="mydiv1">Firstdiv>
- <div id="mydiv2">Seconddiv>
如果对一个浮动的元素使用负边距,它会产生一个空白,其他元素就可以覆盖这一部分。这个技巧可以很好地用户流式布局。比如有一列宽度100%,另一列有固定的宽度,比如说100px。
- /*
- A negative margin is applied opposite the float
- */
- #mydiv1 {float:left; margin-right:-100px;}
如果两个元素都使用了左浮动并且设置margin-right:-20px。#mydiv2会把#mydiv1看成宽度缩小20px(所以会覆盖一部分),但是有趣的是#mydiv1并不会有任何变化,而是依然保持原先的宽度。
如果负边距和宽度一样大的话,它就会被完全覆盖掉。因为外边距,内边距,边框和内容加起来等于元素的宽度。如果负外边距等于元素的宽度的话,那么该元素的宽度就会变成0px。
学以致用
既然我们知道使用负边距在CSS2中是有效的,使用它可以给我们提供一些非常有趣的CSS技巧。
把单个列表变成三列
如果你有一个列表垂直方向太长了,为什么不把它分成几列呢?负边距可以让你在不增加任何浮动和标签的情况下完成。你会发现用负边距实现这个是多么地简单,就像下面:
HTML
- <ul>
- <li class="col1">Eggsli>
- <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">Creamli>
- 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 */
通过对.top的添加margin-top:-2.6em。所有的元素会完美的对齐好。使用负边距会比使用相对定位好很多,因为你只需要给新的一列的第一个元素添加负边距即可。酷吧,哈哈哈
重叠来强调
故意重叠元素也是一种很好地设计隐喻。重叠效果可以增强深度感从而为突出特定元素。一个很好地例子就像上图一样,通过重叠来吸引注意力。只需要使用z-index属性和一点小创意你就可以做到。
惊艳的3D文本效果
这是一个精致的技巧。通过使用两个视图的两种颜色创建safari一样有点倾斜的效果。然后通过负
相关内容
- 详解CSS的结构与层叠以及格式化DIV重叠 CSS让DIV层叠 两个DIV或多个DIV顺序重叠加CSS3图片可展开扇形效果的层叠展开特效源码权重和层叠规则决定了CSS样式优先级采用CSS定位属性实现Html中DIV层叠与悬浮CSS层叠样式表的层叠是什么意思(自我理解)CSS中的属性选择符和结构化伪类CSS技术的出现实现结构与表现分离CSS样式按整洁易懂的结构组织将CSS按照层叠式结构化重新组织与构建
- 使用CSS实现图片分割效果的简单方法介绍纯CSS3圆形图片鼠标滑过背景视觉差动画特效源码CSS+JS实现带方向感的鼠标滑过图片3D动画特效源码纯HTML5+CSS3制作图片旋转基于CSS剪裁图片实现js幻灯片效果特效源码使用CSS实现中间镂空的图片遮罩效果CSS3实现的为图片添加旋转背景特效源码HTML5+CSS3实现的图片多种滤镜特效源码CSS基础教程十九之CSS图文混排,图像签名,多图拼接和图片特效 基于CSS3实现图片模糊过滤效果基于html5和css3制作炫酷网站带缩略图的图片画廊
- CSS视差滚动效果CSS的ul和li实现横向排列和去掉li的点CSS3实现滚动条动画效果代码分享CSS3实现鼠标中轮滚动树生长过程特效源码CSS怎么隐藏滚动条(三种方法)纯css3实现的圆球顺时针滚动效果源码使用CSS3来实现滚动视差效果的教程css实现图片横向排列滚动效果
- 神魔之塔每日登陆送奖励_神魔之塔登陆奖励介绍_手机游戏_游戏攻略_
- 我叫mt 快的打车礼包在哪领取 有什么奖励_手机游戏_游戏攻略_
- 炉石传说 蓝龙玛里苟斯好不好 怎么用_手机游戏_游戏攻略_
- 三国杀 新法正礼包好不好 多少钱_手机游戏_游戏攻略_
- 神魔之塔队伍有哪些_神魔之塔基本队伍构建详细解析_手机游戏_游戏攻略_
- 魔物狩猎者毒系扎里克属性解析_手机游戏_游戏攻略_
- 放开那三国神秘商店的物品的选择_手机游戏_游戏攻略_
