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 限制