Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 800|回复: 0

CSS 外边距

[复制链接]

该用户从未签到

发表于 2011-7-29 21:19:06 | 显示全部楼层 |阅读模式
围绕在元素边框的空缺区域是外边距。设置外边距会在元素外创建额外的“空缺”。

设置外边距的最简朴的方法就是使用 margin 属性,这个属性接受任何长度单位、百分数值甚至负值。



css margin 属性

设置外边距的最简朴的方法就是使用 margin 属性。

margin 属性接受任何长度单位,可以是像素、英寸、毫米或 em。

margin 可以设置为 auto。更常见的做法是为外边距设置长度值。下面的声明在 h1 元素的各个边上设置了 1/4 英寸宽的空缺:
[pre]h1 {margin : 0.25in;}[/pre]
下面的例子为 h1 元素的四个边分别定义了不同的外边距,所使用的长度单位是像素 (px):
[pre]h1 {margin : 10px 0px 15px 5px;}[/pre]
与内边距的设置相同,这些值的顺序是从上外边距 (top) 开始围着元素顺时针旋转的:
[pre]margin: top right bottom left[/pre]
另外,还可认为 margin 设置一个百分比数值:
[pre]p {margin : 10%;}[/pre]
百分数是相对于父元素的 width 计算的。上面这个例子为 p 元素设置的外边距是其父元素的 width 的 10%。

margin 的默认值是 0,所以假如没有为 margin 声明一个值,就不会泛起外边距。但是,在实际中,浏览器对很多元素已经提供了预定的样式,外边距也不例外。例如,在支持 css 的浏览器中,外边距会在每个段落元素的上面和下面天生“空行”。因此,假如没有为 p 元素声明外边距,浏览器可能会自己应用一个外边距。当然,只要你特别作了声明,就会笼盖默认样式。



值复制

还记得吗?我们曾经在前两节中提到过值复制。下面我们为您讲解如何使用值复制。

有时,我们会输入一些重复的值:
[pre]p {margin: 0.5em 1em 0.5em 1em;}[/pre]
通过值复制,您可以不必重复地键入这对数字。上面的规则与下面的规则是等价的:
[pre]p {margin: 0.5em 1em;}[/pre]
这两个值可以取代前面 4 个值。这是如何做到的呢?css 定义了一些规则,答应为外边距指定少于 4 个值。规则如下:


    [li]假如缺少左外边距的值,则使用右外边距的值。
    [li]假如缺少下外边距的值,则使用上外边距的值。
    [li]假如缺少右外边距的值,则使用上外边距的值。 [/li]

下图提供了更直观的方法来了解这一点:
css 值复制" src="http://www.w3school.com.cn/i/ct_css_margin_value.gif">
换句话说,假如为外边距指定了 3 个值,则第 4 个值(即左外边距)会从第 2 个值(右外边距)复制得到。假如给定了两个值,第 4 个值会从第 2 个值复制得到,第 3 个值(下外边距)会从第 1 个值(上外边距)复制得到。最后一个情况,假如只给定一个值,那么其他 3 个外边距都由这个值(上外边距)复制得到。

利用这个简朴的机制,您只需指定必要的值,而不必全部都应用 4 个值,例如:
[pre]h1 {margin: 0.25em 1em 0.5em;}    /* 等价于 0.25em 1em 0.5em 1em */
h2 {margin: 0.5em 1em;}        /* 等价于 0.5em 1em 0.5em 1em */
p {margin: 1px;}            /* 等价于 1px 1px 1px 1px */
[/pre]
这种办法有一个小缺点,您最后肯定会碰到这个题目。假设但愿把 p 元素的上外边距和左外边距设置为 20 像素,下外边距和右外边距设置为 30 像素。在这种情况下,必需写作:
[pre]p {margin: 20px 30px 30px 20px;}[/pre]
这样才能得到您想要的结果。遗憾的是,在这种情况下,所需值的个数没有办法更少了。

