如何获取单元格父元素宽度_文档流简介,块级元素高度

首先看一个例子:

直接写background-image导入图片,为了看到模型,加上了border,可以看到只有一条红色的线。

background-image​developer.mozilla.org
d5d403eb0967ee91f140106e36b36e75.png

13b14e641dc76c451ca9beab2955fb16.png

这说明里面文档流高度为零,需要手动设置高度。

增加 height: 515px;

937b18054c4bb0b7dd6d1e9cfb9079bb.png

如果背景图片想换成别的,分享一个图片网站。

Awesome Wallpapers - wallhaven.cc​alpha.wallhaven.cc

可以初步看到这就是文档流导致的效果。

关键一句话——div高度由其内部文档流元素的高度总和决定


关键一句话——文档流:文档流元素的流动方向要看下面很长的介绍:

下面来详细看看文档流的效果

内联元素span

ea2dc1301412537baaef55a07c648905.png

增加块级元素div

954320e42d4c269f599c0fa529138057.png

可以看到每个块级元素都占一行,而内联元素都挤在一行。

有几个注意点:

1、内联元素一行占满了,会按照Z字形从左往右,然后从上往下排列:

16cf2d90689068e8b3748e20b9dd02a5.png

2、内联元素的中文字体和英文字体本身的分割方式不同。

英文的最后b已经没有了,但是还是不换行,中文的文字8每个字如果一行满了都会上下按照Z字行排列分开。

1ee667fb788f548e2a4223e0dcfa5b9d.png

如果想把英文的分开可以使用另外属性,这个属性叫做word-break。

word-break​developer.mozilla.org
d5d403eb0967ee91f140106e36b36e75.png

设置word-break:break-all;这样英文内联元素一行占满了也可以分割;

c00573af921bde5530c87418d3440c51.png

3、块级元素就算设置宽度很小,还是会占用一行。

7897036a2f0c37be40340653161bf9ec.png

想让一行占用多个块级元素就需要设置别的样式,有两种方式:

(1)利用display: inline-block; 不过这种方式会产生一些意想不到的bug,一般建议不要使用这种方式。

b2456ae79fc3a4e2a10c6e60fb05959b.png

(2)推荐使用方式:使用float:

在子元素上设置——float: left;

然后在父元素上设置一个伪类——

父元素::after{content: '';

display: block;

clear: both;

}

bomber:利用float竖排变成横排笔记​zhuanlan.zhihu.com

如果在body上作为父元素加伪类:效果有点奇怪。

31952e247010b497db20496a0d9c91a1.png

这个时候的父元素最好是包括了所有的float属性,这样可以增加一个nav来当代替body作为包括了所有的float属性。

bc5d9bd1786eb445c4f6b2f1f717209f.png

文档内元素的流动方向介绍到这里结束。


所以body块级元素的总高度由所有内部所有元素文档流的高度决定,不是相等。

f52b245b7512cbdbae43ec6a21444055.png

如果body里面没有元素。那么高度就是零。

e63ba4c51885cf4c1c242b5f731f3e02.png

总结:

1、内联元素从左往右流动;一行占用满了才会按照Z字行另起一行;

2、块级元素从上往下流动,块级元素不管宽度大小,都会占用一行;

3、块级元素的高度由内部文档流元素的总和决定的,不是相等。

最后内联元素的行高怎么确定呢,这个有点复杂,简单介绍可以参考链接:

bomber:内联元素的高度​zhuanlan.zhihu.com

所以回到最开始的背景图,这里就不得不设置一个高度height:515px。

但是不到万不得已请不要使用该属性来定义高度,因为块元素内部是按照内部文档流元素的高度决定了,如果设置的高度比原来要小就麻烦了。

e6f7eedfad6127939f5afdb93c18c305.png

本文为本人的原创文章,著作权归本人和饥人谷所有,转载务必注明来源

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值