CSS属性之margin

0.对自身可视宽度的影响

1>改变处于标准文档流中,未设置width值的block元素的可视宽度

在标准文档流中,对于没有设置宽度的block元素,当其具有内容或者设置高度后,其自身宽度为父元素宽度的100%,这个时候给block元素设置水平方向的margin值,就会改变元素的可视宽度。但是不能改变高度,因为block元素的高度是固定或者等于其内容的高度,并不会拉伸。

这个特点在bootstrap的布局里就有用到。

<div class="wrap">
  父元素padding: 0 10px;
  <div class="yellow">此block元素没有设置margin值</div>
  <div class="red">此block元素设置margin-left:-10px;margin-right:-10px; 拉伸了元素宽度</div>
</div>
* {margin:0; padding:0;}

.wrap {
  width: 400px;
  height: 400px;
  margin: 50px auto;
  padding: 0 10px;
  border: 1px solid #ccc;
}
.red {
  height: 100px;
  background-color: red;
  margin: 0 -10px;
}
.yellow {
  height: 100px;
  background-color: yellow;  
}

2>改变未设置宽度,但是设置了定位(成对设置的定位,如:top/bottom,left/right)的绝对定位元素的可视宽高

当绝对定位元素没有设置width,但设置了top/bottom,left/right值时,元素会被拉伸。比如设置left:0; right:0; 元素的宽度就是第一个相对定位的父元素的宽度的100%了,这时也能通过margin来改变元素的可视宽度。同样,对于绝对定位元素,我们也能改变它的可视高度。

 

<div class="wrap">
  父元素position: relative;
  <div class="yellow">绝对定位,并且设置top:0; bottom:0; 垂直拉伸元素,通过设置margin来改变可视高度</div>
</div>
* {margin:0; padding:0;}

.wrap {
  position: relative;
  width: 400px;
  height: 400px;
  margin: 50px auto;
  border: 1px solid #ccc;
}
.yellow {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100px;
  margin: 50px 0;
  background-color: yellow;  
}

1.百分比值的margin

跟padding一样,对于正常处于标准文档流的元素而言,当元素的margin值为百分比值时,其实际值等于父元素的宽度*百分比;

当元素设置绝对定位后,其实际值等于第一个相对于它定位的父元素的宽度*百分比

<div class="wrap">
  父元素宽度400px;
  <div class="yellow">margin-top:10%; 实际的margin-top=400px*10%=40px</div>
</div>
* {margin:0; padding:0;}

.wrap {
  width: 400px;
  height: 400px;
  margin: 50px auto;
  border: 1px solid #ccc;
}
.yellow {
  width: 200px;
  height: 200px;
  margin-top: 10%;
  background-color: yellow;  
}

2.margin重叠

margin重叠通常发生在兄弟元素之间以及父子元素之间,如果大家平时没有注意的话,margin重叠可能常常会给我们带来一些小麻烦,这里就把发生margin重叠的情况总结一下。

1>兄弟元素之间

当两个元素发生margin重叠时,其实际值的情况:

  1. 当两个margin值都为正时,实际值=两个中较大的值
  2. 当两个margin值是一正一负时,实际值=两个值相加
  3. 当两个margin值都为负时,实际值=两个中绝对值大的

那什么时候会发生margin重叠呢?

对于两个相邻的兄弟元素而言,只要是处于标准文档流中的block元素,垂直方向都会发生margin重叠。

2>父元素与第一个/最后一个子元素之间

  1. 设置border-top/bottom
  2. 设置padding-top/bottom
  3. 设置overflow:hidden/auto等属性,实现BFC

3.margin的auto值

给一个定宽的block元素设置margin: 0 auto;使元素水平居中,这应该是很多人经常使用的,不过对于auto值的具体作用,可能很少有人知道。

简单点说,对于未设置固定width或height值的元素,如果能自动拉伸,那么当设置了固定值后,auto就可以用来分配剩余空间大小。

感觉有点拗口,举个例子,有一个定宽的block元素,我们想让他在右边显示,最常用的就是使用float属性,不过用margin-left: auto;一样可以实现:

<div class="wrap">
  <div class="red">margin-left: auto;</div>
</div>
* {margin:0; padding:0;}

.wrap {
  position: relative;
  width: 400px;
  height: 400px;
  margin: 50px auto;
  border: 1px solid #ccc;
}
.red {
  width: 100px;
  height: 100px;
  background-color: red;
  margin-left: auto;
}

