深入CSS浮动模型 | 8月更文挑战

332 阅读2分钟

这是我参与8月更文挑战的第25天,活动详情查看:8月更文挑战

今天我们来聊聊浮动模型float

通过属性float:left/right

  1. 可以让元素站队,左浮动或者右浮动;
  2. 浮动模型的本质是:浮动元素产生了浮动流;

但是包裹浮动元素,会有一个外层包裹不了浮动元素的现象,如:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>包裹浮动元素</title>
    <style>
        .wraper{
            border: 1px solid rgb(3, 54, 3);
        }
        .left{
            height: 100px;
            width: 100px;
            background-color: rgb(178, 127, 224);
            float: left;
        }
        .right{
            height: 100px;
            width: 200px;
            background-color: rgb(224, 211, 18);
            float:right;
        }
    </style>
</head>
<body>
    <div class="wraper">
        <div class="left"></div>
        <div class="right"></div>
    </div>
</body>
</html>

原本外围容器如果没有设置高度,其高度会由内容撑开,那为什么撑不起来呢。原因是所有产生了浮动流的元素,块级元素看不到他们,只要但产生了bfc的元素和文本类带有inline属性的元素以及文本都能看到浮动元素。那怎么办?其实,源于浮动流终于浮动流,我们可以通过清除浮动流的方式来解决这个问题。

利用伪元素清除浮动流

.wraper:after{
  content:'';
  display:block;
  clear:both;
}

解决!

注: 伪元素天生就存在任意一个元素里, 清除浮动使用者必须是块级元素; 有两个伪元素:

  • :before
  • :after

其他零散知识点

  1. 凡是设置了position:absolute以及float:left/right的元素,实质内部自动变成了inline-block元素。
  2. 凡是带有inline的元素都有文本的特点,叫文本类元素,包括inline和inline-block元素。
  3. 溢出容器打点显示
white-space:nowrap;文字不换行
overflow:hidden;超出部分隐藏
text-overflow:ellipsis;打点
  1. 一般行内元素只能嵌套行内元素,特别的:a标签不能嵌套a标签; 一般块级元素可以嵌套任何元素,特别的:p标签不能嵌套块级元素;

以上就是本文的都是有内容,欢迎点赞支持