Я попытался использовать это, чтобы центрировать 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>
);
При работе с React-Bootstrap я счел полезным обращаться также к стандартной документации Bootstrap. Документы React-Bootstrap не всегда такие подробные, и принципы все равно должны применяться.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Есть много способов центрировать элементы в 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], где навигация, домашняя страница и нижний колонтитул находятся на одном уровне. Почему вы используете строку и столбец? Потому что я хотел настроить сетку. Думаю, мне больше не придется его использовать.
Как упоминал Ишервуд. text-center только центрирует его по горизонтали.
Кстати, @isherwood, вам нужно 50 репутации, чтобы прокомментировать пост.
Я хорошо знаю об этом. Это не освобождает от нарушения правил сайта.
justify-content-center вместе со стеком, к сожалению, центрировал мой элемент h3 только по горизонтали, но не по вертикали, как описано в моем обновлении в начальном посте.
Ваша проблема в том, что вы пишете стек маленьким, но стек является компонентом, поэтому вы должны писать его с большой буквы: стек. Кроме того: стек уже применяет d-flex с направлением: столбец, поэтому вы можете удалить этот класс. PS: не забудьте настроить оба компонента Stack — в app.js и HomeDome.jsx.
См. getbootstrap.com/docs/5.1/utilities/flex/#align-items. Возможно, вам также потребуется удалить маржу: getbootstrap.com/docs/5.1/utilities/spacing/#margin-and-padding