diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Grids.cshtml b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Grids.cshtml index 4957fd3636..097b670e70 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Grids.cshtml +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Pages/Components/Grids.cshtml @@ -10,260 +10,838 @@ } +@section scripts { + + @* + *@ + +} + + + + +

Grids

Based on Bootstrap grid.

-

# Example

+

Equal-width

-
+
- One of two columns - One of two columns + 1 of 2 + 2 of 2 + + + 1 of 3 + 2 of 3 + 3 of 3 + +
+
+ + +

+        <abp-container>
+            <abp-row>
+                <abp-column>1 of 2</abp-column>
+                <abp-column>2 of 2</abp-column>
+            </abp-row>
+            <abp-row>
+                <abp-column>1 of 3</abp-column>
+                <abp-column>2 of 3</abp-column>
+                <abp-column>3 of 3</abp-column>
+            </abp-row>
+        </abp-container>
+
+
+ +

+        <div class="container">
+            <div class="row">
+                <div class="col">1 of 2</div>
+                <div class="col">2 of 2</div>
+            </div>
+            <div class="row">
+                <div class="col">1 of 3</div>
+                <div class="col">2 of 3</div>
+                <div class="col">3 of 3</div>
+            </div>
+        </div>
+
+
+
+
+
+ +

Column Breaker

+ +
+
+ - One of three columns - One of three columns - One of three columns + column + column + + column + column
-
-<abp-container>
-     <abp-row>
-         <abp-column size-sm="C6">One of two columns</abp-column>
-         <abp-column size-sm="C6">One of two columns</abp-column>
-     </abp-row>
-     <abp-row>
-         <abp-column size-sm="C4">One of three columns</abp-column>
-         <abp-column size-sm="C4">One of three columns</abp-column>
-         <abp-column size-sm="C4">One of three columns</abp-column>
-     </abp-row>
-</abp-container>
-
+ + +

+        <abp-container>
+            <abp-row>
+                <abp-column>column</abp-column>
+                <abp-column>column</abp-column>
+                <abp-column-breaker/>
+                <abp-column>column</abp-column>
+                <abp-column>column</abp-column>
+            </abp-row>
+        </abp-container>
+
+
+ +

+        <div class="container">
+            <div class="row">
+                <div class="col">column</div>
+                <div class="col">column</div>
+                <div class="w-100"></div>
+                <div class="col">column</div>
+                <div class="col">column</div>
+            </div>
+        </div>
+
+
+
-

# Break Column Example

+

Setting one column width

-
+
- One of three columns - One of three columns - @* TODO: abp-column-break *@ - One of three columns + 1 of 3 + 2 of 3 (wider) + 3 of 3 + + + 1 of 3 + 2 of 3 (wider) + 3 of 3
-
- <abp-container>
-     <abp-row>
-         <abp-column>One of three columns</abp-column>
-         <abp-column>One of three columns</abp-column>
-         <abp-col-break /> @* TODO: abp-column-break *@
-         <abp-column>One of three columns</abp-column>
-     </abp-row>
- </abp-container>
-
+ + +

+        <abp-container>
+            <abp-row>
+                <abp-column>1 of 3</abp-column>
+                <abp-column size="_6">2 of 3 (wider)</abp-column>
+                <abp-column>3 of 3</abp-column>
+            </abp-row>
+            <abp-row>
+                <abp-column>1 of 3</abp-column>
+                <abp-column size="_5">2 of 3 (wider)</abp-column>
+                <abp-column>3 of 3</abp-column>
+            </abp-row>
+        </abp-container>
+
+
+ +

+        <div class="container">
+            <div class="row">
+                <div class="col">1 of 3</div>
+                <div class="col col-6">2 of 3 (wider)</div>
+                <div class="col">3 of 3</div>
+            </div>
+            <div class="row">
+                <div class="col">1 of 3</div>
+                <div class="col col-5">2 of 3 (wider)</div>
+                <div class="col">3 of 3</div>
+            </div>
+        </div>
+
+
+
-

# Vertical alignment Example

+

Variable width content

-
+
+ + + 1 of 3 + Variable width content + 3 of 3 + + + 1 of 3 + Variable width content + 3 of 3 + + +
+
+ + +

+        <abp-container>
+            <abp-row h-align="Center">
+                <abp-column size-lg="_2">1 of 3</abp-column>
+                <abp-column size-md="Auto">Variable width content</abp-column>
+                <abp-column size-lg="_2">3 of 3</abp-column>
+            </abp-row>
+            <abp-row>
+                <abp-column>1 of 3</abp-column>
+                <abp-column size-md="Auto">Variable width content</abp-column>
+                <abp-column size-lg="_2">3 of 3</abp-column>
+            </abp-row>
+        </abp-container>
+
+
+ +

