Blogger Information
Blog 18
fans 3
comment 3
visits 16202
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
文字的自动分列 flex 弹性盒子的一些使用方法
刹那永恒个人博客
Original
1340 people have browsed it

一.文字的自动分列 column属性

1.自动分列

  • column-width 列的宽度。
  • column-count 列数。
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <style>
  7. * {
  8. margin: 0;
  9. padding: 0;
  10. box-sizing: border-box;
  11. }
  12. .box {
  13. width: 100%;
  14. padding: 150px;
  15. min-height: 800px;
  16. column-count: 5;
  17. border: 1px dashed blue;
  18. }
  19. </style>
  20. <title>文字的自动分列</title>
  21. </head>
  22. <body>
  23. <div class="box">
  24. 二愣子睁大着双眼,直直望着茅草和烂泥糊成的黑屋顶,身上盖着的旧棉被,已呈深黄色,看不出原来的本来面目,还若有若无的散发着淡淡的霉味。
  25. 在他身边紧挨着的另一人,是二哥韩铸,酣睡的十分香甜,从他身上不时传来轻重不一的阵阵打呼声。
  26. 离床大约半丈远的地方,是一堵黄泥糊成的土墙,因为时间过久,墙壁上裂开了几丝不起眼的细长口子,从这些裂纹中,隐隐约约的传来韩母唠唠叨叨的埋怨声,偶尔还掺杂着韩父,抽旱烟杆的“啪嗒”“啪嗒”吸允声。
  27. 二愣子缓缓的闭上已有些发涩的双目,迫使自己尽早进入深深的睡梦中。他心里非常清楚,再不老实入睡的话,明天就无法早起些了,也就无法和其他约好的同伴一起进山拣干柴。
  28. 二愣子姓韩名立,这么像模像样的名字,他父母可起不出来,这是他父亲用两个粗粮制成的窝头,求村里老张叔给起的名字。
  29. 老张叔年轻时,曾经跟城里的有钱人当过几年的伴读书童,是村里唯一认识几个字的读书人,村里小孩子的名字,倒有一多半是他给起的。
  30. 韩立被村里人叫作“二愣子”,可人并不是真愣真傻,反而是村中首屈一指的聪明孩子,但就像其他村中的孩子一样,除了家里人外,他就很少听到有人正式叫他名字“韩立”,倒是“二愣子”“二愣子”的称呼一直伴随至今。
  31. 而之所以被人起了个“二愣子”的绰号,也只不过是因为村里已有一个叫“愣子”的孩子了。
  32. 这也没啥,村里的其他孩子也是“狗娃”“二蛋”之类的被人一直称呼着,这些名字也不见得比“二愣子”好听了哪里去。
  33. 因此,韩立虽然并不喜欢这个称呼,但也只能这样一直的自我安慰着。
  34. 韩立外表长得很不起眼,皮肤黑黑的,就是一个普通的农家小孩模样。但他的内心深处,却比同龄人早熟了许多,他从小就向往外面世界的富饶繁华,梦想有一天,他能走出这个巴掌大的村子,去看看老张叔经常所说的外面世界。
  35. 当韩立的这个想法,一直没敢和其他人说起过。否则,一定会使村里人感到愕然,一个乳臭未干的小屁孩,竟然会有这么一个大人也不敢轻易想的念头。要知道,其他同韩立差不多大的小孩,都还只会满村的追鸡摸狗,更别说会有离开故土,这么一个古怪的念头。
  36. 韩立一家七口人,有两个兄长,一个姐姐,还有一个小妹,他在家里排行老四,今年刚十岁,家里的生活很清苦,一年也吃不上几顿带荤腥的饭菜,全家人一直在温饱线上徘徊着。
  37. 此时的韩立,正处于迷迷糊糊,似睡未睡之间,恼中还一直残留着这样的念头:上山时,一定要帮他最疼爱的妹妹,多拣些她最喜欢吃的红浆果。
  38. 第二天中午时分,当韩立顶着火辣辣的太阳,背着半人高的木柴堆,怀里还揣着满满一布袋浆果,从山里往家里赶的时侯,并不知道家中已来了一位,会改变他一生命运的客人。
  39. 这位贵客,是跟他血缘很近的一位至亲,他的亲三叔。
  40. </div>
  41. </body>
  42. </html>
  • 效果如下

    二.flex 弹性盒子的一些使用方法

    1. 弹性盒子的平均分布

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Document</title>
  7. <style>
  8. .container {
  9. width: 300px;
  10. min-height: 50px;
  11. border: 1px dashed green;
  12. /* 设置成为弹性盒子 */
  13. display: flex;
  14. }
  15. .container > .item {
  16. /* 平局分布 */
  17. flex: auto;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <div class="container">
  23. <div class="item">1</div>
  24. <div class="item">2</div>
  25. <div class="item">3</div>
  26. </div>
  27. </body>
  28. </html>
  • 未设置平均分布之前
  • 设置平均分布之后
  • 一旦将父元素设置为弹性盒子,子元素自动转换为弹性项目,不管子元素以前是什么类型的元素,统统转换为行内块元素.
  • 增加项目后依然会自动分布

    2. 弹性盒子的自动换行

  • 自动换行命令 flex-wrap: wrap;
  • 不自动换行命令 flex-wrap: nowrap;

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    6. <title>弹性盒子的自动换行</title>
    7. <style>
    8. .container {
    9. width: 300px;
    10. min-height: 50px;
    11. border: 1px dashed green;
    12. /* 设置成为弹性盒子 */
    13. display: flex;
    14. }
    15. .container > .item {
    16. width: 110px;
    17. /* 平局分布 */
    18. /* flex: auto; */
    19. }
    20. .container {
    21. /* 自动换行 */
    22. flex-wrap: wrap;
    23. /* 不自动换行 */
    24. /* flex-wrap: nowrap; */
    25. }
    26. </style>
    27. </head>
    28. <body>
    29. <div class="container">
    30. <div class="item">1</div>
    31. <div class="item">2</div>
    32. <div class="item">3</div>
    33. <div class="item">1</div>
    34. <div class="item">2</div>
    35. <div class="item">3</div>
    36. </div>
    37. </body>
    38. </html>

3.弹性盒子的自动对齐(将所有项目视为一个整体)-左面-右面-居中

  • 居中对齐 justify-content: center;
  • 靠左对齐 justify-content: flex-start;
  • 靠右对齐 justify-content: flex-end;

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    6. <title>单行容器的居中对齐(两边空着)</title>
    7. <style>
    8. .container {
    9. width: 300px;
    10. min-height: 50px;
    11. /* 设置成为弹性盒子 */
    12. display: flex;
    13. /* 居中对齐 */
    14. justify-content: center;
    15. /* 靠左对齐 */
    16. /* justify-content: flex-start; */
    17. /* 靠右对齐 */
    18. /* justify-content: flex-end; */
    19. }
    20. .container > .item {
    21. width: 80px;
    22. }
    23. </style>
    24. </head>
    25. <body>
    26. <div class="container">
    27. <div class="item">1</div>
    28. <div class="item">2</div>
    29. <div class="item">3</div>
    30. </div>
    31. </body>
    32. </html>

    4.弹性盒子的自动对齐(将所有项目视为独立的个体)

    1. /* 所有项目平均分布 两边的靠边*/
    2. justify-content: space-between;

    1. /* 分散分布 1和2之间的句里是1左边的2倍 */
    2. justify-content: space-around;

  1. /* 平均分配剩余空间 每个项目两边的空间都相等 */
  2. justify-content: space-evenly;

5.弹性盒子的自动对齐(行于行的对齐)

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>6.多行容器的分布排列</title>
  7. <style>
  8. .container {
  9. width: 300px;
  10. min-height: 200px;
  11. /* 设置成为弹性盒子 */
  12. display: flex;
  13. /* 允许多行排列 */
  14. flex-wrap: wrap;
  15. }
  16. .container > .item {
  17. width: 80px;
  18. min-height: 30px;
  19. }
  20. .container {
  21. /* 行中居中 */
  22. align-content: center;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div class="container">
  28. <div class="item">1</div>
  29. <div class="item">2</div>
  30. <div class="item">3</div>
  31. <div class="item">4</div>
  32. <div class="item">5</div>
  33. <div class="item">6</div>
  34. <div class="item">7</div>
  35. <div class="item">8</div>
  36. <div class="item">9</div>
  37. <div class="item">10</div>
  38. <div class="item">11</div>
  39. <div class="item">12</div>
  40. </div>
  41. </body>
  42. </html>
  • align-content: center; 居中

  • align-content: flex-start;靠上

  • align-content: flex-end;靠下
  • align-content: stretch; 默认值(原始状态)

  • align-content: space-around; 分散对齐 两边有空位
  • align-content: space-between; 分散对齐两边无空位

    6.主轴的方向

    1. /* 主轴方向默认为行 */
    2. flex-direction: row;
    3. /* 主轴方向为列 手机端基本都是这种布局*/
    4. flex-direction: column;

    三.flex简单编写一个导航

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>flex编写一个导航栏</title>
  7. <style>
  8. * {
  9. margin: 0;
  10. padding: 0;
  11. box-sizing: border-box;
  12. }
  13. a {
  14. text-decoration: none;
  15. color: #ccc;
  16. padding: 0 25px;
  17. /* 设置行高 */
  18. line-height: 40px;
  19. }
  20. nav {
  21. height: 40px;
  22. background-color: #333;
  23. padding: 0 50px;
  24. /* 转为弹性盒子 */
  25. display: flex;
  26. /* justify-content: center; */
  27. }
  28. header nav a:first-of-type {
  29. /* 第一个a标签靠左 */
  30. margin-right: auto;
  31. padding-left: 30px;
  32. }
  33. nav a:last-of-type {
  34. /* 最后一个a标签靠右 */
  35. margin-left: auto;
  36. }
  37. nav a:hover {
  38. color: rgb(255, 0, 0);
  39. }
  40. </style>
  41. </head>
  42. <body>
  43. <header>
  44. <nav>
  45. <a href=""><img src="logo.png" alt="" height="40" /></a>
  46. <a href="">首页</a>
  47. <a href="">视频教程</a>
  48. <a href="">入门教程</a>
  49. <a href="">社区问答</a>
  50. <a href="">注册/登陆</a>
  51. </nav>
  52. </header>
  53. </body>
  54. </html>

总结

1.文字的自动分列 column属性

  • column-width 列的宽度。
  • column-count 列数。

2.弹性盒子的使用方法

  • display:flex;设置成为弹性盒子
  • flex: auto;

3.自动换行命令 flex-wrap: wrap; 不自动换行命令 flex-wrap: nowrap;

4.弹性盒子的自动对齐(将所有项目视为一个整体)-左面-右面-居中

  • 居中对齐 justify-content: center;
  • 靠左对齐 justify-content: flex-start;
  • 靠右对齐 justify-content: flex-end;

5.弹性盒子的自动对齐(将所有项目视为独立的个体)

  • justify-content: space-between;所有项目平均分布 两边的靠边
  • justify-content: space-around;分散分布 1和2之间的句里是1左边的2倍
  • justify-content: space-evenly;平均分配剩余空间 每个项目两边的空间都相等

6.弹性盒子的自动对齐(行于行的对齐)

  • align-content: center; 居中
  • align-content: flex-start;靠上
  • align-content: flex-end;靠下
  • align-content: stretch; 默认值(原始状态)
  • align-content: space-around; 分散对齐 两边有空位
  • align-content: space-between; 分散对齐两边无空位

7.主轴方向

  • flex-direction: row;水平
  • flex-direction: column;垂直
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