css负外边距是什么?css负外边距的作用(详解)

本章给大家带来css负外边距是什么?css负外边距的作用(详解),带大家看看css负外边距有什么作用。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

负边距介绍

负边距的使用如下:

#content {margin-left:-100px;}

负边距通常在小范围使用。但是接下来你会看到,它能做的事情很多。下面是一些你应该知道的关于负边距的事情:

他们是完全有效的CSS
这不是在跟你开玩笑。W3C甚至都说,在外边框中使用负边距是允许的。

立即学习“前端免费学习笔记(深入)”;

负边距不是在hack
这是尤其正确的。正是因为没有很好地了解负边距才是导致各种奇怪的问题。只有在被用来解决其他地方的bug的时候才是hack

它符合正常的文档流
当负边距使用在没有浮动的元素上时并不会破坏正常的文档流。所以付过你使用负边距把元素向上微调的话,所有后面的元素也会向上微调。

它是相当好的兼容性
负边距基本上被所有现代的浏览器支持(IE6的大部分情况也是)

当使用了float之后,会有不同的表现
负边距不是你平常使用的属性,所以使用的时候要格外小心。

Dreamweaver不理解它
负边距不会在DW的设计窗口展示出效果。那你为什么还用DW的设计窗口查看效果呢?与其共事呢?

负边距如果可以正确的使用的话它的功能是很强大的。有两种场景负边距是很重要的。

在static元素中使用负边距:

1.gif

一个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代码:

First
Second

如果对一个浮动的元素使用负边距,它会产生一个空白,其他元素就可以覆盖这一部分。这个技巧可以很好地用户流式布局。比如有一列宽度100%,另一列有固定的宽度,比如说100px。

#mydiv1 {float:left; margin-right:-100px;}

如果两个元素都使用了左浮动并且设置margin-right:-20px。#mydiv2会把#mydiv1看成宽度缩小20px(所以会覆盖一部分),但是有趣的是#mydiv1并不会有任何变化,而是依然保持原先的宽度。
如果负边距和宽度一样大的话,它就会被完全覆盖掉。因为外边距,内边距,边框和内容加起来等于元素的宽度。如果负外边距等于元素的宽度的话,那么该元素的宽度就会变成0px。
学以致用

既然我们知道使用负边距在CSS2中是有效的,使用它可以给我们提供一些非常有趣的CSS技巧

把单个列表变成三列

如果你有一个列表垂直方向太长了,为什么不把它分成几列呢?负边距可以让你在不增加任何浮动和标签的情况下完成。你会发现用负边距实现这个是多么地简单,就像下面:

HTML:

  • Eggs
  • Ham
  • Bread
  • Butter
  • Flour
  • Cream

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。所有的元素会完美的对齐好。使用负边距会比使用相对定位好很多,因为你只需要给新的一列的第一个元素添加负边距即可。

重叠来强调

2.gif

故意重叠元素也是一种很好地设计隐喻。重叠效果可以增强深度感从而为突出特定元素。一个很好地例子就像上图一样,通过重叠来吸引注意力。只需要使用z-index属性和一点小创意你就可以做到。

惊艳的3D文本效果

1.jpg

这是一个精致的技巧。通过使用两个视图的两种颜色创建safari一样有点倾斜的效果。然后通过负边距来把其中一个叠加到另一个上面,保持1到2像素的偏移。这样你就可以二道可选的,机器友好的倾斜字体。就不需要浪费很多贷款来加载大的图片来实现这个效果啦

简单的两列布局

负边距也是在流式布局中创建简单一列宽度固定,一列内容为宽度的100%的两列布局的好方法。

HTML

Main content in here

CSS

#content {width:100%; float:left; margin-right:-200px;}#sidebar {width:200px; float:left;}

哈哈,这样你就得到了一个简单的两列布局。它也能在IE6完美的渲染出来。现在为了让#sidebar不要被#content给掩盖,只要简单的加上:

/* Prevent text from being overlapped */#content p {margin-right:210px;}/* It’s 200px + 10px, the 10px being an additional margin.*/

当适当的使用的时候,负外边距能够提供一个灵活的文档结构,完爆table的布局。灵活的文档布局是一种可访问性和SEO的技巧,通过它能够让你根据你的关注点以任意顺序组织你的html代码。这里有一个文章讨论了负边距在多列布局中的应用。

微调元素

这是负外边距最常也是最简单的使用方式。假如你把第十个div插入到9个其他的div中,不知道什么原因没有正确的排列,使用负边距来调整这个div就不需要改变其他9个div了,很方便。

解决bug

文本和链接问题

