margin属性用来使用设置外边距,大多数情况使用正值,但是一些稍复杂的定位就会使用到负值,所以对margin属性的正负值理解是有必要的,本文同时解释了margin-right和margin-bottom没有效果的原因以及解决方法。

1、“margin-left”属性

margin-left属性设置元素的左边距。

记忆方式一:以“元素原来位置的左边”为零界线,向右移动为正值,向左移动为负值。

记忆方式二:以“其他元素(即元素想要拉开距离的外元素)的边缘”为零界线,元素的左边与零界线拉开距离为正;元素左边超出零界线为负。

例子如下:

2、“margin-right”属性

margin-right属性设置元素的右边距。

注意:直接使用margin-right属性一般不会有任何效果,这是因为浏览器默认从左往右渲染元素,在没有超出父容器的宽度的前提下, 如果子容器的宽度能够被容纳 ,设置margin-right是没有用的。

解决:要使margin-right有用,就必须使用定位属性(position)或者浮动属性(float)为前提。

这里使用position为例,先将父元素设置相对定位position:relative,再将测试元素设置绝对定位position:absolute,right:0px。

记忆方式一:以“元素原来位置的右边”(这里指已经定位好,前提设置好的位置)为零界线,向左移动为正值,向右移动为负值。

记忆方式二:以“其他元素(即元素想要拉开距离的外元素)的边缘”为零界线,元素的右边与零界线拉开距离为正;元素右边超出零界线为负。

例子如下:

3、“margin-top”属性

margin-top属性设置元素的上边距。

记忆方式一:以“元素原来位置的上边”为零界线,向下移动为正值,向上移动为负值。

记忆方式二:以“其他元素(即元素想要拉开距离的外元素)的边缘”为零界线,元素的上边与零界线拉开距离为正;元素上边超出零界线为负。

例子如下:

4、“margin-bottom”属性

margin-bottom属性设置元素的下边距。

注意:直接使用margin-bottom属性一般不会有任何效果,这是因为浏览器默认从上往下渲染元素,在没有超出父容器的高度的前提下, 如果子容器的高度能够被容纳 ,设置margin-bottom是没有用的。

解决:要使margin-bottom有用,就必须使用定位属性(position)或者浮动属性(float)为前提。

这里使用position为例,先将父元素设置相对定位position:relative,再将测试元素设置绝对定位position:absolute,bottom:0px。

记忆方式一:以“元素原来位置的下边”(这里指已经定位好,前提设置好的位置)为零界线,向上移动为正值,向下移动为负值。

记忆方式二:以“其他元素(即元素想要拉开距离的外元素)的边缘”为零界线,元素的下边与零界线拉开距离为正;元素下边超出零界线为负。

例子如下:

总结:

以“元素原来位置的边”为零界线(margin-left以左边,margin-right以右边,margin-top以上边,margin-bottom以下边),向边的相反方向移动为正值,向边的同向方向移动为负值。举例:margin-left,以“元素原来位置的左边”为零界线,向右移动为正值,向左移动为负值。

