CSS3 box-align 属性

对div中的子元素同时使用box-align和box-pack的居中属性:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <style>
    div {
      width: 350px;
      height: 100px;
      border: 1px solid black;

      /* Internet Explorer 10 */
      display: -ms-flexbox;
      -ms-flex-pack: center;
      -ms-flex-align: center;

      /* Firefox */
      display: -moz-box;
      -moz-box-pack: center;
      -moz-box-align: center;

      /* Safari, Chrome, and Opera */
      display: -webkit-box;
      -webkit-box-pack: center;
      -webkit-box-align: center;

      /* W3C */
      display: box;
      box-pack: center;
      box-align: center;
    }
  </style>
</head>
<body>

  <div>
    <p>Center me!</p>
  </div>

  <p><b>注意:</b> Flexible boxes 在 IE 9和更早版本的浏览器中不兼容</p>
</body>
</html>

尝试一下 »


浏览器支持

Internet ExplorerFirefoxOperaGoogle ChromeSafari

目前所有主流浏览器都不支持 box-align 属性。

Internet Explorer 10 通过私有属性 -ms-flex-align 支持.

Firefox通过私有属性- MOZ-box-align支持。

Safari和Chrome通过私有属性-WebKit-box-align支持。

注意:Internet Explorer 9及更早IE版本不支持弹性盒子。


属性定义及使用说明

box- align属性指定box的子元素如何对齐。

默认值: stretch
继承: no
版本: CSS3
JavaScript 语法: object.style.boxAlign="center"

语法

box-align: start|end|center|baseline|stretch;

说明
start 对于正常方向的boxes,每个子元素的顶部边缘放在沿box的顶部。反向箱,每个子元素的底边放在沿box的底部
end 对于正常方向的boxes,每个子元素的顶部边缘放在沿box的底部。反向箱,每个子元素的底边放在沿box的顶部
center 任何多余的空间被划分均匀,一半以上的子元素放在上面,剩下的子元素放在另一半
baseline 如果box-orient是内嵌单轴或横向,所有的子元素都置于他们的基线对齐
stretch 子元素拉伸以填充包含区块

在线实例

更改一个元素的box对齐值 - 这个例子演示了如何使用JavaScript来改变一个元素box-align值。

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <style>
    .box {
      display: -ms-flexbox;
      display: -moz-box;
      display: -webkit-box;
      display: box;
      width: 200px;
      height: 100px;
      border: 2px solid red;
    }
  </style>
  <script>
    function ChangeBoxAlign(x) {
      // Returns the selected option's text
      var boxAlign = x.options[x.selectedIndex].text;
      var div = document.getElementById("myDiv");
      if (div.style.MozBoxAlign !== undefined) {
        div.style.MozBoxAlign = boxAlign;
      } else if (div.style.webkitBoxAlign !== undefined) {
        div.style.webkitBoxAlign = boxAlign;
      } else if (div.style.msFlexAlign !== undefined) {
        div.style.msFlexAlign = boxAlign;
      } else {
        alert("Your browser doesn't support this example!");
      }
    }
  </script>
</head>
<body>
  <div class="box" id="myDiv">
    <b>first child</b>
    <i>second child</i>
  </div>

  <select onchange="ChangeBoxAlign (this);" size="6">
  <option selected="selected" />baseline
  <option />center
  <option />end
  <option />inherit
  <option />start
  <option />stretch
</select>

  <p><b>注意:</b> 这个实例在 Opera,或 Internet Explorer 9以及更早版本的浏览器中不兼容</p>

</body>
</html>

尝试一下 »