设置margin值为auto的有效场景包括:

  1. 普通定宽block元素,水平方向设置有效;
  2. 绝对定位元素,在设置了成对left/right,top/bottom或者都设置的情况下,定宽或定高都有效;
  3. 在父元素为display: flex;的情况下,子元素margin值为auto都有效

 

d9hfdl73
关注 关注
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSS Margin(外边距) CSS Padding(填充)
h13673476027的博客
11-14 948
​ 所有的CSS填充属性 属性 说明 padding 使用缩写属性设置在一个声明中的所有填充属性 padding-bottom 设置元素的底部填充 padding-left 设置元素的左部填充 padding-right 设置元素的右部填充 padding-top 设置元素的顶部填充​
CSSmargin样式属性
zzxv587的博客
05-30 417
margin-外边距样式属性 相对于同级的标签设置偏移量 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style> span{ border:1px solid red; } ...
前端基础—CSS
weixin_57138526的博客
07-24 737
前端基础—CSS
margin相对的元素
xiaowei的博客
06-15 2034
margin相对的元素在不同的情况下有所不同: 如果父元素在子元素的margin的同向上有padding或border的话,子元素的margin相对于父元素,否则相对于父元素以外的元素。 我们还是看例子吧: margin     .parent{width: 300px;line-height: 1.8;}     .sam
CSS:margin属性备忘
csdou的专栏
03-03 491
参考资料:http://www.blueidea.com/tech/web/2007/4546.asp,由浅入深漫谈margin属性 - 网页制作 - 蓝色理想 直接上代码:http://www.w3.org/1999/xhtml">aaa        html  { }    body  {  margin:0px; }          ,因为top100,所以再往下移动10
php中css配置怎么设置,CSSmargin属性怎么设置
weixin_35919125的博客
03-24 116
CSSmargin属性怎么设置margin是外边距。这次来教大家如何用margin属性来操作DIV。怎么样操作DIV与DIV之间的间距margin用于设置对象标签之间距离间隔,比如2个上下排列的DIV盒子,我们就可以使用margin样式实现上下2个盒子间距。Margin呈现是位于对象边框外侧,紧贴于边框,marign与padding位置却相反css padding却是紧贴边框位于边框内侧。DI...
CSS重要属性margin 属性知识大整合(必看篇)
12-13
二是把知识分享出来,避免各位对margin属性的误解。内容可能会有点多,但都是精华,希望大家耐心学习。 以下的分享会分为如下内容: 1.margin 属性的简单介绍  1.1:普通流的 margin 百分比设置  1.2:绝对定位的 ...
CSSmargin知识点(必看)
09-24
CSS中的margin属性是用于设置元素边界的外部空间,它是CSS布局中的一个重要概念,其详细知识点如下: 1. margin的百分比值:margin的百分比值是相对于其包含块(容器元素)的宽度进行计算的。例如,若容器宽度为800...
css margin 属性 详细使用说明
12-08
CSS中的`margin`属性是用来设置元素周围外边距的,它允许开发者控制元素与周围元素或容器之间的空间。`margin`属性的使用非常灵活,可以接受多种类型的值,包括长度单位(如像素、英寸、毫米、em)、百分比以及特殊...
间距和css的基础知识
weixin_72553821的博客
07-19 243
间距跟css基础知识
[HTML]CSS基础教程2
hjz0713的博客
01-09 333
HTML的CSS教程2
CSS笔记
ssssssssolo的博客
08-02 269
1、CSS样式继承 所谓CSS的继承是指被包在内部的标签将拥有外部标签的样式性质 一、无继承性的属性 1、display:规定元素应该生成的框的类型 2、文本属性: vertical-align:垂直文本对齐 text-decoration:规定添加到文本的装饰 text-shadow:文本阴影效果 white-space:空白符的处理 unicode-bidi:设置文本的方向 ...
前端1-----CSS颜色属性,字体文本和背景属性,边框属性,margin和padding,盒模型,行内块转换,浮动,三大定位...
dayinji1212的博客
08-11 563
前端1-----CSS颜色属性,字体文本和背景属性,边框属性,margin和padding,盒模型,行内块转换,浮动,三大定位 一丶css选择器的优先级 行内 > id选择器 > 类选择器 > 标签选择器 > 继承 1000 100 10 1 0 # 所有的值可以累加,但不能进位 (同级别...
Margin、盒子模型、设置背景图像平铺
wanglongjiayou的博客
09-20 1461
81.Margin Margin(外边距):margin 清除周围的(外边框)元素区域margin 没有背景颜色,是完全透明的。 margin 可以单独改变元素的上,下,左,右边距,也可以一次改变所有的属性。 Padding(填充):当元素的 padding(填充)内边距被清除时,所释放的区域将会受到元素背景颜色的填充。 单独使用 padding 属性可以改变上下左右的填充。 82.盒子模型 盒子模型中的边框属性包括:border-style,border-width,border-color. Bord
web前端学习(二十)——CSS3外边距属性margin)及填充属性(padding)的相关设置
热门推荐
★★光亭★★
01-29 1万+
web前端学习(二十)——CSS3外边距属性margin)及填充属性(padding)的相关设置
CSS基础:margin属性4种值类型,4个写法规则详解
最新发布
u013179804的博客
04-15 4153
你好,我是云桃桃。一个希望帮助更多朋友快速入门 WEB 前端的程序媛。回复 “前端基础题”,可免费获得前端基础 100 题汇总,回复 “前端工具”,可获取 Web 开发工具合集268篇原创内容-gz.h后台回复“”可获取开发工具,持续更新中后台回复“”可得到前端基础100题汇总,持续更新中。
CSS margin-top,margin-bottom 的理解和应用
weixin_34293141的博客
11-18 1025
margin的意思是元素的外边距区域值,即该元素外面要留白的距离。它的值可以设置为三种,一种是使用数值,例如:30px,还有一种是使用百分比(相对父元素的百分比),以及第三种:auto。下面用代码和效果说话。1,有如下结构<body> <divclass="page"> <divclass="containe...
写文章