再来看另外一个例子。假如但愿除了左外边距以外所有其他外边距都是 auto(左外边距是 20px):
[pre]p {margin: auto auto auto 20px;}[/pre]
同样的,这样才能得到你想要的效果。题目在于,键入这些 auto 有些麻烦。假如您只是但愿控制元素单边上的外边距,请使用单边外边距属性。



单边外边距属性

您可以使用单边外边距属性为元素单边上的外边距设置值。假设您但愿把 p 元素的左外边距设置为 20px。不必使用 margin(需要键入良多 auto),而是可以采用以下方法:
[pre]p {margin-left: 20px;}[/pre]
您可以使用下列任何一个属性来只设置相应上的外边距,而不会直接影响所有其他外边距:


    [li]margin-top
    [li]margin-right
    [li]margin-bottom
    [li]margin-left [/li]

一个规则中可以使用多个这种单边属性,例如:
[pre]h2 {
  margin-top: 20px;
  margin-right: 30px;
  margin-bottom: 30px;
  margin-left: 20px;
  }
[/pre]
当然,对于这种情况,使用 margin 可能更轻易一些:
[pre]p {margin: 20px 30px 30px 20px;}[/pre]
不论使用单边属性仍是使用 margin,得到的结果都一样。一般来说,假如但愿为多个边设置外边距,使用 margin 会更轻易一些。不外,从文档显示的角度看,实际上使用哪种方法都不重要,所以应该选择对自己来说更轻易的一种方法。



提示和注释

提示:Netscape 和 IE 对 body 标签定义的默认边距(margin)值是 8px。而 Opera 不是这样。相反地,Opera 将内部填充(padding)的默认值定义为 8px,因此假如但愿对整个网站的边沿部门进行调整,并将之准确显示于 Opera 中,那么必需对 body 的 padding 进行自定义。



css 外边距实例:


设置文本的左外边距
本例演示如何设置文本的左外边距。

<HTML>
<head>
<style type="text/css">
p.leftmargin {margin-left: 2cm}
</style>
</head>

<body>
<p>这个段落没有指定外边距。</p>
<p class="leftmargin">这个段落带有指定的左外边距。</p>
</body>

</html>


设置文本的右外边距
本例演示如何设置文本的右外边距。

<html>
<head>
<style type="text/css">
p.rightmargin {margin-right: 8cm}
</style>
</head>

<body>
<p>这个段落没有指定外边距。</p>
<p class="rightmargin">这个段落带有指定的右外边距。这个段落带有指定的右外边距。这个段落带有指定的右外边距。</p>
</body>

</html>


设置文本的上外边距
本例演示如何设置文本的上外边距。

<html>
<head>
<style type="text/css">
p.topmargin {margin-top: 5cm}
</style>
</head>

<body>
<p>这个段落没有指定外边距。</p>
<p class="topmargin">这个段落带有指定的上外边距。</p>
</body>
</html>


设置文本的下外边距
本例演示如何设置文本的下外边距。

<html>
<head>
<style type="text/css">
p.bottommargin {margin-bottom: 2cm}
</style>
</head>

<body>
<p>这个段落没有指定外边距。</p>
<p class="bottommargin">这个段落带有指定的下外边距。</p>
<p>这个段落没有指定外边距。</p>
</body>

</html>


所有的外边距属性在一个声明中。
本例演示如何将所有的外边距属性设置于一个声明中。

<html>
<head>
<style type="text/css">
p.margin {margin: 2cm 4cm 3cm 4cm}
</style>
</head>

<body>

<p>这个段落没有指定外边距。</p>

<p class="margin">这个段落带有指定的外边距。这个段落带有指定的外边距。这个段落带有指定的外边距。这个段落带有指定的外边距。这个段落带有指定的外边距。</p>

<p>这个段落没有指定外边距。</p>

</body>

</html>




css 外边距属性

属性描述
margin简写属性。在一个声明中设置所有外边距属性。
margin-bottom设置元素的下外边距。
margin-left设置元素的左外边距。
margin-right设置元素的右外边距。
margin-top设置元素的上外边距。
回复

使用道具 举报

  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2011-7-29 21:39:59 | 显示全部楼层
    谢谢楼主分享。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-6-7 09:42 , Processed in 0.351114 second(s), 33 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表