zoukankan      html  css  js  c++  java
  • CSS浮动简明小结

    1. span元素在默认情况下忽略 width 和 height,除非设置其 display 属性为 block 或 inline-block。这是因为只有块级元素和行内块级元素才能够有自己的宽高

    <body>
      <span id="haha">这是一个行内元素</span>
    </body>
    ​
    ​#haha{
      200px;
      height:80px;
      background-color:pink;
       display:inline-block;
    }

    2. 在将 span 元素设置成块级元素后如何居中显示文本? 设置 line-height 属性为 height 的值,并设置 text-align 为 center。

    <body>
      <span id="haha">这是一个行内元素</span>
    </body>
    ​​
    #haha{
      200px;
      height:80px;
      background-color:pink;
      display:inline-block;
      line-height:80px;
      text-align:center;
    }

    3. 不要在 p 元素中嵌套 div。 这会导致外层的 p 元素会被拆分成两个同级的 p 元素,并且原先内嵌的 div 会被提升到拆分后的两个 p 元素中间。

    <div>
      <p>
        这是p标签的文本
        <div>这里是div的文本</div>
      </p>
    </div>

    如上的源码会导致生成如下图所示的结果:

      p 标签应该用来存放文本而不是用于布局。

    4. 浮动布局。

    假设有如下的代码:

    <div>
      <div class="box">第一个盒子</div>
      <div class="box">第二个盒子</div>
      <div class="box">第三个盒子</div>
    </div>
    ​
    ​.box{
      90px;
      height:80px;
      background-color:purple;
      color:#fff;
      text-align:center;
      line-height:80px;
      margin:2px;
    }

    这三个带 box 类属性的 div 会从上到下依次排开,因为 div 是块级元素会独占一行:

    为了让这三个 div 横向上依次排开,需要对它们进行浮动布局,即让它们“飘起来”。注意,飘起来后只有两个方向,向左浮动和向右浮动。使用“float:left|right”可以达到漂浮的目的

    .box{
      90px;
      height:80px;
      background-color:purple;
      color:#fff;
      text-align:center;
      line-height:80px;
      margin:2px;
      float:left;
    }

    5. 行内元素的浮动布局。

    对行内元素使用浮动布局,会使得其转变为行内块级元素

    <div>
      <span class="box">第一个盒子</span>
      <span class="box">第二个盒子</span>
      <span class="box">第三个盒子</span>
    </div>
    ​
    ​
    .box{
      90px;
      height:80px;
      background-color:purple;
      color:#fff;
      text-align:center;
      line-height:80px;
      margin:2px;
      float:left;
    }

    6. 清除浮动:清除浮动就是给飞出去的元素填坑,好让后面的元素不顶过来

    <div>
      <div class="box fl">第一个盒子</div>
      <div class="box fl">第二个盒子</div>
      <div class="box fl">第三个盒子</div>
      <div class="box">第四个盒子</div>
    </div>
    
    .box{
      90px;
      height:80px;
      background-color:purple;
      color:#fff;
      text-align:center;
      line-height:80px;
      margin:2px;
    }
    ​​
    .fl{float:left;}
    .fr{float:right;}

    如上所示的代码,如果不清除浮动的话,第四个盒子是看不见的。清除浮动的方法有两种。

    (1)在浮动定位的最后一个元素后面添加一个空元素(如 div ),并对其应用样式“clear:both”即可。

    <div>
      <div class="box fl">第一个盒子</div>
      <div class="box fl">第二个盒子</div>
      <div class="box fl">第三个盒子</div>
      <div style="clear:both"></div>
    ​  <div class="box">第四个盒子</div>
    </div>

    (2)【推荐】使用伪类。

    /* 清除浮动 */
    .clearfix:before, .clearfix:after{content:" "; display:table;}
    .clearfix:after{clear:both;}

    给需要清除浮动的那个元素添加上 clearfix 的 class 即可,例如在本例中,需要给三个盒子外面套一层 div,加上 clearfix 的class,就可以了。

    <div class="clearfix">
      <div class="box fl">第一个盒子</div>
      <div class="box fl">第二个盒子</div>
      <div class="box fl">第三个盒子</div>
    </div>
    <div class="box">第四个盒子</div>

  • 相关阅读:
    java时间戳与Date相互转换、日期格式化、给日期加上指定时长、判断两时间点是否为同一天
    notepad++去掉红色波浪线
    发生异常Address already in use: bind
    SecureCRT背景颜色
    linux查看实时日志命令
    idel上传代码到github时遇到的Push rejected: Push to origin/master was rejected
    git解决error: The following untracked working tree files would be overwritten by checkout
    使用SecureCRT工具上传、下载文件的两种方法
    Windows下Zookeeper启动zkServer.cmd闪退问题的解决方案
    Maven的Snapshot版本与Release版本
  • 原文地址:https://www.cnblogs.com/itfky/p/13730334.html
Copyright © 2011-2022 走看看