Я пытаюсь выяснить следующий макет, используя только CSS и без запроса @media.Скажем, у меня есть следующая отправная точка для HTML:
<div class="layout">
<div class="content"></div>
</div>
* * * * * * * * * * * * * * * * * * * * * * * .layout
содержит элемент уровня 100 *, который имеет ширину 100%, но максимальную ширину X
.(например, X = 400px
.) Поскольку .layout
расширяется, а справа после достижения максимальной ширины .content
, я бы хотел внезапно применить встроенный (правый / левый) интервал S
(например, S = 16px
.)
Это приведет к уменьшению ширины .content
вначале, но по мере увеличения .layout
ширина .content
будет расти до X
в этот момент расстояние между строками (справа / слева) будет продолжать расти, сохраняя центрирование .content
.
400px 401px 432px 434px
+----------+ +---------------+ +-----------------+ +-------------------+
|.layout | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
+----------+ | +-------+ | | +---------+ | | +---------+ |
|.content--| | |-------| | | |---------| | | |---------| |
|----------| | |-------| | | |---------| | | |---------| |
|----------| | 1 |-------| 1 | | 1 |---------| 1 | | 1 |---------| 1 |
|--400px---| => | 6 |-369px-| 6 | => | 6 |--400px--| 6 | => | 7 |--400px--| 7 |
|----------| | p |-------| p | | p |---------| p | | p |---------| p |
|----------| | x |-------| x | | x |---------| x | | x |---------| x |
|----------| | |-------| | | |---------| | | |---------| |
+----------+ | +-------+ | | +---------+ | | +---------+ |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
+----------+ +---------------+ +-----------------+ +-------------------+
Я пробовал различные конфигурации с display:flex
и display:grid
, но не могузаставить его работать.Вот база, с которой я начинал, но к ней не применен интервал:
/* "Inactive ingredients" would not be present in the actual implementation. */
.layout {
/* Inactive ingredients: */
background-color: yellow;
height: 200px;
}
.content {
max-width: 400px;
margin: 0 auto;
/* Inactive ingredients: */
background-color: green;
height: 100%;
}
<div class="layout">
<div class="content"></div>
</div>