在float中使用负边距可能会在旧的浏览器造成一些问题,比如下面的这些:

让链接不可点击
文本变得很难选择
失去焦点的时候按tab键失效

解决方法:只要添加position:relative,就可以啦。

图片被剪切啦

如果你运气不好刚好在办公室使用IE6,当遇到覆盖和浮动的时候内容有些时候回突然被剪切掉。

解决方法:同样的只要给浮动元素加上position:relative,所有的问题就解决啦。

结论

负外边距能够在不使用任何额外标签的情况下定位元素让它在现在网页设计中占有一席之地。随着更多的用户使用更新的浏览器(包括IE8),未来使用这些技巧的网站会变得更加有前景。

以上就是css负外边距是什么?css负外边距的作用(详解)的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1611901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月24日 02:37:31
下一篇 2025年12月24日 02:37:47

相关推荐

  • css实现滚动文字的实例代码

    本篇文章给大家带来的内容是关于css实现滚动文字的实例代码,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 效果图 图片描述:箭头指向部分,以白色为背景,从左向右滚动。(不适用于IE) 代码 html 例子:滚动的文字,我是滚动的文字 CSS .box { height: auto;…

    2025年12月24日
    000
  • 如何使用纯CSS实现抽象的水波荡漾的动画(附源码)

    本篇文章给大家带来的内容是关于如何使用纯css实现抽象的水波荡漾的动画(附源码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 效果预览 源代码下载 https://github.com/comehope/front-end-daily-challenges 代码解读 定义 dom…

    2025年12月24日
    000
  • 深入理解CSS中的rem以及移动端的布局方法

     相信大家对px已经很熟悉了,但是提到rem有些人就不知道了。今天这篇文章主要介绍什么是rem,em,以及他们在移动端中的布局方法,有需要的可以参考一下,希望对你有帮助。 一、rem是什么? rem是css3中新增加的一个单位属性(font size of the root element),根据页…

    好文分享 2025年12月24日
    000
  • css中clip属性是什么?clip:rect()制作圆形进度条动画(代码实例)

    本章给大家带来css中clip属性是什么?clip:rect()制作圆形进度条动画(代码实例),给大家介绍了什么是clip属性,clip:rec()的用法,最后通过一个实例让大家更直观的了解clip:rect()。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 一、css什么是cli…

    2025年12月24日 好文分享
    000
  • css如何使用特定属性选择器lang?使用介绍(详解)

    css 2 引入了属性选择器,属性选择器可以根据元素的属性及属性值来选择元素。本章就给大家介绍css特定属性选择器lang的使用方法(详解)。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 css :lang选择器定义用法介绍 lang 向带有指定 lang 属性开始的元素添加样式。…

    2025年12月24日
    000
  • css不透明度opacity属性详解

    本章给大家带来css不透明度opacity详解,让大家了解什么是opacity属性,opacity属性的一些特性。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 一、opacity属性 1、opacity 习惯上说“透明度”,其实应该叫“不透明度”。opacity 意思:不透明,而背…

    2025年12月24日 好文分享
    000
  • 如何用CSS修改浏览器滚动条的样式(实例详解)

    随着互联网的发展,人们对页面的要求越来越高,不只是功能好用,而且还要颜值高。前端开发人员对于浏览器的滚动条并不陌生,当自带的一些滚动条无法满足我们的审美时,你知道如何用css修改浏览器滚动条的样式吗?今天就给大家介绍如何设置div滚动条样式。有需要的小伙伴可以参考一下。 我们在自定义滚动条样式前,首…

    2025年12月24日
    000
  • css如何设置背景图片?background属性添加背景图片

    在前端开发过程中,为了页面的美观,往往都会给html页面添加背景图片。那么如何利用css设置html中用图片做背景?本章就给大家介绍css怎样设置背景图片。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 推荐手册:CSS在线手册 css怎样设置背景图片? css background…

    2025年12月24日 好文分享
    000
  • css文字如何竖排显示?css文字竖排显示的方法

    有时候网页中的文字因为特别要求不能横向显示,这时候所需要的就是让文字来竖排显示,那么,网页中如何让文字竖排显示呢?接下来本篇文章将介绍css实现文字竖排显示的方法。 css文字竖排显示的方法一: 使用writing-mode属性 语法:writing-mode:lr-tb或writing-mode:…

    2025年12月24日 好文分享
    000
  • CSS虚线样式的制作方法及虚线样式的运用实例

    在页面布局时,为了呈现一定的效果,经常需要使用css虚线样式,但是很多人新手对css虚线样式还比较陌生,这篇文章就和大家讲讲,如何使用cssborder属性制作虚线样式,以及css虚线样式的一些运用实例。比如:css虚线边框的运用,css虚线下边框的运用,一条虚线的运用等等。有需要的小伙伴可以参考一…

    2025年12月24日 好文分享
    000
  • css溢出机制是什么?css溢出的详细介绍(附实例)

    本篇文章给大家带来的内容是关于css溢出机制是什么?css溢出的详细介绍(附实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 为什么需要深入学习CSS溢出机制? 在实际开发的过程中,内容溢出是经常见到的。如果不深入了解这个机制,你经常会碰到这样的问题:为什么这个元素没有受到祖先…

    2025年12月24日 好文分享
    000
  • CSS怎么实现底部对齐?css实现底部对齐的三种方法

    本篇文章给大家带来的内容是关于css怎么实现底部对齐?css实现底部对齐的三种方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 CSS实现底部对齐效果 因公司业务要求需要实现如下图中红色区域的效果: 效果说明: 1、红色区域数据需要倒排(即从底部开始数,数字为1、2、3、4、5)…

    2025年12月24日
    000
  • 深入理解CSS中 !important 的使用方法

    这篇文章围绕css样式的优先级展开,主要讲了css中!important的使用方法,正在学习这个知识的朋友可以看看,希望对你有帮助! !important为开发者提供了一个增加样式权重的方法。应当注意的是!important是对整条样式的声明,包括这个样式的属性和属性值 a{color:green!…

    好文分享 2025年12月24日
    000
  • css如何设置透明度?设置透明度的两种方法(代码实例)

    在前端页面开发布局的时候,为了给用户呈现不同的效果,经常需要设置透明度,那么css是怎样设置透明度的?本章给大家介绍用css设置透明度的两种方法(代码实例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 推荐手册:css在线手册 一、css rgba()设置颜色透明度 语法: rg…

    好文分享 2025年12月24日
    000
  • CSS如何实现图片等比例缩放不变形(代码实例)

     在工作中经常需要对图片进行缩放,但有些缩放会让图片变形,所以今天就给大家介绍css如何实现图片等比例缩放不变形,正在学习css的小伙伴赶紧过来看看吧! 下面一段代码给大家介绍CSS实现图片等比例缩小不变形 ,具体代码如下所示: @@##@@ img { /*等宽缩小不变形*/ /*width: 1…

    好文分享 2025年12月24日
    000
  • 分享7种实现CSS垂直居中的技巧(附代码)

    网页css的垂直居中需求始终没有停过,而其困难度也始终没有让人轻松过,经过了每位开发先烈的研究后,据说css的垂直居中技巧已达到近十种之多,但始终鲜为人知,部分公司甚至将css的垂直居中技巧当成面试题,其重要性可见一斑,今天就带着大家了解一下css的垂直居中的多种方式吧。 1、Line-height…

    好文分享 2025年12月24日
    000
  • 分享四种方式将CSS样式导入到HTML中

    在进行页面布局时,必然会用到css和html,因为html是页面的主体内容部分,css是页面的表现,通俗的讲,css是给html进行化妆的。那css的样式怎么在html中实现呢?这时候就需要在html中引入css文件,今天就和大家聊聊如何将css导入html中,有需要的可以参考一下。 将CSS导入H…

    2025年12月24日 好文分享
    000
  • css清理浮动有什么作用?清理浮动的方法(介绍)

    在前端开发过程中,我们经常会使用到浮动(float),这个我们即爱又恨的属性。爱,是因为通过浮动,我们能很方便地进行布局; 恨,是因为浮动之后遗留下来太多的问题需要解决。本章给大家介绍css为何要清除浮动,以及如何清除浮动;让大家了解元素进行浮动之后会出现的问题,以及css消除浮动的几种方法。有一定…

    2025年12月24日
    000
  • 在html中引入CSS文件时,link和@import有什么区别?

    之前介绍了如何在html中引入css文件,将css导入html的方式有四种,分别是行内式,嵌入式,外部样式。外部样式又分为import导入式,link链接式。同样是外部样式,那link和@import的区别在哪里?想知道的小伙伴继续往下看吧。 一、引入方式的区别 link链接式: import导入式…

    2025年12月24日
    000
  • 什么是css模块化?css模块化的实现方法

    本篇文章给大家带来的内容是关于什么是css模块化?css模块化的实现方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 CSS 模块化 CSS(Cascading Style Sheets),从诞生之初就决定了它无法编程,甚至连解释性语言都算不上,只能作为一种简单的层叠样式表,对 …

    好文分享 2025年12月24日
    000

发表回复

登录后才能评论
关注微信