html 我想用CSS创建一个如下图所示的格式,目前正在尝试使用flexbox

busg9geu  于 2023-11-15  发布在  其他
关注(0)|答案(2)|浏览(141)

x1c 0d1x的数据
我试图用flexbox在图像中提出格式,但目前我的导航栏是在一列而不是行.我不确定如何解决这个问题,或者如果我应该使用网格/另一种方式来提出格式.我设法通过单独设置显示来做到这一点(在导航栏上设置显示为inline-block,页脚等),但我想知道是否有一个更有效的方法来做到这一点/或我目前的想法这样做是错误的。我尝试了网格使用4x 3使其“页眉”“导航”等,但我不知道如何使主要填补了行,它是采取只有3个部分。

  1. body {
  2. background-color: white;
  3. font-family: 'Markazi Text', 'serif';
  4. text-align: center;
  5. display: flex;
  6. flex-flow: column wrap;
  7. justify-content: stretch;
  8. }
  9. header>img {
  10. width: 25%;
  11. }
  12. nav>ul {
  13. list-style: none;
  14. background-color: grey;
  15. flex-flow: row wrap;
  16. }
  17. nav>li {
  18. padding: 5px;
  19. flex-basis: auto;
  20. }
  21. main article {}
  22. .foot {}

个字符

ztyzrc3y

ztyzrc3y1#

首先,让我推荐一些可以帮助您理解Flexbox概念的好资源:

  • MDN上的Flexbox文档。
  • MDN上flexbox的基本概念。
  • MDN上的CSS灵活框布局。
  • CSS-Tricks上使用Flexbox的完整指南。

现在,让我展示一个简单的尝试来完成您想要的设计,您可以在此基础上进行构建和修补。

  1. * {
  2. margin: 0;
  3. padding: 0;
  4. box-sizing: border-box;
  5. }
  6. body {
  7. display: flex;
  8. min-height: 100vh;
  9. flex-direction: column;
  10. padding: 8px 20px;
  11. border: 2px solid red;
  12. }
  13. .logo-wrapper {
  14. text-align: center;
  15. margin-bottom: 20px;
  16. border: 2px solid red;
  17. }
  18. .logo-wrapper .logo {
  19. max-width: 100%;
  20. max-height: 50px;
  21. vertical-align: middle;
  22. object-fit: cover;
  23. }
  24. .navbar {
  25. display: flex;
  26. list-style: none;
  27. margin-bottom: 15px;
  28. border: 2px solid red;
  29. }
  30. .navbar .nav-item {
  31. flex: 1 0 auto;
  32. text-align: center;
  33. }
  34. .main-page {
  35. display: flex;
  36. flex-direction: column;
  37. flex-grow: 1;
  38. padding: 6px 15px;
  39. margin-bottom: 20px;
  40. border: 2px dashed red;
  41. }
  42. .main-page .main-area {
  43. flex-grow: 1;
  44. margin-bottom: 20px;
  45. padding: 8px;
  46. border: 2px solid red;
  47. }
  48. .main-page .cards-wrapper {
  49. display: flex;
  50. justify-content: space-between;
  51. align-items: stretch;
  52. flex-wrap: nowrap;
  53. }
  54. .main-page .cards-wrapper .card {
  55. flex: 0 0 30%;
  56. padding: 6px;
  57. border: 2px solid red;
  58. }
  59. footer {
  60. display: flex;
  61. flex-wrap: nowrap;
  62. }
  63. footer .footer-item {
  64. flex: 1 0 50%;
  65. }
  66. footer .date {
  67. text-align: right;
  68. }

个字符
边框的设置只是为了直观地展示flexbox及其组件的工作方式,并概述每个部分,以便易于查看和理解。
就像我说的,这只是一个尝试,希望你们会发现它是有用的,它会让你们有自己的想法。
请记住,上面的代码片段并没有涵盖您在构建网站时可能需要记住的一些情况,例如响应性。
最后,我建议查看不同的CSS库和框架,如bootstraptailwind ...,并检查它们如何实现和使用自己的flexbox实用程序,因为我认为这将有助于您更好地了解flexbox的工作原理。

展开查看全部
dced5bon

dced5bon2#

你可以参考这段代码,让我知道它的工作原理。我想我做的是正确的,将对你有用。谢谢。

  1. body {
  2. background-color: white;
  3. font-family: 'Markazi Text', 'serif';
  4. text-align: center;
  5. /* display: flex; */
  6. /* flex-flow: column wrap; */
  7. /* justify-content: stretch; */
  8. }
  9. header img {
  10. width: 25%;
  11. border: 2px solid black;
  12. margin: 20px auto;
  13. }
  14. nav ul {
  15. list-style: none;
  16. background-color: grey;
  17. display: grid;
  18. grid-template-columns: repeat(4, 300px);
  19. width: 80%;
  20. margin: 20px auto;
  21. }
  22. nav li a {
  23. text-decoration: none;
  24. }
  25. nav li {
  26. padding: 20px;
  27. /* flex-basis: auto; */
  28. }
  29. main {
  30. border: 2px solid black;
  31. margin: auto;
  32. width: 70%;
  33. }
  34. section {
  35. display: flex;
  36. width: 70%;
  37. margin: auto;
  38. gap: 50px;
  39. }
  40. section div {
  41. display: flex;
  42. border: 2px solid black;
  43. height: 150px;
  44. margin: 20px auto;
  45. width: 33%;
  46. /* width: 50%; */
  47. }
  48. footer {
  49. display: flex;
  50. /* border: 2px solid black; */
  51. margin: auto;
  52. width: 80%;
  53. gap: 10px;
  54. }
  55. .foot {
  56. border: 2px solid black;
  57. margin: auto;
  58. width: 80%;
  59. }

个字符

展开查看全部

相关问题