行内元素和块元素的区别

块元素:不管内容多少,块元素都会在浏览器中独占一行。可设置宽高如果不设置宽高那么它的宽度是100%(占满父级元素一整行)

    缺点:1.相邻元素垂直。相邻外边距会重叠。margin-bottom和margin-top重叠(重叠之后的值是两个值中的最大值)

                第一种解决方案:原理bfc相关

               2.父子的相邻,父元素的margin-top和子元素的margin-top发生重叠 (重叠之后的值是两个值中的最大值)

                关于父子相邻的解决方案:

                    第一种解决方案.取消相邻,给父元素设置border或者padding-top  让相邻之间有间隔。

                    第二种解决方案,父元素加overflow:hidden属性  -- 原理bfc相关


块元素包括:div, h1-h6 , p ,ul,li,ol, dl,dt, hr,form,table ,tr,td

行内元素内容决定所占空间的多少,内容多少就占多少空间。不能设置宽高(默认宽高是0)。margin垂直方向无效(margin-top,margin-bottom),如果设置垂直方向用line-height属性。

多个行内元素排列在一起,他们之间会出席空格。

行内元素包括:font , span, b , i , u, sub, sup, a ,  

标红为常见的块元素和行内元素。

行内块:共享一行,可设置宽高,多个行内元素排列在一起,他们之间会出席空格。可设置margin,padding属性。集合了块和行内的所有优点。

行内块元素包括:img,input 

注意:设置两个并排的div.一个width:20%,一个width:80%.用display:inline-block 让两个div并排,会使右侧的div向下排列

效果图:


产生该问题的原因是:div1+div2的宽度:100%.但是display:inline-block 的设置会使两个div之间有空格。width就为100%再加上空格 大于 父级的宽度,所以会折行。


处理方式:将div1和div2之间的空格去掉



text-align这个属性在水平方向上对行内(inline),行内块(inline-block)以及文字都起作用(行内元素或行内块元素设置水平居中用text-align属性)

行内元素:垂直居中用line-height属性

行内块:设置垂直居中,不能line-height会出问题,应该用vertical-align.多个行内块元素并排,同时设置居中

同级中找设置一个最高的行内块元素(这个行内块元素内容为空,仅仅用来做对齐的标尺),让其他元素向它对齐。

.div1{

 width:0px;

height:100%;

vertical-align:middle;

display:inline-block;   

}

块元素:

块元素水平居中:用margin-left和margin-right设置为auto的方式 类似:margin:0 auto

块元素水平垂直居中:

   情况1子级元素定宽定高(宽高各为100px):


 
.parent{
position:relative;
}
.child{position:absolute;left:50%;right:50%;margin-left:-50px;margin-top:-50px;}

情况2:子级元素宽高不定:

第一种:

.parent{
position:relative;
}
.child{
position:absolute;
top:50%;
left:50%;
transform:translate(-50%,50%);
}

第二种:

.parent{
display:flex;
justify-content:center;
align-item:center
}

块元素:display:block

 行内:display:inline

行内块:display:inline-block

让块消失:display:none(元素结构还在,但是在页面不显示,也不占位置)

vertical-align属性:垂直方向的对齐方式,对齐依据找到同级别最高的元素,以该元素为参照进行vertical-align的设置。

值:top,middle,bottom





  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值