zoukankan      html  css  js  c++  java
  • css盒子

    css盒子

    一,盒子尺寸

    前端开发在写布局的时候常常会碰到这样一种情况,我们希望设置一个元素的宽度为100%,但是他仍然有内边距或外边距的应用。在使用传统的盒模型时,CSS使用父元素的宽度计算百分比宽度,然后再加上外边距和内边距。换句话说,100%宽度的元素加上内边距和外边距就会产生溢出现象。因此,我们可以将box-sizing设置为border-box,而不是原来默认的content-box,这样就可以改变计算尺寸的方式,边框,内边距,外边距都将计算在内。但是这种用法在IE8以前的版本是不支持的,除非你打算放弃兼容这些让人厌恶的IE浏览器。用法如下:

    .border-box{
        -webkit-box-sizing:border-box;
        -moz-box-sizing:border-box;
        box-sizing:border-box;
    }

    二,弹性盒模型

    这个东西是我们日夜期待的特性,因为我们总希望我们的块能够在宽度和高度上自动延伸。因此CSS3引入了弹性盒模型的概念,如果你用过或者懂得EXT,那么这里的用法你将会感觉相当熟悉。首先,我们的父元素需要设置为BOX状态:

    .hbox{
        display:-webkit-box;
        -webkit-box-orient:horizontal;
        -webkit-box-align:stretch;
        -webkit-box-pack:left;
    
        display:-moz-box;
        -moz-box-orient:horizontal;
        -moz-box-align:stretch;
        -moz-box-pack:left;
    }
    .vbox{
        display:-webkit-box;
        -webkit-box-orient:vertical;
        -webkit-box-align:stretch;
    
        display:-moz-box;
        -moz-box-orient:vertical;
        -moz-box-align:stretch;
    }

    父容器设置完成后,我们就可以在子容器中相应的设置其所占据的空间了,用flex就可以非配其空间大小,如果已经有一个固定的宽度或高度值,则将它的flex设置为0:

    #sidebar{
         -webkit-box-flex:0;
        -moz-box-flex:0;
        box-flex:0;
        width:200;
    }
    #content{
        -webkit-box-flex:1;
        -moz-box-flex:1;
        box-flex:1;
    }
  • 相关阅读:
    树莓派3(Raspbain系统)安装.net环境
    CSS3实现鼠标悬停扩展效果
    WINIO64位模拟键鼠操作
    json在线校验
    阿里云ali-oss图片增加水印
    babel使用中不想使用 严格模式 如何去除?
    记录移动端html界面中底部输入框触发焦点时键盘会把输入框遮挡的问题
    nodejs 项目,请求返回Invalid Host header问题
    css如何画出类似原生的线条?
    js回到顶部 动画速度 (自己记录)
  • 原文地址:https://www.cnblogs.com/moyiqing/p/css_box.html
Copyright © 2011-2022 走看看