Grid-columns¶
The grid-columns
style allows to define the width of the columns of the grid.
Note
This style only affects widgets with layout: grid
.
Syntax¶
grid-columns: <scalar>+;
The grid-columns
style takes one or more <scalar>
that specify the length of the columns of the grid.
If there are more columns in the grid than scalars specified in grid-columns
, they are reused cyclically.
If the number of <scalar>
is in excess, the excess is ignored.
Example¶
The example below shows a grid with 10 labels laid out in a grid with 2 rows and 5 columns.
We set grid-columns: 1fr 16 2fr
.
Because there are more rows than scalars in the style definition, the scalars will be reused:
- columns 1 and 4 have width
1fr
; - columns 2 and 5 have width
16
; and - column 3 has width
2fr
.
from textual.app import App
from textual.containers import Grid
from textual.widgets import Label
class MyApp(App):
CSS_PATH = "grid_columns.tcss"
def compose(self):
yield Grid(
Label("1fr"),
Label("width = 16"),
Label("2fr"),
Label("1fr"),
Label("width = 16"),
Label("1fr"),
Label("width = 16"),
Label("2fr"),
Label("1fr"),
Label("width = 16"),
)
if __name__ == "__main__":
app = MyApp()
app.run()
CSS¶
/* Set all columns to have 50% width */
grid-columns: 50%;
/* Every other column is twice as wide as the first one */
grid-columns: 1fr 2fr;
Python¶
See also¶
grid-rows
to specify the height of the grid rows.