Blogger Information
Blog 22
fans 1
comment 1
visits 22279
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
flex布局,子元素(item)的属性,以及前端组件开发初尝试--PHP培训十期线上班
Miss灬懒虫
Original
1154 people have browsed it

flex布局,子元素(item)的属性,以及前端组件开发初尝试

子元素(item)的属性

  • order
  • align-self
  • flex-basis
  • flex-grow
  • flex-shrink
  • flex: flex-grow flex-shrink flex-basis

详细说明在注释哦!嘻嘻!

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>flex item属性</title>
  6. <style>
  7. *{
  8. margin: 0;
  9. padding: 0;
  10. }
  11. .container{
  12. width: 400px;
  13. height: 100px;
  14. border: 1px dashed;
  15. background-color: #cccccc;
  16. display: flex;
  17. }
  18. /*flex 弹性盒子的 子元素(item/项目)的属性*/
  19. .container >.item{
  20. width: 100px;
  21. height: 30px;
  22. border: 1px dashed red;
  23. background-color: wheat;
  24. }
  25. /* 1- 在容器中使用 order 属性,控制子元素(item)的排列先后顺序;*/
  26. .container >:first-child{
  27. order: 3;
  28. }
  29. .container >:last-child{
  30. order: 1;
  31. }
  32. /* 2- 在容器中使用,align-self 属性,单独自定义某一个子元素,在交叉轴上的对齐方式;*/
  33. .container >:nth-child(2){
  34. align-self: flex-end;
  35. background-color: #9a6e3a;
  36. }
  37. /*3- 子元素(item/项目)中,关于剩余空间部分的属性中。*/
  38. /*3.1 flex-basis ,子元素(item),在分配主轴剩余空间之前的“基础宽度”
  39. 默认值:flex-basis:auto,也就是显示宽度是“原始的宽度值: .container >.item{ width: 100px; }”;
  40. flex-basis:80px ,重新定义,子元素的显示宽度;
  41. flex-basis:20% ,
  42. min-width:120px ,子元素(item)的最小宽度;
  43. */
  44. .container >.item{
  45. flex-basis: 30%;
  46. min-width: 120px;
  47. }
  48. /*3.2 flex-grow ,表示是否允许子元素(item)沿着主轴方向,以 flex-basis 属性为基础进行扩展。
  49. 并且,规定将主轴剩余空间分配到项目上的比例;
  50. 默认值:flex-grow:0 ,不允许扩展;
  51. 若 flex-grow:1 ,则表示将剩余空间平局分配给各个子元素(item);
  52. 若 flex-grow:0.2 ,则表示将余空间的20%,分别增加给子元素;
  53. */
  54. .container >.item{
  55. flex-grow: 1;
  56. }
  57. /*3.3 flex-shrink ,与flex-grow雷同,只不过是控制子元素沿主轴方向,以flex-basis 属性为基础进行收缩。
  58. 需要注意的是,在进行收缩的时候,需要考虑最小宽度,并且只有当子元素的宽度总和超出容器宽度时,才能起效;
  59. 默认值:flex-shrink:1 ,
  60. flex-shrink 不接受负值;
  61. flex-shrink :0 ,表示不进行收缩;
  62. */
  63. .container >.item{
  64. flex-shrink: 1;
  65. }
  66. /*3.4 简写 flex: flex-grow flex-shrink flex-basis,
  67. 默认值:flex:0(不扩展) 1(可收缩) auto(自适应宽度);
  68. */
  69. .container >.item{
  70. /*flex:auto 等价于 flex:1 1 auto ,表示【可扩展,可收缩,自适应宽度】
  71. flex:2 等价于 flex:1 1 auto ,表示【可扩展,可收缩,自适应宽度】
  72. flex:none 等价于 flex:0 0 auto ,表示【不可扩展 不可收缩,自适应宽度】
  73. */
  74. flex:auto;
  75. }
  76. </style>
  77. </head>
  78. <body>
  79. <div class="container">
  80. <span class="item">1</span>
  81. <span class="item">2</span>
  82. <span class="item">3</span>
  83. </div>
  84. </body>
  85. </html>

抄写

前端组件开发

效果与目录结构

  • 效果

  • 目录结构

