Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 是否溢出:隐藏正确的方法,以确保浮动项目不';";泄漏;?_Html_Css - Fatal编程技术网

Html 是否溢出:隐藏正确的方法,以确保浮动项目不';";泄漏;?

Html 是否溢出:隐藏正确的方法,以确保浮动项目不';";泄漏;?,html,css,Html,Css,假设你有一个文章列表,有些文章有一个右浮动的图像和很少的文本,所以图像浮动在文章之外,进入下一篇文章,把事情搞砸了 确保文章中的元素不会浮在文章外的正确/首选/最佳方法是什么 我知道overflow:hidden有效,但这是正确的用法吗?或者它只是碰巧做了我想做的事情,这是出于偶然吗?对于每个文章元素,添加clear:both。这将确保图像不会在下一篇文章中“泄漏”,但也确保它们不会被截断。对于每个文章元素,添加清除:两者都有。这将确保图像不会在下一篇文章中“泄漏”,但也确保它们不会被切断。有三

假设你有一个文章列表,有些文章有一个右浮动的图像和很少的文本,所以图像浮动在文章之外,进入下一篇文章,把事情搞砸了

确保文章中的元素不会浮在文章外的正确/首选/最佳方法是什么


我知道
overflow:hidden
有效,但这是正确的用法吗?或者它只是碰巧做了我想做的事情,这是出于偶然吗?

对于每个文章元素,添加
clear:both。这将确保图像不会在下一篇文章中“泄漏”,但也确保它们不会被截断。

对于每个文章元素,添加
清除:两者都有。这将确保图像不会在下一篇文章中“泄漏”,但也确保它们不会被切断。

有三种方法可以做到这一点:

  • 您可以使用
    溢出:隐藏
    ,这是一种干净的方法

    • 优点:它不会弄乱HTML的语义,并没有“死元素”
    • 缺点:如果容器具有定义的维度,则剪切内容,并从内部元素剪切阴影

      div        <-- style="overflow:hidden"
          div    <-- floating children
          div    
      div        <-- style="overflow:hidden"
          div    <-- floating children
          div
      
  • 您可以将“clearfix”类添加到容器中,并使用
    :after
    伪类添加“clearing dynamic dot/space”。基本上,它的工作原理与第二个类似,但使用
    :after
    插入一个带有“clear:both”的空格

    • 优点:它不会弄乱HTML的语义,并没有“死元素”
    • 缺点:“classitis”(类的过度使用)和更旧的,因此使用CSS黑客

      div        <-- :after
          div    <-- floating children
          div
      " "        <-- style="clear:both"
      div        <-- :after
          div    <-- floating children
          div
      

      div有三种方法:

    • 您可以使用
      溢出:隐藏
      ,这是一种干净的方法

      • 优点:它不会弄乱HTML的语义,并没有“死元素”
      • 缺点:如果容器具有定义的维度,则剪切内容,并从内部元素剪切阴影

        div        <-- style="overflow:hidden"
            div    <-- floating children
            div    
        div        <-- style="overflow:hidden"
            div    <-- floating children
            div
        
    • 您可以将“clearfix”类添加到容器中,并使用
      :after
      伪类添加“clearing dynamic dot/space”。基本上,它的工作原理与第二个类似,但使用
      :after
      插入一个带有“clear:both”的空格

      • 优点:它不会弄乱HTML的语义,并没有“死元素”
      • 缺点:“classitis”(类的过度使用)和更旧的,因此使用CSS黑客

        div        <-- :after
            div    <-- floating children
            div
        " "        <-- style="clear:both"
        div        <-- :after
            div    <-- floating children
            div
        
        div

        overflow:hidden或overflow:auto是可以接受的解决方案,用于清除较小的包含元素上的浮动,如保存浮动列表项的导航栏,或具有一组浮动框的操作区域调用

        该链接还解释了使用溢出的问题:通过演示隐藏以清除。

        overflow:hidden或overflow:auto是可以接受的解决方案,用于清除较小的包含元素上的浮动,如保存浮动列表项的导航栏,或具有一组浮动框的操作区域调用


        该链接还解释了使用overflow:hidden来清除演示的问题。

        问题在于文章会弄乱同样浮动的边栏。在您的特定情况下,
        overflow:hidden
        是可以的,因为边栏。如果你是在特殊情况下,请发布一些HTML/CSS。问题是,文章会弄乱侧边栏,侧边栏也是浮动的。那么在你的特殊情况下,
        overflow:hidden
        是可以的,因为侧边栏。如果你是在特殊情况下,请发布一些HTML/CSS。很好的总结,你忽略了显而易见的一点:只是简单地对直系后代进行了澄清。在许多情况下都有效,但经常被忽略。我使用clear的问题是它会弄乱我的侧边栏:/Guess我会坚持使用overflow:hidden。很好的总结,您忽略了显而易见的一点:只需对直系后代进行清除。在许多情况下都可以工作,但经常被忽略。我使用clear的问题是它会弄乱我的侧边栏:/Guess我会坚持使用overflow:hidden。