【问题标题】:How to force div element to keep its contents inside container如何强制 div 元素将其内容保留在容器内
【发布时间】:2019-08-24 21:27:25
【问题描述】:

我正在制作一个 CSS 菜单。为此,我使用ul。当我让li 向左浮动时,所有li 都在ul 之外。我的意思是ul 的高度变为零。我怎样才能让li 显示在ul 中,在给左浮动之后。

一种方法是使用一些通用类创建一个div 标记,并在 css 中添加 clear: both,但我不想要这个。

我该如何解决这个问题?

【问题讨论】:

    标签: html css


    【解决方案1】:

    只需将overflow: auto; 添加到<ul>。这将使文本不会泄漏到 UL 之外。

    见:http://jsfiddle.net/6cKAG/


    但是,根据您的操作,制作<li> display: inline; 可能更容易。这完全取决于你在做什么!

    见:http://jsfiddle.net/k7Wqx/

    【讨论】:

      【解决方案2】:

      如果您为您的孩子定义float,那么您必须清除您的父母。将overflow:hidden 写给您的 UL。

      ul{
       overflow:hidden;
      }
      

      或 您也可以为此使用clearfix 方法:

      ul:after{
       content:'';
       clear:both;
       display:block;
      }
      

      阅读此http://css-tricks.com/snippets/css/clear-fix/

      【讨论】:

      • 谁给我投了反对票,请解释原因。我的回答有什么问题谢谢:)
      • 我相信还建议将 zoom:1 添加到 IE 的第一个规则集中 - 否则,它是 overflow 在版本
      • @TiesonT。 :下班后直到 IE8 和 OP 在他的问题中定义 css3,这意味着。他想支持现代浏览器
      • 或者他只是被他的标签迷住了,因为他并没有真正做任何 CSS3 特定的事情。不过,你是对的,好先生(因此我投赞成票)。 :)
      • 当您的overflow:hidden 实际上是隐藏内容时,clearfix 方法是最好的方法。
      【解决方案3】:

      如果您希望 div 中溢出的文本自动换行而不是隐藏或制作滚动条,请使用

      word-wrap: break-word
      

      财产。

      【讨论】:

        【解决方案4】:

        当浮动元素(菜单项)位于非浮动容器 (ul) 内时,会发生这种情况。

        这可以通过浮动容器来解决(很少接受),或者applying a clearfix 正好解决了这个问题。

        【讨论】:

          猜你喜欢
          • 2022-11-02
          • 1970-01-01
          • 2019-10-03
          • 2017-01-12
          • 2021-09-28
          • 2017-02-17
          • 2011-07-11
          • 1970-01-01
          • 2017-09-01
          相关资源
          最近更新 更多