+        <div class="container">
+            <div class="row justify-content-center">
+                <div class="col col-lg-2">1 of 3</div>
+                <div class="col col-md-auto">Variable width content</div>
+                <div class="col col-lg-2">3 of 3</div>
+            </div>
+            <div class="row">
+                <div class="col">1 of 3</div>
+                <div class="col col-md-auto">Variable width content</div>
+                <div class="col col-lg-2">3 of 3</div>
+            </div>
+        </div>
+
+
+
+
+
+ +

Responsive classes

+ +
All breakpoints
+ +
+
+ + col + col + col + col + + + col-8 + col-4 + +
+
+ + +

+            <abp-row>
+                <abp-column>col</abp-column>
+                <abp-column>col</abp-column>
+                <abp-column>col</abp-column>
+                <abp-column>col</abp-column>
+            </abp-row>
+            <abp-row>
+                <abp-column size="_8">col-8</abp-column>
+                <abp-column size="_4">col-4</abp-column>
+            </abp-row>
+
+
+ +

+            <div class="row">
+                <div class="col">col</div>
+                <div class="col">col</div>
+                <div class="col">col</div>
+                <div class="col">col</div>
+            </div>
+            <div class="row">
+                <div class="col col-8">col-8</div>
+                <div class="col col-4">col-4</div>
+            </div>
+
+
+
+
+
+ +
All breakpoints
+ +
+
+ + col-sm-8 + col-sm-4 + + + col-sm + col-sm + col-sm + col-sm + +
+
+ + +

+        <abp-row>
+            <abp-column size-sm="_8">col-sm-8</abp-column>
+            <abp-column size-sm="_4">col-sm-4</abp-column>
+        </abp-row>
+        <abp-row>
+            <abp-column size-sm="_">col-sm</abp-column>
+            <abp-column size-sm="_">col-sm</abp-column>
+            <abp-column size-sm="_">col-sm</abp-column>
+            <abp-column size-sm="_">col-sm</abp-column>
+        </abp-row>
+
+
+ +

+         <div class="row">
+            <div class="col col-sm-8">col-sm-8</div>
+            <div class="col col-sm-4">col-sm-4</div>
+        </div>
+        <div class="row">
+            <div class="col col-sm">col-sm</div>
+            <div class="col col-sm">col-sm</div>
+            <div class="col col-sm">col-sm</div>
+            <div class="col col-sm">col-sm</div>
+        </div>
+
+
+
+
+
+ +
Mix and match
+ +
+
+ + .col-12 .col-md-8 + .col-6 .col-md-4 + + + .col-6 .col-md-4 + .col-6 .col-md-4 + .col-6 .col-md-4 + + + .col-6 + .col-6 + +
+
+ + +

+        <!-- Stack the columns on mobile by making one full-width and the other half-width -->
+        <abp-row>
+            <abp-column size="_12" size-md="_8">.col-12 .col-md-8</abp-column>
+            <abp-column size="_6" size-md="_4">.col-6 .col-md-4</abp-column>
+        </abp-row>
+
+        <!-- Columns start at 50% wide on mobile and bump up to 33.3% wide on desktop -->
+        <abp-row>
+            <abp-column size="_6" size-md="_4">.col-6 .col-md-4</abp-column>
+            <abp-column size="_6" size-md="_4">.col-6 .col-md-4</abp-column>
+            <abp-column size="_6" size-md="_4">.col-6 .col-md-4</abp-column>
+        </abp-row>
+
+        <!-- Columns are always 50% wide, on mobile and desktop -->
+        <abp-row>
+            <abp-column size="_6">.col-6</abp-column>
+            <abp-column size="_6">.col-6</abp-column>
+        </abp-row>
+
+
+ +

+        <div class="row">
+            <div class="col col-12 col-md-8">.col-12 .col-md-8</div>
+            <div class="col col-6 col-md-4">.col-6 .col-md-4</div>
+        </div>
+        <div class="row">
+            <div class="col col-6 col-md-4">.col-6 .col-md-4</div>
+            <div class="col col-6 col-md-4">.col-6 .col-md-4</div>
+            <div class="col col-6 col-md-4">.col-6 .col-md-4</div>
+        </div>
+        <div class="row">
+            <div class="col col-6">.col-6</div>
+            <div class="col col-6">.col-6</div>
+        </div>
+
+
+
+
+
+ +

Alignment

