小码哥的IT人生

CSS flex-direction 属性 详解

css3基础 2022-07-14 16:27:17小码哥的IT人生shichen

CSS flex-direction 属性

定义和用法

flex-direction 属性规定弹性项目的方向。

注释:如果元素不是弹性项目,则 flex 属性无效。

另请参阅:

CSS 教程:CSS 弹性框

CSS 参考手册:flex 属性

CSS 参考手册:flex-basis 属性

CSS 参考手册:flex-flow 属性

CSS 参考手册:flex-grow 属性

CSS 参考手册:flex-shrink 属性

CSS 参考手册:flex-wrap 属性

HTML DOM 参考手册:flexDirection 属性

实例

以相反的顺序设置 <div> 元素内的弹性项目的方向:

div {
  display: flex;
  flex-direction: row-reverse;
}

 

完整实例【亲自试一试】:

<!DOCTYPE html>
<html>
<head>
<style>
#main {
  width: 400px;
  height: 400px;
  border: 1px solid #c3c3c3;
  display: flex;
  flex-direction: row-reverse;
}
#main div {
  width: 50px;
  height: 50px;
}
</style>
</head>
<body>
<h1>flex-direction 属性</h1>
<div id="main">
  <div style="background-color:coral;">A</div>
  <div style="background-color:lightblue;">B</div>
  <div style="background-color:khaki;">C</div>
  <div style="background-color:pink;">D</div>
  <div style="background-color:lightgrey;">E</div>
  <div style="background-color:lightgreen;">F</div>
</div>
<p><b>注释:</b>Internet Explorer 10 以及更早的版本不支持 flex-direction 属性。</p>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

CSS 语法

flex-direction: row|row-reverse|column|column-reverse|initial|inherit;

属性值

描述
row 默认值。作为一行,水平地显示弹性项目。
row-reverse 等同行,但方向相反。
column 作为列,垂直地显示弹性项目。
column-reverse 等同列,但方向相反。
initial 将此属性设置为其默认值。参阅 initial
inherit 从其父元素继承此属性。参阅 inherit

技术细节

默认值: row
继承:
动画制作: 不支持。请参阅:动画相关属性
版本: CSS3
JavaScript 语法: object.style.flexDirection="column-reverse"

更多实例

结合使用 flex-direction 和媒体查询为不同的屏幕尺寸/设备创建不同的布局:

.flex-container {
  display: flex;
  flex-direction: row;
}
/* 响应式布局 - 制作单列布局(100%)而不是两列布局(50%) */
@media (max-width: 800px) {
  .flex-container {
    flex-direction: column;
  }
}

 

完整实例【亲自试一试】:

<!DOCTYPE html>
<html>
<head>
<style>
* {
  box-sizing: border-box;
}
.flex-container {
  display: flex;
  flex-direction: row;
  font-size: 30px;
  text-align: center;
}
.flex-item-left {
  background-color: #f1f1f1;
  padding: 10px;
  flex: 50%;
}
.flex-item-right {
  background-color: dodgerblue;
  padding: 10px;
  flex: 50%;
}
/* 响应式布局 - 制作一列布局而不是两列布局 */
@media (max-width: 800px) {
  .flex-container {
    flex-direction: column;
  }
}
</style>
</head>
<body>
<h1>响应式弹性框</h1>
<p>"flex-direction: row;" 水平地并排弹性项目(从左到右)。</p>
<p>"flex-direction: column;" 垂直地堆叠弹性项目(从上到下)。</p>
<p><b>请调整浏览器窗口的大小,来查看小于或等于 800 像素时的方向改变。</b></p>
<div class="flex-container">
  <div class="flex-item-left">1</div>
  <div class="flex-item-right">2</div>
</div>
</body>
</html>

可以使用本站在线JavaScript测试工具测试上述代码运行效果:http://www.phpcodeweb.com/runjs.html

浏览器支持

表格中的数字注明了完全支持该属性的首个浏览器版本。

带 -webkit- 或 -moz- 的数字表示使用前缀的首个版本。

Chrome IE / Edge Firefox Safari Opera
29.0
21.0 -webkit-
11.0 28.0
18.0 -moz-
9.0
6.1 -webkit-
17.0

版权所有 © 小码哥的IT人生
Copyright © phpcodeweb All Rights Reserved
ICP备案号:苏ICP备17019232号-2  

苏公网安备 32030202000762号

© 2021-2024