`

子div撑不开父div的几种解决方法

 
阅读更多

子div撑不开父div的几种解决方法

 

子div撑不开父div的情况:

<style>
.example{
  background: #008000;
  width: 400px;
  margin: 10px;
  padding: 10px;
}
.example .childrenDiv{
  float: left;
  height: 100px;
  width: 100px;
  word-break: break-all;
  word-wrap: break-word;
}
</style>
<!--示例-->
<div class="example">
    <div class="childrenDiv" style="background: #e9b216;">tatatattttaatatatatatatata</div>
    <div class="childrenDiv" style="background: #df4744;">tatatattttaatatatatatatata</div>
</div>

 

显示结果:

 

 

解决方法:

(一):加<div style="clear:both;"></div>

代码实例:

<!--方法一-->
<div class="example">
    <div class="childrenDiv" style="background: #e9b216;">tatatattttaatatatatatatata</div>
    <div class="childrenDiv" style="background: #df4744;">tatatattttaatatatatatatata</div>
    <!--解决方法-->
    <div style="clear: both;"></div>
</div>

 

显示结果:

分析:

父div作为外部容器,子div设置了float样式,则外部容器div因为内部没有clear导致不能被撑开,即内部div因为float:left之后,就丢失了clear:both和display:block的样式。

 

(二):通过伪元素将父容器撑开

代码实例:

<style>
.clearfix:after{
            content:".";
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
}
/* Hides from IE-mac \*/
*html.clearfix{height: 1%;}
/*end hide from IE-mac*/
</style>

<!--方法二-->
<div class="clearfix example">
    <div class="childrenDiv" style="background: #e9b216;">tatatattttaatatatatatatata</div>
    <div class="childrenDiv" style="background: #df4744;">tatatattttaatatatatatatata</div>
</div>

 显示结果:

 

 

分析:

1.不建议采用第一种方法,首先,代码中多了一个没有意义的div;其次,在用dojo做Drag&Drop的时候,由于这个div是父容器div的一个子节点,如果这个节点被移动,则会造成排版上的错误,而且如果要将子div移动到这个div之后,则会因为clear:both被强制换行显示。

2.方法二原理:after伪对象将在应用clearfix的元素的结尾添加content中的内容,在这里添加了一个“.”,并且把它的display设置成了block,高度设为0,clear设为both,visibility设为隐藏,即撑开容器。

3.因为windows IE不支持上述做法,所以要在IE上也完美显示,则必须在clearfix的css定义的后面加一些专门为IE设定的hack,即:

/* Hides from IE-mac \*/
*html.clearfix{height: 1%;}
/*end hide from IE-mac*/

 

因为转移符“\”,Mac IE浏览器会忽略掉这段hack,但window IE不会,它会应用*html.clearfix{height:1%;}来达到撑开div容器的目的(貌似Mac IE没有办法解决这个问题,不顾用户数量太少,Safari支持就可以了O(∩_∩)O哈哈~)。

 

(三)父容器增加一个属性:overflow:hidden

代码实例:

<!--方法三-->
<div class="example" style="overflow: hidden;">
    <div class="childrenDiv" style="background: #e9b216;">tatatattttaatatatatatatata</div>
    <div class="childrenDiv" style="background: #df4744;">tatatattttaatatatatatatata</div>
</div>

 

显示结果:

 

 

(四)父容器增加一个属性:display:table

代码实例:

<!--方法四-->
<div class="example" style="display: table;">
    <div class="childrenDiv" style="background: #e9b216;">tatatattttaatatatatatatata</div>
    <div class="childrenDiv" style="background: #df4744;">tatatattttaatatatatatatata</div>
</div>

 

显示结果:

分享到:
评论

相关推荐

    css1--关于float的div撑不起父div的问题

    标题中的“css1--关于float的div撑不起父div的问题”指的是在CSS布局中常见的一个技术挑战。在网页设计中,我们经常使用`float`属性来实现元素的浮动,以便进行布局,比如创建多列布局或者使文本环绕图片。然而,...

    div被iframe遮住的几种情况及解决方法

    以下将详细阐述几种DIV被IFRAME遮挡的情况,并提供相应的解决方法。 首先,要了解的是IFRAME是一种HTML元素,它允许在当前HTML文档中嵌入另一个独立的HTML页面。尽管这一特性带来了许多便利,但同时也带来了诸如...

    父DIV自动适应子DIV高度

    为了实现父DIV自动适应子DIV的高度,我们可以采用以下几种方法: 1. **使用绝对定位**:将子元素设置为绝对定位,然后设置`position: absolute;`和`bottom: 0;`,这样子元素的高度会增加父元素的高度。但是这种方法...

    子Div使用Float后撑开父Div的几种方法

    一个Div包含了多个子Div,并且子Div使用了浮动后,父Div确不能被撑开,如下图: 部分代码如下: 复制代码代码如下: &lt;style&gt; #div1{border:1px solid red;float:left;} #div2,#div3{float:right;border:1px ...

    JS控制div跳转到指定的位置的几种解决方案总结

    本文介绍了几种使用JavaScript实现页面滚动到指定div位置的解决方案。这些方法主要包括锚点法、jQuery的animate方法、window.scrollTo方法和scrollIntoView方法。下面将详细解析每种方法的原理、使用方法及优缺点。 ...

    父div高度不能自适应子div高度的解决方案

    为了解决这个问题,可以采用以下几种方法: 第一种解决方案是在父div的最下方加入一个空白div,这个空白div通过设置其字体大小为0(font:0px/0px sans-serif),使得该div本身不显示任何内容,但又能撑开足够的空间...

    div嵌套的div溢出时换行

    在CSS布局中,当一个内部`div`(子`div`)的宽度超过了其外部`div`(父`div`)设定的宽度限制,就会发生溢出。这种情况通常会导致内容超出父容器的边界,从而影响到页面的布局和美观。处理这种问题有多种方法,我们...

    多个div能不换行吗?

    如果希望多个 `div` 在同一行内显示,可以使用以下几种方法: 1. **使用 `display: inline-block`**:将每个 `div` 的 CSS 类设置为 `display: inline-block`,这将使 `div` 元素变为类似文本的元素,可以在同一...

    div特效(二十几种总有你喜欢的)

    在网页设计领域,`div`元素是一个至关重要的组成部分,它被广泛用于布局和内容组织。本资源包集合了二十多种不同的`div`特效,旨在帮助开发者们实现各种创意的网页展示效果,包括当下流行的QQ在线状态显示和爱心墙等...

    网页Object标签遮盖DIV标签解决方法

    要解决`&lt;Object&gt;`标签遮盖`&lt;div&gt;`标签的问题,我们可以尝试以下几种方法: 1. **CSS层级调整**: 使用CSS的`z-index`属性可以控制元素的堆叠顺序。给`&lt;div&gt;`标签设置一个比`&lt;Object&gt;`标签更高的`z-index`值,可以...

    DIV+CSS DIV居中布局

    在CSS中,居中布局通常涉及以下几种方法: 1. **margin auto**: 这是最常见的一种居中方法,适用于知道元素宽度的情况。设置`margin-left`和`margin-right`为`auto`,可以使`&lt;div&gt;`在父容器中水平居中。例如: `...

    jQuery 局部div刷新和全局刷新方法总结

    以下是几种常见的全局刷新方法: 1. 刷新当前页面,使用以下代码: ```javascript window.location.reload(); ``` 此方法会请求浏览器刷新当前页面。它通常用于当页面状态改变时,比如表单提交后,需要刷新当前...

    子元素div高度不确定时父div高度如何自适应

    为了解决这一问题,可以通过以下几种方法来实现父div的高度自适应。 第一种方法是使用清除浮动。在子元素div的后面添加一个用于清除浮动的div,这个div通常设置为"clear: both;"来确保它能够清除前面所有的浮动效果...

    几种常见的DIV边框样式

    几种常见的DIV边框样式

    几种样式的DIV弹出层

    总的来说,"几种样式的DIV弹出层"涵盖了网页动态交互的基本技术,包括静态页面结构、视觉设计和交互逻辑。开发者可以根据具体需求调整和扩展这些基本元素,以创建出更加复杂和个性化的弹出层效果。理解并掌握这些...

    div弹出层 定位问题的 处理

    3. **居中对齐**:让`div`弹出层居中,可以采用以下几种方式: - 使用负边距:通过计算`div`的宽度和高度的一半,然后设置负的`margin-left`和`margin-top`来实现。 - 使用`transform`属性:设置`transform: ...

Global site tag (gtag.js) - Google Analytics