+ +
Vertical Alignment
+ +
+
- One of three columns - One of three columns - One of three columns + column + column + column - One of three columns - One of three columns - One of three columns + column + column + column - One of three columns - One of three columns - One of three columns + column + column + column
-
-<abp-container>
-     <abp-row v-align="Start">
-        <abp-column>One of three columns</abp-column>
-        <abp-column>One of three columns</abp-column>
-        <abp-column>One of three columns</abp-column>
-     </abp-row>
-     <abp-row v-align="Center">
-         <abp-column>One of three columns</abp-column>
-         <abp-column>One of three columns</abp-column>
-         <abp-column>One of three columns</abp-column>
-     </abp-row>
-     <abp-row v-align="End">
-         <abp-column>One of three columns</abp-column>
-         <abp-column>One of three columns</abp-column>
-         <abp-column>One of three columns</abp-column>
-     </abp-row>
- </abp-container>
-
+ + +

+        <abp-container>
+            <abp-row v-align="Start">
+                <abp-column>column</abp-column>
+                <abp-column>column</abp-column>
+                <abp-column>column</abp-column>
+            </abp-row>
+            <abp-row v-align="Center">
+                <abp-column>column</abp-column>
+                <abp-column>column</abp-column>
+                <abp-column>column</abp-column>
+            </abp-row>
+            <abp-row v-align="End">
+                <abp-column>column</abp-column>
+                <abp-column>column</abp-column>
+                <abp-column>column</abp-column>
+            </abp-row>
+        </abp-container>
+
+
+ +

+        <div class="container">
+            <div class="row align-items-start">
+                <div class="col">column</div>
+                <div class="col">column</div>
+                <div class="col">column</div>
+            </div>
+            <div class="row align-items-center">
+                <div class="col">column</div>
+                <div class="col">column</div>
+                <div class="col">column</div>
+            </div>
+            <div class="row align-items-end">
+                <div class="col">column</div>
+                <div class="col">column</div>
+                <div class="col">column</div>
+            </div>
+        </div>
+
+
+
-

# Vertical alignment Example 2

-
-
+
- - One of three columns - One of three columns - One of three columns + + column + column + column
-
- <abp-container>
-    <abp-row>
-        <abp-column v-align="Start">One of three columns</abp-column>
-        <abp-column v-align="Center">One of three columns</abp-column>
-        <abp-column v-align="End">One of three columns</abp-column>
-     </abp-row>
- </abp-container>
-
+ + +

+        <abp-container>
+            <abp-row v-align="Start">
+                <abp-column v-align="Start">column</abp-column>
+                <abp-column v-align="Center">column</abp-column>
+                <abp-column v-align="End">column</abp-column>
+            </abp-row>
+        </abp-container>
+
+
+ +

+        <div class="container">
+            <div class="row align-items-start">
+                <div class="col align-self-start">column</div>
+                <div class="col align-self-center">column</div>
+                <div class="col align-self-end">column</div>
+            </div>
+        </div>
+
+
+
-

# Horizontal alignment Example

+
Horizontal alignment
-
+
- One of three columns - One of three columns + One of two columns + One of two columns - One of three columns - One of three columns + One of two columns + One of two columns - One of three columns - One of three columns + One of two columns + One of two columns - One of three columns - One of three columns + One of two columns + One of two columns - One of three columns - One of three columns + One of two columns + One of two columns + + +
+
+ + +

+        <abp-container>
+            <abp-row h-align="Start">
+                <abp-column size="_4">One of two columns</abp-column>
+                <abp-column size="_4">One of two columns</abp-column>
+            </abp-row>
+            <abp-row h-align="Center">
+                <abp-column size="_4">One of two columns</abp-column>
+                <abp-column size="_4">One of two columns</abp-column>
+            </abp-row>
+            <abp-row h-align="End">
+                <abp-column size="_4">One of two columns</abp-column>
+                <abp-column size="_4">One of two columns</abp-column>
+            </abp-row>
+            <abp-row h-align="Around">
+                <abp-column size="_4">One of two columns</abp-column>
+                <abp-column size="_4">One of two columns</abp-column>
+            </abp-row>
+            <abp-row h-align="Between">
+                <abp-column size="_4">One of two columns</abp-column>
+                <abp-column size="_4">One of two columns</abp-column>
+            </abp-row>
+        </abp-container>
+
+
+ +

