DevExtreme Vue - Overview
The Box widget allows you to arrange various elements within it. This widget is separate and adaptive and acts as the layout's building block.
The following code adds a simple Box containing three items to your page. These items are plain texts placed in differently-colored rectangles arranged in a row. Equal ratio option values ensure they have equal widths.
jQuery
<div id="boxContainer">
    <div class="box-item orange" data-options="dxItem: { ratio: 1 }"> Item 1 </div>
    <div class="box-item yellow" data-options="dxItem: { ratio: 1 }"> Item 2 </div>
    <div class="box-item green"  data-options="dxItem: { ratio: 1 }"> Item 3 </div>
</div>
$(function() {
    $("#boxContainer").dxBox({
        direction: "row",
        height: 100
    });
});
.box-item {
    text-align: center;
    padding-top: 34px;
    font-size: 16px;
}
.orange { background: #f39e6c }
.yellow { background: #f5e5a6 }
.green { background: #94d7c7 }Angular
<dx-box
    direction="row"
    [height]="100">
    <dxi-item class="box-item orange" [ratio]="1"> Item 1 </dxi-item>
    <dxi-item class="box-item yellow" [ratio]="1"> Item 2 </dxi-item>
    <dxi-item class="box-item green"  [ratio]="1"> Item 3 </dxi-item>
</dx-box>
import { DxBoxModule } from 'devextreme-angular';
// ...
export class AppComponent {
    // ...
}
@NgModule({
    imports: [
        // ...
        DxBoxModule
    ],
    // ...
})
.box-item {
    text-align: center;
    padding-top: 34px;
    font-size: 16px;
}
.orange { background: #f39e6c }
.yellow { background: #f5e5a6 }
.green { background: #94d7c7 }Vue
<template>
    <DxBox
        direction="row"
        :height="100">
        <DxItem :ratio="1">
            <template #default>
                <div class="box-item orange"> Item 1 </div>
            </template>
        </DxItem>
        <DxItem :ratio="1">
            <template #default>
                <div class="box-item yellow"> Item 2 </div>
            </template>
        </DxItem>
        <DxItem :ratio="1">
            <template #default>
                <div class="box-item green"> Item 3 </div>
            </template>
        </DxItem>
    </DxBox>
</template>
<script>
import 'devextreme/dist/css/dx.common.css';
import 'devextreme/dist/css/dx.light.css';
import { DxBox, DxItem } from 'devextreme-vue/box';
export default {
    components: {
        DxBox,
        DxItem
    }
};
</script>
<style>
.box-item {
    text-align: center;
    padding-top: 34px;
    font-size: 16px;
}
.orange { background: #f39e6c }
.yellow { background: #f5e5a6 }
.green { background: #94d7c7 }
</style>React
import React from 'react';
import 'devextreme/dist/css/dx.common.css';
import 'devextreme/dist/css/dx.light.css';
import Box, { Item } from 'devextreme-react/box';
class App extends React.Component {
    render() {
        return (
            <Box
                direction="row"
                height={100}>
                <Item ratio={1}>
                    <div className="box-item orange"> Item 1 </div>
                </Item>
                <Item ratio={1}>
                    <div className="box-item yellow"> Item 2 </div>
                </Item>
                <Item ratio={1}>
                    <div className="box-item green"> Item 3 </div>
                </Item>
            </Box>
        );
    }
}
export default App;
.box-item {
    text-align: center;
    padding-top: 34px;
    font-size: 16px;
    height: 100%;
}
.orange { background: #f39e6c }
.yellow { background: #f5e5a6 }
.green { background: #94d7c7 }Note that the Box items in the code above are declared using the dxItem markup component. An object passed to this component can have the following fields:
See Also
- Configure a Widget: Angular | Vue | React | jQuery | AngularJS | Knockout | ASP.NET MVC 5 | ASP.NET Core
- Box - Specify an Item Size
- Box - Arrange and Align Items
- Box - Nest One Box into Another
- Box API Reference
If you have technical questions, please create a support ticket in the DevExpress Support Center.