博客列表 >flex布局,子元素(item)的属性,以及前端组件开发初尝试--PHP培训十期线上班

flex布局,子元素(item)的属性,以及前端组件开发初尝试--PHP培训十期线上班

Miss灬懒虫
Miss灬懒虫原创
2019年12月26日 16:08:511152浏览

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的类名需要层级明确,防止因为意外的样式覆盖;

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议