+        <div class="container">
+            <div class="row justify-content-start">
+                <div class="col col-4">One of two columns</div>
+                <div class="col col-4">One of two columns</div>
+            </div>
+            <div class="row justify-content-center">
+                <div class="col col-4">One of two columns</div>
+                <div class="col col-4">One of two columns</div>
+            </div>
+            <div class="row justify-content-end">
+                <div class="col col-4">One of two columns</div>
+                <div class="col col-4">One of two columns</div>
+            </div>
+            <div class="row justify-content-around">
+                <div class="col col-4">One of two columns</div>
+                <div class="col col-4">One of two columns</div>
+            </div>
+            <div class="row justify-content-between">
+                <div class="col col-4">One of two columns</div>
+                <div class="col col-4">One of two columns</div>
+            </div>
+        </div>
+
+
+
+
+
+ +
No gutters
+ +
+
+ + One of two columns + One of two columns + +
+
+ + +

+            <abp-row gutters="false">
+                <abp-column size="_8">One of two columns</abp-column>
+                <abp-column size="_4">One of two columns</abp-column>
+            </abp-row>
+
+
+ +

+            <div class="row no-gutters">
+                <div class="col col-8">One of two columns</div>
+                <div class="col col-4">One of two columns</div>
+            </div>
+
+
+
+
+
+ +
Column wrapping
+ +
+
+ + .col-9 + .col-4
Since 9 + 4 = 13 > 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.
+ .col-6
Subsequent columns continue along the new line.s
+
+
+
+ + +

+            <abp-row>
+                <abp-column size="_9">.col-9</abp-column>
+                <abp-column size="_4">.col-4<br>Since 9 + 4 = 13 &gt; 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.</abp-column>
+                <abp-column size="_6">.col-6<br>Subsequent columns continue along the new line.s</abp-column>
+            </abp-row>
+
+
+ +

+            <div class="row">
+                <div class="col col-9">.col-9</div>
+                <div class="col col-4">.col-4<br>Since 9 + 4 = 13 &gt; 12, this 4-column-wide div gets wrapped onto a new line as one contiguous unit.</div>
+                <div class="col col-6">.col-6<br>Subsequent columns continue along the new line.s</div>
+            </div>
+
+
+
+
+
+ +

Reordering

+ +
Order classes
+ +
+
+ + + First, but Last + Second, but unordered + Third, but Second + + +
+
+ + +

+        <abp-container>
+            <abp-row>
+                <abp-column order="_12">First, but Last</abp-column>
+                <abp-column>Second, but unordered</abp-column>
+                <abp-column order="_6">Third, but Second</abp-column>
+            </abp-row>
+        </abp-container>
+
+
+ +

+        <div class="container">
+            <div class="row">
+                <div class="col order-12">First, but Last</div>
+                <div class="col">Second, but unordered</div>
+                <div class="col order-6">Third, but Second</div>
+            </div>
+        </div>
+
+
+
+
+
+ +
+
+ + + First, but Last + Second, but unordered + Third, but First
-
- <abp-container>
-    <abp-row h-align="Start">
-        <abp-column size="C4">One of three columns</abp-column>
-        <abp-column size="C4">One of three columns</abp-column>
-    </abp-row>
-    <abp-row h-align="Center">
-        <abp-column size="C4">One of three columns</abp-column>
-        <abp-column size="C4">One of three columns</abp-column>
-    </abp-row>
-    <abp-row h-align="End">
-        <abp-column size="C4">One of three columns</abp-column>
-        <abp-column size="C4">One of three columns</abp-column>
-    </abp-row>
-        <abp-row h-align="Around">
-        <abp-column size="C4">One of three columns</abp-column>
-        <abp-column size="C4">One of three columns</abp-column>
-    </abp-row>
-    <abp-row h-align="Between">
-        <abp-column size="C4">One of three columns</abp-column>
-        <abp-column size="C4">One of three columns</abp-column>
-    </abp-row>
- </abp-container>
-
+ + +

+        <abp-container>
+            <abp-row>
+                <abp-column order="Last">First, but Last</abp-column>
+                <abp-column>Second, but unordered</abp-column>
+                <abp-column order="First">Third, but First</abp-column>
+            </abp-row>
+        </abp-container>
+
+
+ +

+        <div class="container">
+            <div class="row">
+                <div class="col order-last">First, but Last</div>
+                <div class="col">Second, but unordered</div>
+                <div class="col order-first">Third, but First</div>
+            </div>
+        </div>
+
+
+
-

# Order Example

+

Offsetting columns

