Heim > Web-Frontend > HTML-Tutorial > div+css浮动的解决方法_html/css_WEB-ITnose

div+css浮动的解决方法_html/css_WEB-ITnose

WBOY
Freigeben: 2016-06-24 11:44:27
Original
1105 Leute haben es durchsucht

  已知父div容器,父容器包含两个子div,在两个子div标签后面添加一个清除浮动(clear)的div标签,父div标签的内部(左右两边/*css5*/)浮动就清除了。

  如果有一个div容器

,包含了一个子容器
,子容器设置一个宽度、高度、背景色,如不设置内、外边距以及清除浮动clear、浮动float,此时子容器div默认居左。那么是否真的居左,我们设置一下float:left;发现设置了居左left,子容器的div产生了浮动,子容器div离大容器顶部有一定距离,然后我margin-top:10px, 子容器在原有的基础上向下移动了margin的距离,也就是说,浮动,不随margin padding边距影响。

    <body>        <div class="divcss5">            <div class="clear"></div>
Nach dem Login kopieren

        

        </div>     </body>    
Nach dem Login kopieren

  如果,我现在给子容器设置top:10px,看到的效果是不发生变化,也就是是说浮动不会随着top,left发生改变。当我给子容器设置相对位置position:relative;看到的效果是怎么样的呢?现在子容器的效果还是浮动的,但是当我分别设置margin-left:10px和 left:10px;看到子容器分别会随着margin-left和left发生改变相应的位置,同样margin-top和top都会发生变化。

  也就是说,当子容器设置浮动float,接着给子容器设置margin会有作用,设置left 、top是没有作用,只有给子容器设置相对位置的时候,不仅margin能起作用,left、top也能会起作用,那么是不是说left,top是在相对位置的时候才起作用呢?那么现在我们就做一个实验,我在子容器里把float:left;position:relative;都删掉,不会浮动,也不会有相对位置,然后写上top:10px;left:10px;相应的代码如下:.clear{width: 200px;background: #f2e;color:#030617;height: 20px;top:50px;left:10px;};结果是子容器根本没有移动过位置,所以,事实证明,left、top是在设置了相对位置position的时候才起作用。margin就是不管你设置position与不设置position都会起作用。

  继续上面的float浮动,如果现在给float设置inherit;设置继承浏览器的浮动属性,此时我们看到的是不浮动的,默认居左。同样的设置 none initial也不会有作用。只有子容器设置了浮动left和right,子容器才会出现浮动。

  下面,我们用一种其他的方法来清除浮动,HTML代码还是以上的代码,大容器的div的css代码还是上面的代码.divcss5{padding:10px 0;width: 100%; left: 50%;right: 50%;background: #007CB5;},
子容器的代码还是上面的代码:.clear{width: 200px;background: #f2e;color:#030617;height: 20px;float:left;},此时看到的是浮动的效果,子容器浮在大容器上面,同样的原理,我还是用清除浮动clear:both;我们可以用css伪元素:after,下面就是一个很简单的css代码,给父容器写css伪类,代码:.divcss5:after{content: "1";clear: both;display: block;},此时,我们看到的是,清除了大容器的浮动,并且在浏览器上能看到子容器被包含在了大容器内部。在浏览器上F12查看浏览器,可以看到after包含在了父容器内,所以,他相当于在给父容器加一个clear,只是少了一个div层,这个层被.divcss5:after实现了。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage