前端--CSS样式--float浮动_overflow溢出

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>float</title>
    <style>
        .div_bg{
            border:1px black solid;
            width: 20%;
            height: 100px;
            background: deepskyblue;
        }
        .bgcolor_red{
            background: red;
        }
        .bgcolor_green{
            background: green;
        }
        .float_test{
            float: left;
            border:1px black solid;
            width: 20%;
            height: 100px;
        }
        .div_border{
            width: 100%;
            border: 1px yellow solid;
            background: yellow;
        }
        table tr td{
            border:1px black solid;
        }
        .clearfix:after{
            content: "";
            clear: both;
            display: block;
        }
        .css_overflow{
            width: 150px;
            height: 150px;
            border:1px black solid;
            margin-right: 10px;
        }
    </style>
</head>
<body>

<div>
    <p>float</p>
    <p>在CSS中,任何元素都可以浮动,浮动元素会生成一个块级框,而不论它本身是何种元素,即即便是内联标签也会转成块级标签。
    </p>

    <ul>
        关于浮动的两个特点
        <li>浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另外一个浮动框的边框为止。</li>
        <li>由于浮动不在文档的普通流中,所以文档的普通流中的块框表现的就像浮动框不存在一样</li>
    </ul>
    <ul>
        float的三种属性
        <li>left:向左浮动</li>
        <li>right:向右浮动</li>
        <li>none:默认值,不浮动</li>
    </ul>
    <p>浮动示例</p>
    <p>不设置浮动</p>
    <div class="div_bg">这是第一个DIV</div>
    <div class="div_bg">这是第二个DIV</div>
    <p>设置浮动后</p>
    <div class="float_test bgcolor_red">这是第三个DIV</div>
    <div class="float_test bgcolor_green">这是第四个DIV</div>
    <div style="clear: left"></div><!--位置能够展示效果,所以这里做了次clear,看的时候忽略即可-->
    <p>若有一个大的DIV包含着浮动的DIV</p>
    <div class="div_border">这是一个大的DIV假设是BODY
        <div class="float_test bgcolor_red">这是第五个DIV</div>
        <div class="float_test bgcolor_green">这是第六个DIV</div>
    </div>
    <p style="margin-top: 101px">上面会发现两个浮动块飘出了包围它的DIV。<br/>怎么解决呢?<br/><span style="color:red; font-size: 30px;">于是引出了clear元素</span></p>
</div>
<div>
    <p>clear 元素 <br/>clear属性规定元素的那一侧不允许其他浮动元素。
     <br/><span style="background: yellow;color:red;">注意:</span>clear属性只会对<span style="font-weight: bold">自身</span>起作用,而不会影响其他元素。
    </p>
    <table>
        <thead>
        <tr>
            <td></td>
            <td>描述</td>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>left</td>
            <td>左侧不允许浮动元素</td>
        </tr>
        <tr>
            <td>right</td>
            <td> 右侧不允许浮动元素</td>
        </tr>
        <tr>
            <td>both</td>
            <td>在左右两侧均不允许浮动</td>
        </tr>
        <tr>
            <td>none</td>
            <td>默认值,允许浮动元素出现在两侧</td>
        </tr>
        <tr>
            <td>inherit</td>
            <td>规定应该从父元素继承clear属性的值</td>
        </tr>
        </tbody>
    </table>
    <p>清除浮动<br/>清除浮动的副作用(父标签塌陷问题)</p>
    <ul>主要的三种方式:
        <li>固定高度</li>
        <li>伪元素清除法</li>
        <li>overflow:hidden</li>
    </ul>
    <p style="color: red;font-size:30px">伪元素清除法(使用较多)</p>
    <p>.clearfix:after {content: "";display: block;clear: both;}</p>
    <p>示例</p>
    <div class="div_border clearfix"> 这是一个大的DIV假设是BODY
        <div class="bgcolor_red float_test">这是第七个DIV</div>
        <div class="bgcolor_green float_test">这是第八个DIV</div>
    </div>
</div>
<div>
    <p>overflow 溢出属性</p>
        <table>
        <thead>
        <tr>
            <td></td>
            <td>描述</td>
        </tr>
        </thead>
        <tbody>
        <tr>
            <td>visible</td>
            <td>默认值。内容不会被修剪,会呈现在元素框之外</td>
        </tr>
        <tr>
            <td>hidden</td>
            <td> 内容会被修剪,并且其余内容是不可见的。</td>
        </tr>
        <tr>
            <td>scroll</td>
            <td>内容会被修剪,但是浏览器会显示滚动条以便查看其余的内容。</td>
        </tr>
        <tr>
            <td>auto</td>
            <td>如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容。</td>
        </tr>
        <tr>
            <td>inherit</td>
            <td>规定应该从父元素继承overflow属性的值</td>
        </tr>
        </tbody>
    </table>
    <ul>
        <li>overflow(水平和垂直均设置)</li>
        <li>overflow-x(设置水平方向)</li>
        <li>overflow-y(设置垂直方向)</li>
    </ul>
    <p>示例</p>
    <div class="clearfix" style="margin-bottom: 80px">
        <div class="float_test css_overflow">
            <p>哈哈哈这是溢出示例;哈哈哈这是溢出示例;哈哈哈这是溢出示例;哈哈哈这是溢出示例;哈哈哈这是溢出示例;哈哈哈这是溢出示例;哈哈哈这是溢出示例;哈哈哈这是溢出示例;</p>
        </div>
        <div style="overflow: hidden; " class="float_test css_overflow">
            <p>哈哈哈这是<span style="color: red;font-weight: bold;">溢出overflow:hidden</span>示例;哈哈哈这是溢出overflow:hidden示例;哈哈哈这是溢出overflow:hidden示例;哈哈哈这是溢出overflow:hidden示例;哈哈哈这是溢出overflow:hidden示例;</p>
        </div>
        <div style="overflow:scroll;" class="float_test css_overflow">
            <p>哈哈哈这是<span style="color: red;font-weight: bold;">溢出overflow:scroll</span>示例;哈哈哈这是溢出overflow:hidden示例;哈哈哈这是溢出overflow:hidden示例;哈哈哈这是溢出overflow:hidden示例;哈哈哈这是溢出overflow:hidden示例;</p>
        </div>
        <div style="overflow:auto;" class="float_test css_overflow">
            <p>哈哈哈这是<span style="color: red;font-weight: bold;">溢出overflow:auto</span>示例;哈哈哈这是溢出overflow:hidden示例;哈哈哈这是溢出overflow:hidden示例;哈哈哈这是溢出overflow:hidden示例;哈哈哈这是溢出overflow:hidden示例;</p>
        </div>
    </div>
    <p>网页圆形图标示例<br/>使用了border-radius:50%会变为圆角,可以返回边框查看消息</p>
    <div>
        <div style="height: 150px;width:150px;border:1px black solid; border-radius: 50%; overflow: hidden;">
            <img src="img.jpg" alt="" style="max-width: 100%">
        </div>
    </div>
</div>


</body>
</html>
代码块

posted on 2019-07-02 16:44  Jerry-Wang  阅读(685)  评论(0)    收藏  举报