资料
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
布局
flex 设定两列布局
场景:在设定两列布局时,如果给子元素设定 flex:1, 那么当其中一个子元素中的宽度超出时,会导致挤压另一个子元素,导致不是均分的两列布局
解决:使用 width:50%;
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.container{height: 500px;width: 500px;display: flex;}.left{/* flex: 1; */width: 50%;border: 1px solid black;}.right{/* flex: 1; */width: 50%;border: 1px solid black;}.desc-container{margin: 100px 0 30px;}.desc-content{width: 100%;max-width: 352px;}</style></head><body><div class="container"><div class="left"><h2>Fluent Design System</h2><div class="desc-container"><div class="desc-content">Go ahead, pick a platform to get started.Go ahead, pick a platform to get started.Go ahead, pick a platform to get started.</div></div></div><div class="right"><img src="https://fluentdesign.blob.core.windows.net/assets/icon-fluent@1x.png" alt=""></div></div></body></html>
延伸写法
- 给子元素设定 flex : 1 1 auto;
另一个子元素会进行挤压
- flex : 0 0 auto;
不会进行挤压
flex 表示的是 flex-grow , flex-shrink, flex-basis 。
其中 flex : 1.表示的就是 flex:1 1 0.
当 flex-basis 设置为0的时候,表示flexbox完全忽略flex子元素的尺寸,告诉 flexbox 所有空间都可以抢占,并按比例分享。
相关问题:当 父元素为 flex 时,给子元素设定 flex:50% 或者 width:50% 都是一样的效果
https://stackoverflow.com/questions/23779144/difference-between-width-50-and-flex-50-in-a-css-flexbox
类似菜单项可换行布局
如下案例
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.container {/* width: 500px; */display: flex;flex-wrap: wrap; //*}.item {box-sizing: border-box;width: 25%; //*height: 100px;border: 1px solid black;}</style></head><body><div class="container"><div class="item">item</div><div class="item">item</div><div class="item">item</div><div class="item">item</div><div class="item">item</div><div class="item">item</div></div></body></html>

同时设定 max-width 与 width
样式
鼠标移动到图片上,呈放大效果
知识点:scale
<div class="box">box</div>.box {margin: 10px auto;width: 100px;height: 100px;border: 1px solid black;transition: all 0.8s;}.box:hover {transform: scale(1.2);}
图标上下浮动的动画
知识点:animation
<div class="trans"></div><style>.trans {/* 随便来点样式 */height: 200px;width: 200px;background: red;/* END *//* 引入动画(1.3s可控制速度) */animation: heart 1.3s ease-in-out infinite alternate;/* END */}@keyframes heart {from {transform: translate(0, 0)}to {transform: translate(0, 30px)}/* 下浮高度 */}</style>
