Динамическая ширина и высота контейнера в зависимости от контента с сохранением пропорций

Есть блок контейнер art содержащий некоторый текст.

<div class="wrapper">
  <div class="art">
    <div class="art__container">
      <div class="art__content">
         <div class="art__text">Something text Something text Something text Something text Something text</div>
      </div>            
    </div>            
  </div>  
</div>

Задача, чтобы контейнер всегда был в пропорции 1:1 и имел минимальные размеры, текст был в него вписан, при этом сам текст может изменятся динамически, то есть и контейнер должен увеличиваться с сохранением указанных пропорций. Для этого обёртке я задал padding-bottom: 100%, а контенту position: absolute. Однако тогда контейнер растягивается на всю ширину экрана, а не подстраивается под контент.

Как сделать так, чтобы размеры контейнера были минимальными, вмещая в себя текст и имея пропорции 1:1, при этом при увеличении текста контейнер также увеличивался бы с сохранением этих пропорций?

.art__container {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 100%;
}
.art__content {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  background-image: url("http://placeimg.com/640/480/any");
  background-size: cover;
  background-repeat: no-repeat;
  border-radius: 4px;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  padding: 20px;
}

Вот рабочий пример https://jsfiddle.net/arsenij00/pynoL3km/13/


Ответы (1 шт):

Автор решения: Sergey Philippenko

Задай клссу art__container свойство display: inline-block

→ Ссылка