Как расширить до максимальной ширины с помощью набора выравнивания

#javascript #html #css #layout #alignment

Вопрос:

Следующий код правильно расширяет max-width div:

 lt;div style="display: flex; flex-direction: column;"gt;  lt;div style="max-width: 500px;"gt;  lt;div style="background-color: red; height: 20px;"gt;lt;/divgt;  lt;/divgt; lt;/divgt;  

Результат: введите описание изображения здесь

Однако, когда я устанавливаю какое-либо выравнивание, align-items на самом родительском div, align-self на max-width div и т. Д., maxWidth Оно больше не будет использоваться, а фактическая ширина будет установлена на 0.
Например:

 lt;div style="display: flex; flex-direction: column;"gt;  lt;div style="max-width: 500px; align-self: center"gt;  lt;div style="background-color: red; height: 20px;"gt;lt;/divgt;  lt;/divgt; lt;/divgt;  

Создает пустой экран:

введите описание изображения здесь

Как мне выровнять div (например, по центру) и сохранить его ширину без изменений? Цель состоит в том , чтобы не прибегать к использованию width , потому что это не будет соответствовать ширине родителя (которая может быть любой). Любое решение, которое сохраняло бы ширину, но не настаивало бы на ее использовании , даже если нет места, как, например, с width , сработало бы.

Комментарии:

1. В случае width превышения max-width , будет использоваться последнее. Таким образом, почему бы нам не использовать width ?

Ответ №1:

С align-self:center помощью и flex-direction:column вам нужно установить внутреннюю ширину контейнера , которую я сделал на 100%, и теперь она отображается.

 lt;div style="display: flex; flex-direction: column;background-color:grey"gt;  lt;div style="max-width: 500px; align-self: center; width:100%;background:black;"gt;  lt;div style="background-color: red; height: 20px;"gt;lt;/divgt;  lt;/divgt; lt;/divgt;