Я только начинаю веб-разработку. В настоящее время я изучаю Node.js и React с Vite. Я не мог правильно центрировать меню заголовка, и все, что я нашел в Интернете, не работало. Вероятно, это что-то очень элементарное, но, как я уже сказал, я новичок. Спасибо за вашу помощь!
function Header() {
const ulStyle = {
display: "flex",
flexDirection: "row",
backgroundColor: "#2b2b2b",
alignItems: "center"
}
const liStyle = {
flexGrow: "1",
flexBasis: "0",
position: "relative"
}
return (
<header>
<h1>Website</h1>
<nav>
<ul style = {ulStyle}>
<li><a href = "#" style = {liStyle}>Home</a></li>
<li><a href = "#" style = {liStyle}>About</a></li>
<li><a href = "#" style = {liStyle}>Services</a></li>
<li><a href = "#" style = {liStyle}>Contact</a></li>
</ul>
</nav>
</header>
);
}
Или в простом HTML
.ulStyle {
display: flex;
flex-direction: row;
background-color: #2b2b2b;
align-items: center;
}
.liStyle {
flex-grow: 1;
flex-basis: 0;
position: relative;
}
<header>
<h1>Website</h1>
<nav>
<ul class = "ulStyle">
<li><a href = "#" class = "liStyle">Home</a></li>
<li><a href = "#" class = "liStyle">About</a></li>
<li><a href = "#" class = "liStyle">Services</a></li>
<li><a href = "#" class = "liStyle">Contact</a></li>
</ul>
</nav>
</header>
В простом CSS ваши правила будут другими, поскольку в них не используется верблюжий регистр: flex-direction
, background-color
и т. д.
@Энди, ой, это моя вина. я добавил фрагмент
Как отметил @CBbore, вам просто нужно изменить alignItems
на justify-content
.
Вот как это будет выглядеть в вашем коде
.ulStyle {
display: flex;
flex-direction: row;
background-color: #2b2b2b;
align-items: center;
justify-content: center; /* here */
}
.liStyle {
flex-grow: 1;
flex-basis: 0;
position: relative;
}
<header>
<h1>Website</h1>
<nav>
<ul class = "ulStyle">
<li><a href = "#" class = "liStyle">Home</a></li>
<li><a href = "#" class = "liStyle">About</a></li>
<li><a href = "#" class = "liStyle">Services</a></li>
<li><a href = "#" class = "liStyle">Contact</a></li>
</ul>
</nav>
</header>
Простой CSS неправильный — см. мой комментарий под публикацией.
Спасибо, что не понизили меня, а объяснили, но я не могу понять, о чем вы, есть ссылка по теме? Я хочу понять больше
Ваше решение сработало, большое спасибо.
В вопросе, объясняющем код, в ОП есть примеры использования как CSS внутри объекта JavaScript (в этом случае правила указаны в CamelCase), так и в простом CSS, но у них неверный пример простого CSS: правила не должны быть в CamelCase. но через дефис. Если вы измените backgroundColor
на background-color
, вы должны увидеть разницу в своем фрагменте. justify-content
работает только потому, что это правильный синтаксис правила.
Я исправил часть вопроса, связанную с простым CSS, спасибо @Andy
Еще раз спасибо за объяснение!! А по поводу ремонта...
Свойство выравнивания по главной гибкой оси — justify-content;
align-items
работает на вторичной оси.