博客列表 >CSS表格控制以及通过元素的浮动和定位完成布局+PHP九期线上班191101

CSS表格控制以及通过元素的浮动和定位完成布局+PHP九期线上班191101

done
done原创
2019年11月04日 13:56:35667浏览

CSS表格控制以及通过元素的浮动和定位完成布局

1. 制作商品信息表,实现行与列的合并

  1. <table>
  2. <caption>
  3. <h3>热门手表</h3>
  4. </caption>
  5. <thead>
  6. <tr>
  7. <th>排名</th>
  8. <th>型号</th>
  9. <th>品牌</th>
  10. <th>系列</th>
  11. <th>单价(元)</th>
  12. </tr>
  13. </thead>
  14. <tbody>
  15. <tr>
  16. <td>1</td>
  17. <td>116610LV-97200</td>
  18. <td rowspan="2">劳力士</td>
  19. <td rowspan="2">潜航者</td>
  20. <td>70500</td>
  21. </tr>
  22. <tr>
  23. <td>2</td>
  24. <td>116610LN-97200</td>
  25. <!-- <td>劳力士</td>
  26. <td>潜航者</td> -->
  27. <td>66400</td>
  28. </tr>
  29. <tr>
  30. <td>3</td>
  31. <td>L2.628.4.78.3</td>
  32. <td>浪琴</td>
  33. <td>制表传统</td>
  34. <td>15000</td>
  35. </tr>
  36. <tr>
  37. <td>4</td>
  38. <td>424.13.40.20.02.001</td>
  39. <td>欧米茄</td>
  40. <td>碟飞</td>
  41. <td>28500</td>
  42. </tr>
  43. <tr>
  44. <td>5</td>
  45. <td>116233</td>
  46. <td>劳力士</td>
  47. <td>日志36</td>
  48. <td>100800</td>
  49. </tr>
  50. </tbody>
  51. <tfoot>
  52. <tr>
  53. <td colspan="4">平均:</td>
  54. <!-- <td></td>
  55. <td></td>
  56. <td></td> -->
  57. <td>56240</td>
  58. </tr>
  59. </tfoot>
  60. </table>

2. 使用CSS模拟表格

  1. .table {
  2. display: table;
  3. box-sizing: border-box;
  4. width: 700px;
  5. box-shadow: 2px 2px 2px gray;
  6. border-collapse: collapse;
  7. margin: 20px auto;
  8. }
  9. .caption {
  10. display: table-caption;
  11. margin: auto;
  12. text-align: center;
  13. font-size: 1.5rem;
  14. font-weight: bold;
  15. }
  16. .thead {
  17. display: table-header-group;
  18. text-align: center;
  19. letter-spacing: 5px;
  20. }
  21. .thead span {
  22. font-weight: bold;
  23. font-size: 1.2rem;
  24. }
  25. .tbody {
  26. display: table-row-group;
  27. }
  28. .tfoot {
  29. display: table-footer-group;
  30. }
  31. ul {
  32. display: table-row;
  33. }
  34. li {
  35. display: table-cell;
  36. border: 1px solid gray;
  37. padding: 15px;
  38. }

3. 使用绝对定位,实现盒子的居中显示

  1. .login {
  2. display: table;
  3. box-sizing: border-box;
  4. width: 300px;
  5. height: 100px;
  6. border: 1px solid gray;
  7. box-shadow: 2px 2px 2px gray;
  8. }
  9. ul {
  10. display: table-row-group;
  11. }
  12. li {
  13. display: table-row;
  14. }
  15. label {
  16. display: table-cell;
  17. }
  18. .login {
  19. margin: auto;
  20. position: absolute;
  21. top: 0;
  22. left: 0;
  23. bottom: 0;
  24. right: 0;
  25. }

4. 圣杯布局的流程和思路

  1. /* 实现圣杯布局的流程 */
  2. /* 圣杯布局:
  3. 1. 两侧宽度固定,主体自适应
  4. 2. 主体内容优先渲染
  5. */
  6. /* 步骤1:article写到aside前面,保证内容区优先渲染 */
  7. /* 步骤2:顶部和底部设置box-sizing,固定一个高度 */
  8. header,
  9. footer {
  10. box-sizing: border-box;
  11. height: 100px;
  12. background-color: lightpink;
  13. }
  14. /* 步骤3:创建内容主体区域main,设置box-sizing,给一个边框,用于测试 */
  15. /* 重点:实现圣杯布局的关键是通过padding把中间内容区挤到居中,再通过相对位置移动两个侧边 */
  16. main {
  17. box-sizing: border-box;
  18. border: 2px solid red;
  19. padding: 0 200px;
  20. }
  21. /* 步骤4:内容中间部分article的渲染,设置box-sizing,设置宽度为父元素的100%满足自适应,同时给个高度*/
  22. /* 重点:通过float可以实现块元素在同一行显示 */
  23. article {
  24. box-sizing: border-box;
  25. width: 100%;
  26. height: 600px;
  27. background-color: lightgreen;
  28. float: left;
  29. }
  30. /* 步骤5:两边栏aside都float */
  31. aside {
  32. box-sizing: border-box;
  33. width: 200px;
  34. height: 600px;
  35. background-color: lightblue;
  36. float: left;
  37. }
  38. /* 步骤6:为main设置overflow */
  39. /* 重点:子元素都是float的时候,父元素会失去高度,需要把父元素转为BFC块 */
  40. main {
  41. overflow: hidden;
  42. }
  43. /* 步骤7:把左边栏放到左边 */
  44. /* 重点:现在左边栏是被article挤到下一行的,通过margin-left:-100%向左移动一个父元素宽度 */
  45. /* 重点:再通过position:relative移动最后200px */
  46. aside:first-of-type {
  47. margin-left: -100%;
  48. position: relative;
  49. left: -200px;
  50. }
  51. /* 步骤8:右边栏同理左边栏 */
  52. aside:last-of-type{
  53. margin-left: -200px;
  54. position: relative;
  55. left: 200px;
  56. }

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