html – 当Flex项溢出flex父项时,如何隐藏它?

前端之家收集整理的这篇文章主要介绍了html – 当Flex项溢出flex父项时,如何隐藏它?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有一个flexBox容器,其内容可能会溢出父容器.我想要的是,如果任何项目比容器大得多,它将被隐藏.如果我设置溢出:隐藏它只会隐藏该项目的溢出部分,而不是整个项目.

考虑以下:

  1. <nav id="top-nav">
  2. <div id="main-nav-container">
  3. <div class="menu">
  4. <ul>
  5. <li><a href="/">Item 1</a></li>
  6. <li><a href="/">Item 2</a></li>
  7. <li><a href="/">Item 3</a></li>
  8. <li><a href="/">Item 4</a></li>
  9. </ul>
  10. </div>
  11. <div class="menu">
  12. <ul>
  13. <li><a href="/">Other 1</a></li>
  14. <li><a href="/">Other 2</a></li>
  15. </ul>
  16. </div>
  17. </div>
  18. </nav>

CSS:

  1. #top-nav,#top-nav div.menu ul li {
  2. background-color: #444;
  3. }
  4.  
  5. #main-nav-container {
  6. margin: 0 auto;
  7. max-width: 1200px;
  8. padding: 0 40px;
  9. display: -webkit-inline-Box;
  10. display: -moz-Box;
  11. display: -ms-flexBox;
  12. display: -webkit-flex;
  13. display: flex;
  14. -webkit-Box-pack: justify;
  15. -moz-justify-content: -moz-space-between;
  16. -ms-justify-content: -ms-space-between;
  17. justify-content: space-between;
  18. }
  19.  
  20. #top-nav div.menu {
  21. -webkit-flex: 1;
  22. display: -webkit-inline-Box;
  23. display: -moz-Box;
  24. display: -ms-flexBox;
  25. display: -webkit-flex;
  26. display: flex;
  27. }
  28.  
  29. #top-nav div.menu:last-child {
  30. display: -webkit-inline-Box;
  31. display: -moz-Box;
  32. display: -ms-flexBox;
  33. display: -webkit-flex;
  34. display: flex;
  35. -webkit-justify-content: flex-end;
  36. -webkit-flex-direction: row;
  37. flex-direction: row;
  38. justify-content: flex-end;
  39. }
  40.  
  41. #top-nav div.menu,#top-nav div.menu ul {
  42. text-align: left;
  43. alignment-baseline: baseline;
  44. margin: 0;
  45. padding: 0;
  46. }
  47. #top-nav div.menu ul {
  48. list-style: none;
  49. }
  50. #top-nav div.menu > ul {
  51. display: -webkit-Box;
  52. display: -moz-Box;
  53. display: -ms-flexBox;
  54. display: -webkit-flex;
  55. display: flex;
  56. white-space: nowrap;
  57. }
  58. #top-nav div.menu li {
  59. -webkit-flex-shrink: 0;
  60. -moz-flex-shrink: 0;
  61. -ms-flex-shrink: 0;
  62. flex-shrink: 0;
  63. margin: 0
  64. position: relative;
  65. font-size: 1.1em;
  66. cursor: pointer;
  67. }
  68. #top-nav div.menu ul li a {
  69. color: #E6E6E6;
  70. text-decoration: none;
  71. display: block;
  72. padding: 7px;
  73. }

如果窗口缩小,我希望“项目4”在它开始变得与“其他1”重叠时隐藏.

一旦我实现了这一点,我还需要一个可以定位隐藏的选择器.

jsfiddle setup here

解决方法

您的问题的解决方法添加以下CSS代码
  1. #top-nav div.menu > ul {
  2. flex-wrap: wrap;
  3. height: 34px;
  4. overflow: hidden;
  5. }

如果你想知道隐藏了哪些元素,你应该使用Javascript / jQuery来解决你的问题,因为你不知道使用CSS.

猜你在找的HTML相关文章