Как настроить размер шрифта на основе содержимого (которое является числом и строкой) в контейнере? - PullRequest
0 голосов
/ 29 января 2020

У меня есть контейнер, который принимает сумму и валюту. По мере того, как сумма увеличивается и приближается к правому отступу (то есть 16 пикселей), размер шрифта должен уменьшаться. В то же время верхний отступ валюты также должен измениться.

https://jsfiddle.net/jmjjeena/uzsL7n0c/

//////////////// REACT /////////////////

class FontSize extends React.Component {
  constructor(props) {
    super(props)
    this.state = {}
  }

  render() {
    return (
        <div className='container'>
          <div className='subContainer'>
            <div className='amount'>$1000000000.00</div>
          <div className='currency'>USD</div>
          </div>
        </div>
    )
  }
}

ReactDOM.render(<FontSize />, document.querySelector("#app"))

//////////////// CSS /////////////////

body {
  background: white;
  padding: 20px;
  font-family: Helvetica;
}

#app {
  background: white;
  border-radius: 4px;
  padding: 20px;
  transition: all 0.2s;
}

.container {
  background-color: white;
  box-sizing: border-box;
  border: 1px solid red;
  border-radius: 5px;
  width: 316px;
  height: 81px;
}

.subContainer {
  display: flex;
  flex-direction: row;
  padding: 16px 16px 12px 28px;
}

.amount {
  font-style: normal;
  font-weight: 500;
  font-size: 32px;
  line-height: 40px;
  color: black;
  padding-right: 8px;
}

.currency {
   padding-top: 17px;
   font-style: normal;
  font-weight: normal;
  font-size: 14px;
  line-height: 18px;
  color: black;
}

1 Ответ

1 голос
/ 30 января 2020

Вы можете сделать динамику css, например, что-то вроде этого:

<div style={fontStyle(1)} />


fontStyle= function(fontSze) {
   return {
     font-size:fontSze
   }
 }

Вам нужно будет добавить логи c в зависимости от изменения суммы. Вы можете обновить переменную через props и поместить logi c, чтобы обновить ее в componentDidMount ()

...