热门文章

  • 给盒子div 加跳转链接 2641
  • Python自动化运维课程学习--Day1 1858
  • 自己动手搭建苹果推送Push服务器 1839
  • 深度神经网络(DNN)模型与前向传播算法 1835
  • 【canvas系列】用canvas实现一个colorpicker(类似PS的颜色选择器) 1587

最新评论

  • 自己动手搭建苹果推送Push服务器

    tyyking: token_hex 的值哪里来的

  • esri-leaflet部分瓦片缺失问题及解决办法

    我真不是王思聪: 前辈,还是不得啊,请指教一下 this.L.tileLayer('serverUrl', { errorTileUrl: this.theicon }) this.L.tileLayer('http://10.0.2.117/roadmap/{z}/{x}/{y}.png', { attribution: '© 高德地图' }).addTo(this.amp)

  • 【canvas系列】用canvas实现一个colorpicker(类似PS的颜色选择器)

    DCZLQR: 最近在小程序实现这个,博主能不能传授点经验啊

  • 【canvas系列】用canvas实现一个colorpicker(类似PS的颜色选择器)

    qq_28721365: 博主能否分享下,输入值rgb参数,两个颜色区域都指定到对应颜色,或者给个思路也行

大家在看

  • 三端全隔离压接端子485中继器磁耦隔离数据双向透传工业级2口信号放大器抗干扰防雷 225
  • 帝国CMS正文内容设置关键词与图片链接冲突的问题
  • 基于mimo系统的信道估计算法matlab仿真,对比LS,MMSE以及OMP压缩感知三种算法
  • 【数一线性代数】012入门 779
  • 基于ssm+vue多吃点订餐系统(开题报告+程序+论文+java)

最新文章

  • 测试人员应该如何发展?
  • [UWP]附加属性2:实现一个Canvas
  • Monkey实例测试
2017年74篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家玻璃钢异形雕塑定做安徽景区玻璃钢雕塑销售厂家广西大型玻璃钢雕塑上杭玻璃钢花盆花器马鞍山浮雕玻璃钢雕塑厂家玻璃钢人像雕塑多少钱超大玻璃钢花盆图片龙岩模压法玻璃钢雕塑销售玻璃钢动物马雕塑哪里有新郑玻璃钢雕塑加工商场美陈怎么布置玻璃钢艺术雕塑哪家好玻璃钢大型雕塑青岛家用玻璃钢雕塑摆件吴忠玻璃钢景观雕塑造型精美新款玻璃钢创意雕塑玻璃钢花盆粘土手工玻璃钢雕塑一平方多少钱武汉广场玻璃钢雕塑生产厂家运城不锈钢仿古玻璃钢仿铜雕塑云岩区玻璃钢雕塑制作哪家好北京户内玻璃钢雕塑生产厂家济南景区玻璃钢雕塑制作岳阳楼玻璃钢造型雕塑广州花都水泥玻璃钢花盆厂邵阳长沙玻璃钢雕塑定制设计山东中庭商场美陈哪里有中庭美陈商场近况通州区商场美陈哪家公司好嘉峪关玻璃钢雕塑供应香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化