Центрирование элементов в строке (по вертикали) с помощью react-bootstrap

Я попытался использовать это, чтобы центрировать h3 по вертикали:

const HomeDom = ()=>{
  return(
     <Row className = "align-items-center">
        <Col>

    <h3 className = {'display-3'}>Welcome to the Bulls Marketplace</h3>


        </Col>
      </Row>
  );
}

Я также попробовал my-auto, как указано в документации по начальной загрузке.

Что еще я мог бы попытаться центрировать элемент h3 по вертикали?

Обновлять: (Мой пост закрыли, потому что модераторы подумали, что я не читал другие вопросы по той же теме):

Я уже пробовал следующие атрибуты класса (из ответов на этот пост и других сообщений по теме), и ни один из них не работал:

"my-auto", "mx-auto", "align-items-center", "justify-content-center" с "d-flex" и "flex-grow", "justify-content-center" с "d -flex" и "flex-grow" вместе со "stack", как предложил @enix79 (это только центрировало элемент H3 по горизонтали, но не по вертикали). Странно то, что это сработало в его песочнице, но не на моей стороне. Я также пробовал: «центральный блок» и «разбивка по страницам» из Как центрировать элементы по горизонтали или вертикали с помощью Twitter Bootstrap?, которые также не работали.

Два других поста, которые модераторы ассоциировали как похожие на мои посты, не предлагали ничего, кроме того, что я уже пробовал.

При этом мой вопрос следует возобновить.

Может быть, это как-то связано с моей маршрутизацией? Я не знаю, это единственное объяснение, которое у меня могло быть: (это из app.js):

  return(
  <stack className = "vw-100 vh-100">
    <NavDom/>
      <Routes>
          <Route path='register' element = {<RegisterFormDom contract = {contract} account = {account}/>}/>
          <Route path='wallet' element = {<WalletDom contract = {contract} account = {account} web3Obj = {web3Obj}/>}/>
          <Route path='myservices' element = {<MyServicesDom contract = {contract} account = {account} web3Obj = {web3Obj}/>}/>
          <Route path='coaches' element = {<CoachesBackendDom contract = {contract} account = {account} web3Obj = {web3Obj}/>}/>
          <Route path='home' element = {<HomeDom/>}/>

      </Routes>
      <Footer/>
      </stack>


);

Это мой HomeDom прямо сейчас, предложенный @enix79, но он не работал и только центрировал элемент h3 по горизонтали:

return(
      <stack className = "flex-grow-1 d-flex justify-content-center p-3" >


                  <h3 className = {'display-3'}>Welcome to the Bulls Marketplace</h3>



      </stack>

  );

См. getbootstrap.com/docs/5.1/utilities/flex/#align-items. Возможно, вам также потребуется удалить маржу: getbootstrap.com/docs/5.1/utilities/spacing/#margin-and-padding

isherwood 24.03.2022 13:48

При работе с React-Bootstrap я счел полезным обращаться также к стандартной документации Bootstrap. Документы React-Bootstrap не всегда такие подробные, и принципы все равно должны применяться.

isherwood 24.03.2022 13:52
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Есть много способов центрировать элементы в css: https://www.w3.org/Style/Examples/007/center.en.html

Я бы порекомендовал вам как можно больше использовать flexbox, так как это мощный, но простой инструмент. Многие люди просто злоупотребляют сеткой. В вашем случае вы просто складываетесь вертикально, поэтому у вас есть только одно измерение.

Когда вы работаете с бутстрапом, вы можете использовать его служебные классы: https://getbootstrap.com/docs/5.1/utilities/flex/

Кроме того, когда вы используете react-bootstrap, есть еще одна абстракция, которая называется Stacks: https://react-bootstrap.netlify.app/layout/stack/#stacks.

Я создал песочницу. Пожалуйста, изучите это и скажите мне, если это то, что вы ищете, потому что я все еще не уверен, чего вы пытаетесь достичь: https://codesandbox.io/s/musing-satoshi-nhuood?file=/src/App.js

С помощью «align-items» и «justify-content» вы можете центрировать свой контент по осям. Как упомянул Ишервуд в своем комментарии, h3 получает дополнительное нижнее поле. Поэтому, если вы хотите, чтобы он был центрирован на 100%, вы также должны удалить его.

Должен ли быть центрирован только заголовок по горизонтали или другие элементы тоже? Каждый элемент в HomeDom. Каков контекст HomeDom (верхние компоненты)? На том же уровне находится компонент навигации, а на самом высоком уровне — компонент приложения. Существует также компонент нижнего колонтитула на том же уровне, что и компонент навигации и домашней страницы: Иерархия: App->[Nav, HomeDom, Footer], где навигация, домашняя страница и нижний колонтитул находятся на одном уровне. Почему вы используете строку и столбец? Потому что я хотел настроить сетку. Думаю, мне больше не придется его использовать.

swisstackle 25.03.2022 02:25

Как упоминал Ишервуд. text-center только центрирует его по горизонтали.

swisstackle 25.03.2022 02:30

Кстати, @isherwood, вам нужно 50 репутации, чтобы прокомментировать пост.

Igor Gonak 25.03.2022 11:34

Я хорошо знаю об этом. Это не освобождает от нарушения правил сайта.

isherwood 25.03.2022 13:48

justify-content-center вместе со стеком, к сожалению, центрировал мой элемент h3 только по горизонтали, но не по вертикали, как описано в моем обновлении в начальном посте.

swisstackle 25.03.2022 18:14

Ваша проблема в том, что вы пишете стек маленьким, но стек является компонентом, поэтому вы должны писать его с большой буквы: стек. Кроме того: стек уже применяет d-flex с направлением: столбец, поэтому вы можете удалить этот класс. PS: не забудьте настроить оба компонента Stack — в app.js и HomeDome.jsx.

Igor Gonak 25.03.2022 18:40

Другие вопросы по теме