HTML代码

  • index.html 文件
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>组件页面练习</title>
  6. <link rel="stylesheet" href="index.css">
  7. </head>
  8. <body>
  9. <!--页面头部组件-->
  10. <div class="public-header">
  11. <a href="">网站首页</a>
  12. <a href="">专题</a>
  13. <a href="">网站导航</a>
  14. <a href="">二手商品</a>
  15. <a href="">讨论区</a>
  16. <span>
  17. <a href=""><i class="iconfont">&#xe60e;</i>登录</a>
  18. <a href="">免费注册</a>
  19. </span>
  20. </div>
  21. <!--页面标题组件-->
  22. <div class="public-headline">
  23. <span>二手拍卖</span>
  24. </div>
  25. </body>
  26. </html>

CSS代码

  • 公共样式初始化文件 public_reset.css
  1. /*引入字体图标库*/
  2. @font-face {
  3. font-family: 'iconfont';
  4. src: url('../../../1220/css/font/iconfont.eot');
  5. src: url('../../../1220/css/font/iconfont.eot?#iefix') format('embedded-opentype'),
  6. url('../../../1220/css/font/iconfont.woff2') format('woff2'),
  7. url('../../../1220/css/font/iconfont.woff') format('woff'),
  8. url('../../../1220/css/font/iconfont.ttf') format('truetype'),
  9. url('../../../1220/css/font/iconfont.svg#iconfont') format('svg');
  10. }
  11. .iconfont {
  12. font-family: "iconfont", serif !important;
  13. font-size: 16px;
  14. font-style: normal;
  15. -webkit-font-smoothing: antialiased;
  16. -moz-osx-font-smoothing: grayscale;
  17. }
  18. /*所有页面初始化样式设置*/
  19. *{
  20. margin: 0;
  21. padding: 0;
  22. /*调试参考线*/
  23. /* outline: 1px dashed red;*/
  24. }
  25. body{
  26. font-size: 13px;
  27. color: #555555;
  28. background-color: #efefef;
  29. }
  30. a{
  31. font-size: 13px;
  32. color: #404040;
  33. /*去掉超链接下划线*/
  34. text-decoration: none;
  35. }
  36. li{
  37. list-style: none;
  38. }
  • 公共头部样式文件 public_header.css
  1. /*引入公共初始化标签样式文件*/
  2. @import "public_reset.css";
  3. /*头部*/
  4. .public-header{
  5. height: 44px;
  6. background-color: black;
  7. padding: 0 20px;
  8. /*转化为弹性盒子容器*/
  9. display: flex;
  10. flex-flow: row nowrap;
  11. }
  12. /*统一设置容器下的 a 标签项目*/
  13. .public-header >a{
  14. line-height: 44px;
  15. text-align: center;
  16. padding: 0 10px;
  17. color: #cccccc;
  18. }
  19. .public-header >a:hover{
  20. background-color: #fff;
  21. color: black;
  22. }
  23. /*头部右侧内容 right*/
  24. .public-header >span{
  25. line-height: 44px;
  26. text-align: center;
  27. margin-left: auto;
  28. }
  29. .public-header >span a{
  30. color: #cccccc;
  31. padding: 0 10px;
  32. }
  33. /*设置右侧登录图标*/
  34. .public-header >span a i{
  35. font-size: 16px;
  36. color: #cccccc;
  37. padding-right: 10px;
  38. }
  • 公共头部样式文件 public_headline.css
  1. /*引入公共初始化标签样式文件*/
  2. @import "public_reset.css";
  3. .public-headline{
  4. padding: 30px;
  5. text-align: center;
  6. }
  7. .public-headline >span{
  8. font-size: 30px;
  9. /*字体粗体样式*/
  10. font-weight: bolder;
  11. padding-bottom: 7px;
  12. border-bottom: 3px solid red;
  13. }
  • 页面专用的样式文件 index.css
  1. @import "Components/public/public_reset.css";
  2. @import "Components/public/public_header.css";
  3. @import "Components/public/public_headline.css";

组件开发感受

1、需要较为清晰的将页面进行合理的拆分,以保障组件的复用性,复用性是组件开发最大的价值体现;
2、组件的命名要规范、清晰,并且具备很好的可读性,只有这样才能提高代码的可维护性,从而降低维护成本;
3、css的类名需要层级明确,防止因为意外的样式覆盖;

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:能理解到这个地步不简单, 毕竟昨晚咱们才开始进行组件分解... , 今晚更精彩, 不要错过
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post