+ +
Offset classes
-
+
- First, but unordered - Second, but last - Third, but first + .col-md-4 + .col-md-4 .offset-md-4 + + + .col-md-3 .offset-md-3 + .col-md-3 .offset-md-3 - First, but unordered - Second, but last - Third, but first + .col-md-6 .offset-md-3
-
- <abp-container>
-    <abp-row>
-        <abp-column> First, but unordered</abp-column>
-        <abp-column order="C12">Second, but last</abp-column>
-        <abp-column order="C1">Third, but first</abp-column>
-    </abp-row>
-    <abp-row>
-        <abp-column> First, but unordered</abp-column>
-        <abp-column order="Last">Second, but last</abp-column>
-        <abp-column order="First">Third, but first</abp-column>
-    </abp-row>
- </abp-container>
-
+ + +

+        <abp-container>
+            <abp-row>
+                <abp-column size-md="_4">.col-md-4</abp-column>
+                <abp-column size-md="_4" offset-md="_4">.col-md-4 .offset-md-4</abp-column>
+            </abp-row>
+            <abp-row>
+                <abp-column size-md="_3" offset-md="_3">.col-md-3 .offset-md-3</abp-column>
+                <abp-column size-md="_3" offset-md="_3">.col-md-3 .offset-md-3</abp-column>
+            </abp-row>
+            <abp-row>
+                <abp-column size-md="_6" offset-md="_3">.col-md-6 .offset-md-3</abp-column>
+            </abp-row>
+        </abp-container>
+
+
+ +

+        <div class="container">
+            <div class="row">
+                <div class="col col-md-4">.col-md-4</div>
+                <div class="col col-md-4 offset-md-4">.col-md-4 .offset-md-4</div>
+            </div>
+            <div class="row">
+                <div class="col col-md-3 offset-md-3">.col-md-3 .offset-md-3</div>
+                <div class="col col-md-3 offset-md-3">.col-md-3 .offset-md-3</div>
+            </div>
+            <div class="row">
+                <div class="col col-md-6 offset-md-3">.col-md-6 .offset-md-3</div>
+            </div>
+        </div>
+
+
+
-

# Offset Example

-
- - .col-md-4 - .col-md-4 .offset-md-4 - - - .col-md-3 .offset-md-3 - .col-md-3 .offset-md-3 - - - .col-md-6 .offset-md-3 - +
+ + + .col-sm-5 .col-md-6 + .col-sm-5 .offset-sm-2 .col-md-6 .offset-md-0 + + + col-sm-6 .col-md-5 .col-lg-6 + .col-sm-6 .col-md-5 .offset-md-2 .col-lg-6 .offset-lg-0 + +
-
- <abp-row>
-    <abp-column> .col-md-4</abp-column>
-    <abp-column size-md="C4" offset-md="C4">.col-md-4 .offset-md-4</abp-column>
- </abp-row>
- <abp-row>
-    <abp-column size-md="C3" offset-md="C3">.col-md-3 .offset-md-3</abp-column>
-    <abp-column size-md="C3" offset-md="C3">.col-md-3 .offset-md-3</abp-column>
- </abp-row>
- <abp-row>
-    <abp-column size-md="C6" offset-md="C3">.col-md-6 .offset-md-3</abp-column>
- </abp-row>
-
+ + +

+        <abp-container>
+            <abp-row>
+                <abp-column size-sm="_5" size-md="_6">.col-sm-5 .col-md-6</abp-column>
+                <abp-column size-sm="_5" offset-sm="_2" size-md="_6" offset-md="_">.col-sm-5 .offset-sm-2 .col-md-6 .offset-md-0</abp-column>
+            </abp-row>
+            <abp-row>
+                <abp-column size-sm="_6" size-md="_5" size-lg="_6">col-sm-6 .col-md-5 .col-lg-6</abp-column>
+                <abp-column size-sm="_6" size-md="_5" offset-md="_2" size-lg="_6" offset-lg="_">.col-sm-6 .col-md-5 .offset-md-2 .col-lg-6 .offset-lg-0</abp-column>
+            </abp-row>
+        </abp-container>
+
+
+ +

+        <div class="container">
+            <div class="row">
+                <div class="col col-sm-5 col-md-6">.col-sm-5 .col-md-6</div>
+                <div class="col col-sm-5 col-md-6 offset-sm-2 offset-md-0">col-sm-5 .offset-sm-2 .col-md-6 .offset-md-0</div>
+            </div>
+            <div class="row">
+                <div class="col col-sm-6 col-md-5 col-lg-6">col-sm-6 .col-md-5 .col-lg-6</div>
+                <div class="col col-sm-6 col-md-5 col-lg-6 offset-md-2 offset-lg-0">.col-sm-6 .col-md-5 .offset-md-2 .col-lg-6 .offset-lg-0</div>
+            </div>
+        </div>
+
+
+