盒子内部对齐box-pack属性与box-align属性详解

2020-07-23 18:37:14
本篇文章给大家带来的内容是关于盒子内部对齐box-pack属性与box-align属性详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

当弹性元素与非弹性元素混合排版时,有可能会出现所有子元素的尺寸大于或小于盒子的尺寸,从而出现盒子空间不足或者富余的情况。这时就需要一种方法来管理盒子的空间。如果子元素的总尺寸小于盒子的尺寸,则可以使用box-align和box-pack属性进行管理。

CSS3新增的box-pack属性和box-align属性,分别用于定义盒元素内部“子元素”的水平方向和垂直方向上的富余空间管理方式。这些对齐方式,对盒元素内部的文字、图形以及子元素都是有效的。

一、水平对齐box-pack属性

box-pack属性可以在水平方向上对盒子的富余空间进行管理。

二、垂直对象box-align属性

box-align属性可以在垂直方向上对盒子的富余空间进行管理。

三、实际应用

在CSS2中,如果想要让文字垂直居中,往往都是设置height属性值等于line-height属性值 ,不过学习了这一节,我们只要让div元素使用box-align属性(排列方向默认为horizontal),文字就可以垂直居中了。

举例1:文字自适应居中(包括垂直居中和水平居中)

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    <title>盒子内部对齐box-pack属性与box-align属性</title>    <style type="text/css">        div        {            width:200px;            height:160px;            display:-webkit-box;            -webkit-box-align:center;            -webkit-box-pack:center;            background-color:pink;        }    </style></head><body>    <div>php中文网</div></body></html>

微信截图_20181023144035.png

举例2:图片自适应居中(包括垂直居中和水平居中)

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    <title>盒子内部对齐box-pack属性与box-align属性</title>    <style type="text/css">        #control        {            margin-bottom:10px;        }        #view        {            width:160px;            height:100px;            display:-webkit-box;            -webkit-box-orient:horizontal;            -webkit-box-align:center;            -webkit-box-pack:center;            border:1px solid silver;        }    </style>    <script src="jquery-1.11.3.min.js" type="text/javascript"></script>    <script type="text/javascript">        $(function () {            $("#range_width").change(function () {                var num = $(this).val();                $("#value_width").text(num + "px");                $("#view").css("width", num + "px");            });            $("#range_height").change(function () {                var num = $(this).val();                $("#value_height").text(num + "px");                $("#view").css("height", num + "px");            });        })    </script></head><body>    <div id="control">        宽度:<input id="range_width" type="range" min="160" max="320" value="160"/><span id="value_width">160px</span><br />        高度:<input id="range_height" type="range" min="100" max="240" value="100"/><span id="value_height">100px</span>    </div>    <div id="view"><img src="../App_images/lesson/run_css3/css3.png" alt=""/></div></body></html>

13-6-2.png