line-height,rem 和 flex的详解 以及文本溢出省略号表示失效问题 --min-width

line-height基本概念
line-height 行高 是指文本行基线的垂直距离
在这里插入图片描述
如图所示 行距=行高-字体大小
如果font-size与行高相同时 行距为0
在这里插入图片描述
如果font-size 大于 行高时 行距为负值 两行重叠
在这里插入图片描述
重要!!!
1.在没有设置div的height属性时,div的高度根据line-height的大小而变化,且文字垂直居中。
2.line-height是行高的意思,height则是定义元素自身的高度

rem
先说一个常识,浏览器的默认字体高都是16px
rem是只相对于根元素htm的font-size
假如 根元素的font-size是50px
则1rem = 50px
div的高度是200px 对应4rem

用一个东西肯定要知道它的好处啦,由于其他字体大小都是基于html的,所以在移动端做适配的时候,可以使用这样的方法

 1 @media only screen and (min-width: 320px){
 2   html {
 3     font-size: 62.5% !important;
 4   }
 5 }
 6 @media only screen and (min-width: 640px){
 7   html {
 8     font-size: 125% !important;
 9   }
10 }
11 @media only screen and (min-width: 750px){
12   html {
13     font-size: 150% !important;
14   }
15 }
16 @media only screen and (min-width: 1242px){
17   html {
18     font-size: 187.5% !important;
19   }
20 }

flex
flex 是 flex-grow、flex-shrink、flex-basis的缩写

<div class="parent">
    <div class="item-1"></div>
    <div class="item-2"></div>
    <div class="item-3"></div>
</div>
 
<style type="text/css">
    .parent {
        display: flex;
        width: 600px;
    }
    .parent > div {
        height: 100px;
    }
    .item-1 {
        width: 140px;   //形同虚设 基准值0%
        flex: 2 1 0%;
        background: blue;
    }
    .item-2 {
        width: 100px;
        flex: 2 1 auto;  //auto 代表100px
        background: darkblue;
    }
    .item-3 {
        flex: 1 1 200px;
        background: lightblue;
    }
</style>

在这里插入图片描述
主轴上父容器总尺寸为 600px

子元素的总基准值是:0% + auto + 200px = 300px,其中

0% 即 0 宽度
auto 对应取主尺寸即 100px
故剩余空间为 600px - 300px = 300px

伸缩放大系数之和为: 2 + 2 + 1 = 5

剩余空间分配如下:

item-1 和 item-2 各分配 2/5,各得 120px
item-3 分配 1/5,得 60px
各项目最终宽度为:

item-1 = 0% + 120px = 120px
item-2 = auto + 120px = 220px
item-3 = 200px + 60px = 260px
120+220+260为总宽度

注意
当 item-1 基准值取 0% 的时候,是把该项目视为零尺寸的,故即便声明其尺寸为 140px,也并没有什么用,形同虚设

而 item-2 基准值取 auto 的时候,根据规则基准值使用值是主尺寸值即 100px,故这 100px 不会纳入剩余空间

当 flex 取值为一个非负数字,则该数字为 flex-grow 值,flex-shrink 取 1,flex-basis 取 0%,如下是等同的

.item {flex: 1;}
.item {
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 0%;
}

flex: 1的用处
在一个大的div中已知一个或多个内部div元素的宽度 为某个未知宽度的div元素设置flex:1 将沾满剩余空间

一般情况下,min-width的默认值是0,但是flexbox容器的flex项的min-width属性默认为auto 如图
在这里插入图片描述
在这里插入图片描述
文本溢出省略号显示
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis
但是有时候显示不出来 此时需要加上min-width: 0属性
在这里插入图片描述
content – > width – > flex-basis(由 max-width|min-width 限制)

flex: 1 代表 flex-grow: 1; flex-shrink: 1; flex-basis: 0%;
如果没有设置 flex-basis 属性,那么 flex-basis 的大小就是 flex 项的 width 属性的大小;
如果没有设置 width 属性,那么 flex-basis 的大小就是 flex 项内容(content)的大小;

如果不加min-width的话 flex-basis的大小是flex项的宽度
加了min-width 此时flex-basis的大小就是由 max-width|min-width 限制

发布了33 篇原创文章 · 获赞 0 · 访问量 862

猜你喜欢

转载自blog.csdn.net/weixin_44685781/article/details/105129719