• CSS3 box-sizing


    box-sizing 的应用。

    https://www.w3cplus.com/content/css3-box-sizing

    一、拯救布局 

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Box-sizing</title>
        <style type="text/css">
            .boxtest{
                border:20px solid;
                padding:30px;
                margin:30px;
                background:#ffc;
                300px;
            }
            .imgBox img{
                200px;
                height:200px;
                padding:20px;
                border:20px solid orange;
                margin:10px;
            }
            #contentBox img{
                box-sizing: content-box;
                -webkit-box-sizing:content-box;
                -moz-box-sizing:content-box;
                -o-box-sizing:content-box;
                -ms-box-sizing:content-box;
            }
            #borderBox img{
                box-sizing: border-box;
                -webkit-box-sizing:border-box;
                -moz-box-sizing:border-box;
                -o-box-sizing:border-box;
                -ms-box-sizing:border-box;
            }
            .layoutDemo{
                1000px;
                background: #000;
            }
            #header{
                100%;
                background: orange;
            }
            #left{
                220px;
                float:left;
                background: green;
            }
            #main-content{
                700px;
                float:left;
                background: gray;
            }
            #footer{
               100%;
               background: red;
                overflow: hidden;
            }
            .innerPadding{
                padding:30px;
                box-sizing:border-box;/*给大DIV里的所有小的div加box-sizing属性*/
                -webkit-box-sizing:border-box;
                -o-box-sizing:border-box;
                -moz-box-sizing:border-box;
                -ms-box-sizing:border-box;
            }
            .border{
                border:10px solid yellow;
            }
    
        </style>
    </head>
    <body>
    <div class="boxtest"></div>
    <div class="imgBox" id="contentBox"><img src="images/4.png"/></div>
    <div class="imgBox" id="borderBox"><img src="images/4.png"/></div>
    <br/>
    <div class="layoutDemo">
        <div id="header" class="innerPadding border">Header Content</div>
        <div id="content" class="clearfix">
            <div id="left" class="aside innerPadding border">Left Sidebar</div>;
            <div id="main-content" class="article innerPadding border">Main Content</div>
        </div>
        <div id="footer" class="innerPadding border"> Footer Content</div>
    </div>
    
    </body>
    </html>
    

      重要*****

    OM元素的Layout图明显告诉我们:

    1、【type="submit"】、【type="reset"】、button、【type="text"】、select、textarea默认情况下都带有2px的border;

    2、【type="submit"】、【type="reset"】、button默认情况下会有6px的左右padding;height在mac系统下会比在winxp win7系统下少1px,只有16px,(12px的字体时高度为17px);

    3、【type="text"】默认情况下会有1px的上下padding;WinXP和Win7下高度为15px,Mac系统下为14px

    4、【type="checkbox"】默认情况下会有margin:3px 3px 3px 4px,并且宽/高度默认为13px(IE6,IE7默认大约是15px,Mac系统下只有9px)

    5、【type="radio"】默认情况下会有margin: 3px 3px 0 5px的外边,并且宽/高度默认为13px(IE6,IE7默认大约是15px,Mac系统下只有9px)

    6、textarea默认情况带有1px的上下margin;

    第二、统一Form元素风格 

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Box-sizing统一Form元素风格</title>
        <style type="text/css">
            body{
                font-size:12px;
            }
            form{
                200px;
                margin:20px auto;
                padding:10px;
                border:1px solid #ccc;
            }
            .form-field{
                margin-bottom:5px;
                background:#cdcdcd;
                padding:2px;
            }
            .submit,
            .reset,
            .button,
            .text,
            .select,
            .textarea{
                80px;
                border-color:red;
            }
            .textarea{
                resize:none;
            }
            .submit,
            .reset,
            .button,
            .text,
            .select,
            .textarea,
            .checkbox,
            .radio{
                margin:0;/*清除元素自带的样式*/
                padding:0;/*清除元素自带的样式*/
                border-1px;/*清除元素自带的样式*/
                height:17px;
                -moz-box-sizing:border-box;
                -webkit-box-sizing:border-box;
                -o-box-sizing:border-box;
                -ms-box-sizing:border-box;
                box-sizing:border-box;
                /*IE6和IE7不支持box-sizing的属性,所以为了兼容还需要为它一个hack*/
                *height:15px;
                *15px; /*这里的长度需要减去border的值,如果padding的值不是0还需要减去padding的值*/
            }
        </style>
    </head>
    <body>
    <form action="#" method="post">
        <div class="form-field">
            <input type="submit" value="submit" class="submit"/>
        </div>
        <div class="form-field">
            <input type="reset" value="reset" class="reset"/>
        </div>
        <div class="form-field">
            <button class="button">button</button>
        </div>
        <div class="form-field">
            <input type="text" value="text" class="text"/>
        </div>
        <div class="form-field">
            <select name="select" id="select" class="select">
                <option value="1">1980</option>
            </select>
        </div>
        <div class="form-field"><input type="checkbox" class="checkbox" />checkbox</div>
        <div class="form-field"><input type="radio" class="radio" />radio</div>
        <div class="form-field"><textarea name="textarea" id="" cols="30" rows="3" class="textarea"></textarea></div>
    </form>
    </body>
    </html>
    

      不清除自带样式的效果图:

    清除自带的样式后:

    使用box-sizing后:

  • 相关阅读:
    RedGlove 权限管理系统(1)权限概述
    SPQuery查询语法简要说明
    DataGridView使用技巧大全
    实战asp.net MVC+ADO.NET EntityFramework
    RedGlove 权限管理系统(2)功能模块设计
    C# 如果何从线程中操作控件
    PageHelper 类 和 ValidateHelper 类
    字符串帮助类
    XMLHelper 类
    Android中截取当前屏幕的功能
  • 原文地址:https://www.cnblogs.com/potato-lee/p/8533912.html
Copyright © 2020-2023  润新知