margin属性的正负值确定的更多相关文章

  1. 由浅入深漫谈margin属性1

    margin 在中文中我们翻译成外边距或者外补白(本文中引用外边距).他是元素盒模型(box model)的基础属性. (该文章解释是否正确有待商榷,目前我的实验结果为:在默认情况或者div左浮动的情 ...

  2. 关于元素加上margin属性后以谁为基准移动的问题及负margin的问题

    突然想起这个问题,这是很基础很基础的问题啊,但之前很多次都忘记了,然后困扰了我很久.不清不楚的感觉很不好,所以要做成笔记比较好记住,好记性不如烂笔头,以后再次困惑了再回来看看.推荐文章,海玉的< ...

  3. 由浅入深漫谈margin属性

    margin 在中文中我们翻译成外边距或者外补白(本文中引用外边距).他是元素盒模型(box model)的基础属性. 一.margin的基本特性 margin 属性包括 margin-top, ma ...

  4. margin属性总结,你想知道的这里都有

    一.前言 在学习CSS时,遇到的很多问题都是和margin有关,这个小怪兽总是出其不意的让我的界面排版变的混乱,还让人摸不着头脑,原因还是在于我对他的一些属性没有进行一个深入的了解,导致我在设计之初就 ...

  5. margin属性

    可以设置position:absolute/relative/fixed,通过调节top/bottom/left/right实现元素的定位,这样很好,但是有时候想通过margin来实现. 下面是mar ...

  6. (九)学习CSS之margin属性

    参考: 所有浏览器都支持 margin 属性. 注释:任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 "inherit". 定义和用法 margi ...

  7. CSS的margin属性:详解margin属性

    在网上看到的一篇文章,说的比较全面.原文地址:http://www.poluoluo.com/jzxy/201206/167007.html 你真的了解margin吗? 你知道margin有什么特性吗 ...

  8. 你是否彻底了解margin属性?

    写css,你少不了与margin打交道.你真的了解margin吗?你知道margin有什么特性吗?你知道什么是垂直外边距合并?margin在块元素.内联元素中的区别?什么时候该用padding而不是m ...

  9. margin属性以及垂直外边距重叠问题

       盒子的margin属性         盒子的外边距margin 指的是当前盒子与其他盒子之间的距离,环绕在盒子周围的空白区域,属于不可见的区域,,不会影响到可见框的大小,而是会影响到盒子的位置 ...

随机推荐

  1. angular.js的ng-app 指令定义一个 AngularJS 应用程序。

    <!DOCTYPE html> <html lang="en" ng-app> <head> <meta charset="UT ...

  2. c++字符串的输入的思考

    字符串的输入,是学习c++的一个重点,也是一个极富有细节意味的知识点,如果你不了解这些细节,你可能会在写程序时犯错而一脸懵逼不知所措. 与此同时,我们要了解c++缓冲区的概念,程序的输入都建有一个缓冲 ...

  3. H5JS二维动画制作!two.js的基本操作class1

    今天介绍一个网络上并不常用的插件two.js,刚开始学习的过程中,发现网上并没有合适的教程,在此发表基本操作 two.js是一款网页二维绘图软件,可以在指定区域内产生自设的各种动画效果 下载网址如下: ...

  4. 使用EF连接Postgresql

    环境: VS2017 Community Windows 10 Postgresql 9.6 安装Postgresql: https://www.postgresql.org/download/ 1. ...

  5. CoolBlog开发笔记第3课:创建Django应用

    教程目录 1.1 CoolBlog开发笔记第1课:项目分析 1.2 CoolBlog开发笔记第2课:搭建开发环境 前言 经过上一节我们已经创建了CoolBlog工程,但是关于CoolBlog的功能代码 ...

  6. Linux: 安装NVIDIA显卡驱动

    Linux(Fedora25, 64bit)台式机配备了NVIDIA显卡GTX950,但是仅仅使用开源驱动nouveau,无法发挥NVIDIA显卡的性能,所以可以考虑使用官方提供的显卡驱动. # 先安 ...

  7. ASP.NET初始化流程分析2

    上一篇讲了从创建应用程序域到创建ISAPIRuntime实例的过程,本篇继续讲Asp.net处理第一次请求的必要的初始化过程. ISAPIRuntime分析 ISAPIRuntime在System.W ...

  8. ASP.NET WEB API 自定义模型校验过滤器

    对外公开WEB接口时,对模型校验是常见的安全常识,常见的写法是在controller中判断ModelState.IsValid,以注册用户API为例. Model: public class Regi ...

  9. 如何判断浏览器为ie10以上

    如果针对ie10 以上单独写css样式的话,ie10以上已经不提供 <!--[if ...]><![endif]--> 这种方法去操作了,所以可以用css媒体查询的方法@med ...

  10. 将HTML导出生成word文档

    前言: 项目开发中遇到了需要将HTML页面的内容导出为一个word文档,所以有了这边随笔. 当然,项目开发又时间有点紧迫,第一时间想到的是用插件,所以百度了下.下面就介绍两个导出word文档的方法. ...