请马上登录,朋友们都在花潮里等着你哦:)
您需要 登录 才可以下载或查看,没有账号?立即注册
x
容器就是用来装载、组织子元素的元素。在dom里,我们已经知道了元素之间的层级关系,容器针对其子元素而言,它是父元素,但它自己也会有自己的父辈元素,除非它自己就是body——严格来讲,body是DOM的最高层父元素。
我们这里要讨论的,是普通的容器,例如,一个div元素,它里面有若干个子元素,那么,这个div就是一个普通的容器,它负责将其内的各子元素包裹起来,并带着它们呈现在dom的文档流中。具体而言,我们要讨论的具体内容,是作为容器的宽高尺寸的新定义:fit-content.
试看一下效果:
上述盒子集合,父盒子,即红色边框盒子,使用了 width 和 height 值都是 fitcontent 的宽高定义。让我们先观察父框的宽度,可以看得出来,它的宽度由最长的子元素的具体尺寸决定;在看看高度,是两个子元素高度的总和。当然,所有这些具体的尺寸,都可能将父子元素的padding(内边距)与margin(外边距)计算在内。
我再再来看子元素横向布局的情况:
在这个例子中,父框我们加入了 display: flex; 的弹性布局设计,flex布局之下,子元素默认横向排列,所以出现了以上的效果:父盒子的宽度由两个子元素的宽度累加而得(含父元素的padding、子元素的margin),而其高度,由子元素最高的那一个决定。
可以从本例所使用的CSS和HTML代码来加深对 fit-content 的理解:
<style> .outer { margin: auto; padding: 10px; width: fit-content; height: fit-content; border: 1px solid red;} .inner1 { margin: 10px;width: 300px; height: 150px; border: 1px dashed olive; } .inner2 { margin: 10px; width: 400px; height: 100px; border: 1px dotted tan; } </style>
<div class="outer"> <div class="inner1">inner1</div> <div class="inner2">inner2</div> </div>
<div class="outer" style="display: flex"> <div class="inner1">inner1</div> <div class="inner2">inner2</div> </div> |